CMakeLists.txt 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #rights reserved
  2. cmake_minimum_required(VERSION 3.22)
  3. include("${ROOT_DIR}/buildtools/cmake/toolchain_common.cmake")
  4. #project name
  5. set(PROJECT_NAME "iot-tools")
  6. message(INFO " SYSTEM_ARCH:${SYSTEM_ARCH}\n")
  7. # 获取当前的分支
  8. set(GIT_BRANCH "")
  9. get_git_branch(GIT_BRANCH)
  10. string(REGEX REPLACE ".*/(.*)" "\\1" _git_branch "${GIT_BRANCH}")
  11. message(STATUS "Git branch is ${_git_branch}") # 宏的结束
  12. project(${PROJECT_NAME})
  13. message("PRODUCT_NAME: ${PRODUCT_NAME}")
  14. message(STATUS "PROJECT_SOURCE_DIR: ${PRODUCT_ROOT_DIR}, PROJECT_BINARY_DIR: ${PRODUCT_BUILD_DIR}")
  15. add_definitions(-DDAS_VERSION=\"${PRODUCT_VERSION}\")
  16. add_definitions(-DPRODUCT_NAME=\"${PRODUCT_NAME}\")
  17. add_definitions(-DPRODUCT_${PRODUCT_NAME})
  18. set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libs?" FORCE)
  19. include_directories(${PRODUCT_ROOT_DIR})
  20. include_directories(${PRODUCT_ROOT_DIR}/thirdparty)
  21. include_directories(${PRODUCT_ROOT_DIR}/vendor/${PRODUCT_NAME})
  22. include_directories(${PRODUCT_BUILD_DIR}/thirdparty)
  23. find_library(OPENSSL_SSL_LIBRARY ssl ${OPENSSL_ROOT_DIR}/ssl NO_DEFAULT_PATH)
  24. find_library(OPENSSL_CRYPTO_LIBRARY crypto ${OPENSSL_ROOT_DIR}/crypto/ NO_DEFAULT_PATH)
  25. set(OPENSSL_INCLUDE_DIR "${PRODUCT_BUILD_DIR}/thirdparty/openssl/include")
  26. message("OPENSSL: ${OPENSSL_ROOT_DIR}/ssl, OPENSSL_SSL_LIBRARY: ${OPENSSL_SSL_LIBRARY}, OPENSSL_CRYPTO_LIBRARY: ${OPENSSL_CRYPTO_LIBRARY}, OPENSSL_INCLUDE_DIR: ${OPENSSL_INCLUDE_DIR}")
  27. set(LIBXML2_WITH_PYTHON OFF)
  28. include_directories(${PRODUCT_ROOT_DIR}/thirdparty/SQLiteCpp/sqlite3)
  29. include_directories(./ ${PRODUCT_ROOT_DIR}/foundation/
  30. ${LIBUV_INCLUDE_DIR})
  31. # OBJECT EXCLUDE_FROM_ALL
  32. add_library(vendor STATIC ${PRODUCT_ROOT_DIR}/vendor/vendor_base.cpp)
  33. target_include_directories(vendor PUBLIC ${PRODUCT_ROOT_DIR}/vendor)
  34. target_link_directories(vendor PUBLIC ${LIBUV_LIBS_DIR})
  35. target_link_libraries(vendor uv)
  36. build_subdirectory(utils)
  37. # build_subdirectory(foundation/hmi)