CMakeLists.txt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. cmake_minimum_required(VERSION 3.5)
  2. set(MODULE_NAME "tencent_cos_sdk")
  3. # 设置项目名为当前目录名
  4. project(${MODULE_NAME})
  5. #set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the type of build" FORCE)
  6. #set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0")
  7. #set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0")
  8. # 搜索源文件和头文件
  9. file(GLOB_RECURSE SOURCE_FILES "${PROJECT_SOURCE_DIR}/src/*.cpp")
  10. file(GLOB_RECURSE HEADER_FILES
  11. "${PROJECT_SOURCE_DIR}/src/*.h"
  12. )
  13. # 将源文件分配到 Source Files 文件夹
  14. foreach(source IN LISTS SOURCE_FILES)
  15. get_filename_component(source_path "${source}" PATH)
  16. file(RELATIVE_PATH source_path_rel "${PROJECT_SOURCE_DIR}" "${source_path}")
  17. string(REPLACE "/" "\\" source_path_rel_win "${source_path_rel}")
  18. source_group("Source Files\\${source_path_rel_win}" FILES "${source}")
  19. endforeach()
  20. # 将头文件分配到 Header Files 文件夹
  21. foreach(header IN LISTS HEADER_FILES)
  22. get_filename_component(header_path "${header}" PATH)
  23. file(RELATIVE_PATH header_path_rel "${PROJECT_SOURCE_DIR}" "${header_path}")
  24. string(REPLACE "/" "\\" header_path_rel_win "${header_path_rel}")
  25. source_group("Header Files\\${header_path_rel_win}" FILES "${header}")
  26. endforeach()
  27. set(CMAKE_CXX_STANDARD 20)
  28. set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
  29. # 安装复制
  30. set(CMAKE_INSTALL_ALWAYS_COPY TRUE)
  31. set(YLIB ${CMAKE_INSTALL_PREFIX}/../ylib)
  32. set(FASTWEB ${CMAKE_INSTALL_PREFIX}/../fastweb)
  33. # 包含路径
  34. if(MSVC)
  35. else()
  36. include_directories(
  37. /usr/local/include/ylib
  38. /usr/local/include/fastweb
  39. /opt/lua54/include
  40. /usr/local/include
  41. /usr/include/apr-1.0
  42. /usr/local/include/oss_c_sdk
  43. )
  44. add_definitions(-DfPIC)
  45. endif()
  46. # 添加共享库
  47. add_library(${MODULE_NAME} SHARED ${HEADER_FILES} ${SOURCE_FILES})
  48. if(MSVC)
  49. else()
  50. target_link_libraries(${MODULE_NAME}
  51. hpsocket
  52. ylib
  53. crypto
  54. /opt/lua54/lib/liblua.a
  55. pthread
  56. /usr/lib/x86_64-linux-gnu/libalibabacloud-sdk-core.so
  57. /usr/local/lib/liboss_c_sdk.so
  58. /usr/lib/x86_64-linux-gnu/libmxml.so
  59. /usr/lib/x86_64-linux-gnu/libapr-1.so
  60. /usr/lib/x86_64-linux-gnu/libaprutil-1.so
  61. )
  62. endif()
  63. install(TARGETS ${MODULE_NAME} DESTINATION $<IF:$<CONFIG:Debug>,${FASTWEB}/bin/debug/module/${MODULE_NAME},${FASTWEB}/bin/release/module/${MODULE_NAME}>)