CMakeLists.txt 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. cmake_minimum_required(VERSION 3.1)
  2. cmake_policy(SET CMP0048 NEW)
  3. file(STRINGS "VERSION" version)
  4. project(alibabacloud-sdk VERSION ${version})
  5. message(STATUS "Project version: ${PROJECT_VERSION}")
  6. set(TARGET_OUTPUT_NAME_PREFIX "alibabacloud-sdk-" CACHE STRING "The target's output name prefix")
  7. option(BUILD_SHARED_LIBS "Enable shared library" ON)
  8. option(BUILD_UNIT_TESTS "Enable unit tests" OFF)
  9. option(BUILD_FUNCTION_TESTS "Enable function test" OFF)
  10. option(BUILD_PRODUCT "Build by lower name of product" OFF)
  11. set(LIB_TYPE STATIC)
  12. if(BUILD_SHARED_LIBS)
  13. set(LIB_TYPE SHARED)
  14. add_definitions(-DALIBABACLOUD_SHARED)
  15. endif()
  16. set_property(GLOBAL
  17. PROPERTY
  18. USE_FOLDERS ON)
  19. set(CMAKE_CXX_STANDARD 11)
  20. include(ExternalProject)
  21. include(GNUInstallDirs)
  22. add_subdirectory(3rdparty)
  23. if(BUILD_UNIT_TESTS)
  24. enable_testing()
  25. add_subdirectory(core)
  26. add_subdirectory(test/core)
  27. endif()
  28. if(BUILD_FUNCTION_TESTS)
  29. enable_testing()
  30. add_subdirectory(core)
  31. add_subdirectory(cdn)
  32. add_subdirectory(cs)
  33. add_subdirectory(ecs)
  34. add_subdirectory(nlp)
  35. add_subdirectory(rds)
  36. add_subdirectory(slb)
  37. add_subdirectory(vpc)
  38. add_subdirectory(test/function_test/cdn)
  39. add_subdirectory(test/function_test/core)
  40. add_subdirectory(test/function_test/cs)
  41. add_subdirectory(test/function_test/ecs)
  42. add_subdirectory(test/function_test/nlp)
  43. add_subdirectory(test/function_test/rds)
  44. add_subdirectory(test/function_test/slb)
  45. add_subdirectory(test/function_test/vpc)
  46. endif()
  47. if(NOT BUILD_PRODUCT)
  48. message(WARNING "INVALID FOLDER 'BUILD_PRODUCT'=${BUILD_PRODUCT}")
  49. else()
  50. add_subdirectory(${BUILD_PRODUCT})
  51. message(STATUS "'BUILD_PRODUCT'=${BUILD_PRODUCT}")
  52. endif()