diff --git a/Launcher/CMakeLists.txt b/Launcher/CMakeLists.txt index 19772e9..d9f2a91 100644 --- a/Launcher/CMakeLists.txt +++ b/Launcher/CMakeLists.txt @@ -11,15 +11,23 @@ file( GLOB SOURCES "*.cpp" ) add_executable(Launcher ${SOURCES}) + +find_package(PkgConfig REQUIRED) +set(ENV{PKG_CONFIG_PATH} "${SDK_INSTALL_PREFIX}/lib/pkgconfig") +message(STATUS "----${SDK_INSTALL_PREFIX}/lib/pkgconfig") +pkg_check_modules(SDK_KEYPAIR REQUIRED IMPORTED_TARGET Elastos.SDK.Keypair.C) + +# to fine openssl library +pkg_check_modules(OPENSSL REQUIRED IMPORTED_TARGET openssl) + target_include_directories(Launcher PUBLIC "${PROJECT_BINARY_DIR}" "${PROJECT_SOURCE_DIR}/../Service" - "${PROJECT_SOURCE_DIR}/depends" + ${SDK_KEYPAIR_INCLUDE_DIRS} ) -find_library(LAUNCHER_LIBRARY Elastos.SDK.Keypair.C HINTS ${PROJECT_SOURCE_DIR}/depends) - target_link_libraries(Launcher PUBLIC - ${LAUNCHER_LIBRARY}) + ${SDK_KEYPAIR_LDFLAGS} + ${OPENSSL_LIBRARIES}) -INSTALL(TARGETS Launcher DESTINATION bin) \ No newline at end of file +INSTALL(TARGETS Launcher DESTINATION bin) diff --git a/Service/CMakeLists.txt b/Service/CMakeLists.txt new file mode 100644 index 0000000..37f467a --- /dev/null +++ b/Service/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.12) + +project(Elastos.MicroService.Service) + +# specify the C++ standard +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED True) + +file( GLOB SERVICE_SOURCES "*.cpp" ) + +find_package(PkgConfig REQUIRED) +set(ENV{PKG_CONFIG_PATH} "${SDK_INSTALL_PREFIX}/lib/pkgconfig") + +pkg_check_modules(SDK_CONTACT REQUIRED IMPORTED_TARGET Elastos.SDK.Contact) +message(STATUS "======Found SDK.Contract includ: ${SDK_CONTACT_INCLUDE_DIRS}") + +find_library(TRANSMITTER_LIB transmitter) + +include_directories(${SDK_INCLUDE_DIR} ${SDK_CONTACT_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/../Transmitter/) + +add_library(service SHARED ${SERVICE_SOURCES}) + +target_link_libraries(service ${TRANSMITTER_LIB}) + +install(TARGETS service DESTINATION lib) diff --git a/Transmitter/CMakeLists.txt b/Transmitter/CMakeLists.txt index f96fcc5..b5be837 100644 --- a/Transmitter/CMakeLists.txt +++ b/Transmitter/CMakeLists.txt @@ -2,9 +2,6 @@ cmake_minimum_required(VERSION 3.12) project(Elastos.MicroService.Transmitter) -# include cpp files not static library -file( GLOB SERVICE_SOURCES "../Service*.cpp" ) - # specify the C++ standard set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED True) @@ -22,8 +19,8 @@ message(STATUS "======Found SDK.Contract includ: ${SDK_CONTACT_INCLUDE_DIRS}") include_directories(${SDK_INCLUDE_DIR} ${SDK_KEYPAIR_INCLUDE_DIRS} ${SDK_CONTACT_INCLUDE_DIRS} ../Service) -add_library(TransmitterLib MODULE ${TRANSMITTER_SOURCES} ${SERVICE_SOURCES} ) +add_library(transmitter SHARED ${TRANSMITTER_SOURCES} ) -target_link_libraries(TransmitterLib PUBLIC ${SDK_KEYPAIR_LDFLAGS} ${SDK_CONTACT_LDFLAGS}) +target_link_libraries(transmitter PUBLIC ${SDK_KEYPAIR_LDFLAGS} ${SDK_CONTACT_LDFLAGS}) -install(TARGETS TransmitterLib DESTINATION lib) +install(TARGETS transmitter DESTINATION lib) diff --git a/build_pc.sh b/build_pc.sh index 1ae052a..3109644 100755 --- a/build_pc.sh +++ b/build_pc.sh @@ -2,6 +2,7 @@ set -e set -u +set -o pipefail OUTPUT_PATH=${OUTPUT_HOME:-} if [ -z ${OUTPUT_PATH} ]; then @@ -22,6 +23,7 @@ if [ ! -e ${SDK_INCLUDE_DIR}/include/Json.hpp ]; then echo "Copy SDK include to ${SDK_INCLUDE_DIR}" #mkdir -p ${SDK_INCLUDE_DIR} cp -r ${SDK_DIR}/lib/wrapper/json/*.hpp ${SDK_INCLUDE_DIR} + cp -r ${SDK_DIR}/lib/crosspl/*.hpp ${SDK_INCLUDE_DIR} fi @@ -29,6 +31,10 @@ loginfo() { echo -e "\033[1;34m [-]: $@ \033[00m"; } +logerr() { + echo -e "\033[1;31m [x]: $@ \033[00m"; +} + build_module() { loginfo "To build module: ${1}" @@ -36,9 +42,14 @@ build_module() { mkdir -p ${OUTPUT_PATH}/build/${1} pushd ${OUTPUT_PATH}/build/${1} cmake -DCMAKE_INSTALL_PREFIX=${OUTPUT_PATH}/dict ${2} ${src_dir} - make && make install + make VERBOSE=1 && make install + if [ $? != 0 ]; then + logerr "Build failed: ${1}" + exit -1 + fi popd } -build_module Launcher "" +build_module Launcher "-DSDK_INSTALL_PREFIX=${SDK_INSTALL_DIR}" build_module Transmitter "-DSDK_INCLUDE_DIR=${SDK_INCLUDE_DIR} -DSDK_INSTALL_PREFIX=${SDK_INSTALL_DIR}" +build_module Service "-DSDK_INCLUDE_DIR=${SDK_INCLUDE_DIR} -DSDK_INSTALL_PREFIX=${SDK_INSTALL_DIR}"