CMakeLists.txt 725 B

1234567891011121314151617181920212223
  1. cmake_minimum_required(VERSION 3.10)
  2. project(hpsocket)
  3. set(CMAKE_CXX_STANDARD 17)
  4. set(CMAKE_CXX_STANDARD_REQUIRED ON)
  5. file(GLOB_RECURSE ALL_SRC_FILES CONFIGURE_DEPENDS
  6. "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp"
  7. "${CMAKE_CURRENT_SOURCE_DIR}/*.c"
  8. )
  9. add_library(hpsocket STATIC ${ALL_SRC_FILES})
  10. target_include_directories(hpsocket PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
  11. # 解包 brotli 的 .a 为 .o 文件
  12. file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/brotli_objects)
  13. execute_process(
  14. COMMAND ${CMAKE_AR} -x ${CMAKE_CURRENT_SOURCE_DIR}/libbrotli.a
  15. WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/brotli_objects
  16. )
  17. file(GLOB BROTLI_OBJECTS "${CMAKE_BINARY_DIR}/brotli_objects/*.o")
  18. target_sources(hpsocket PRIVATE ${BROTLI_OBJECTS})