123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- if(WIN32)
- if(DEFINED ENV{BOOST_ROOT})
- set(BOOST_ROOT $ENV{BOOST_ROOT})
- endif()
- set(Boost_USE_STATIC_LIBS ON)
- set(Boost_USE_MULTITHREADED ON)
- set(Boost_USE_STATIC_RUNTIME OFF)
- endif()
- set(Boost_NO_WARN_NEW_VERSIONS ON)
- set(BOOST_REQUIRED_VERSION 1.87)
- find_package(Boost ${BOOST_REQUIRED_VERSION} REQUIRED COMPONENTS
- system
- filesystem
- program_options
- iostreams
- regex
- random
- )
- if(NOT Boost_FOUND)
- message(FATAL_ERROR "Boost not found! 请确认 BOOST_ROOT 环境变量是否正确设置。")
- endif()
- # 创建一个 INTERFACE 库,封装 Boost 相关设置
- add_library(boost INTERFACE)
- # 使用 Boost 的 imported targets 链接各个组件,
- # 这样其它目标在链接 boost 时会自动获得对应组件库的链接信息
- target_link_libraries(boost
- INTERFACE
- ${Boost_LIBRARIES}
- )
- # 指定 Boost 的包含目录
- target_include_directories(boost
- INTERFACE
- ${Boost_INCLUDE_DIRS}
- )
- # 定义一些编译选项,避免自动链接某些库
- target_compile_definitions(boost
- INTERFACE
- -DBOOST_DATE_TIME_NO_LIB
- -DBOOST_REGEX_NO_LIB
- -DBOOST_CHRONO_NO_LIB
- -DBOOST_SERIALIZATION_NO_LIB
- -DBOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE
- -DBOOST_ASIO_NO_DEPRECATED
- -DBOOST_SYSTEM_USE_UTF8
- -DBOOST_BIND_NO_PLACEHOLDERS
- )
|