cmake_minimum_required(VERSION 3.5) #include(cmake_options.cmake) option(AARCH64 "option for aarch64" OFF) if(${AARCH64} STREQUAL ON) message("======>> use aarch64") set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/protobuf/aarch64.cmake) endif() set (Target "cbhomeclient") project(${Target}) include(cmake_options.cmake) ##########################################################] set(ARCH x86_64) if(${AARCH64} STREQUAL ON) set(ARCH aarch64) endif() set(PROTO_LIB_PATH ${CMAKE_CURRENT_SOURCE_DIR}/protobuf/${ARCH}) set(PROTO_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR}/proto/${ARCH}) add_subdirectory(${PROJECT_SOURCE_DIR}/proto) ##########################################################] include_directories( ${CMAKE_SOURCE_DIR}/3rdparty/bus_nng ${CMAKE_SOURCE_DIR}/proto/${ARCH} ${PROTO_LIB_PATH}/include ) set(src ${CMAKE_SOURCE_DIR}/cbhomeclient.cpp ${CMAKE_SOURCE_DIR}/message.cpp ${CMAKE_SOURCE_DIR}/3rdparty/yyjson/yyjson.c ) add_library(objs OBJECT ${src}) set(CMAKE_SHARED_LINKER_FLAGS ${CMAKE_SHARED_LINKER_FLAGS} "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exported_symbols") add_library(${Target} SHARED $) target_link_libraries(${Target} PRIVATE bhome_msg) set(Target_static ${Target}_static) add_library(${Target_static} STATIC $) set_target_properties(${Target}_static PROPERTIES OUTPUT_NAME ${Target}) set_target_properties(${Target} PROPERTIES CLEAN_DIRECT_OUTPUT 1) set_target_properties(${Target}_static PROPERTIES CLEAN_DIRECT_OUTPUT 1) # test add_executable(test main.cpp $) target_link_libraries(test ${Target} ${CMAKE_SOURCE_DIR}/3rdparty/bus_nng/x86_64/libbus_nng.so bhome_msg pthread rt)