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 "cbhomedbapi") 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}/3rdparty/bus_client ${CMAKE_SOURCE_DIR}/proto/${ARCH} ${PROTO_LIB_PATH}/include ) set(src ${CMAKE_SOURCE_DIR}/camera.cpp ${CMAKE_SOURCE_DIR}/polygon.cpp ${CMAKE_SOURCE_DIR}/rule.cpp ${CMAKE_SOURCE_DIR}/sdk.cpp ${CMAKE_SOURCE_DIR}/stack.cpp ${CMAKE_SOURCE_DIR}/sysset.cpp ${CMAKE_SOURCE_DIR}/util.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_app main.cpp $) target_link_libraries(test_app ${Target} ${CMAKE_SOURCE_DIR}/3rdparty/bus_client/x86_64/libcbhomeclient.so ${CMAKE_SOURCE_DIR}/3rdparty/bus_nng/x86_64/libbus_nng.so bhome_msg pthread rt)