mirror of
https://github.com/polserver/polserver
synced 2026-08-13 08:23:08 -04:00
* every 3rd party lib is now excluded from "all" build, meaning it gets only build when actually used. removed the cmake option to partially build, due to the above changes this is no more needed, just build the target streamlined 3rdparty target names, they all start with lib now * renamed escriptgrammar target to escriptgrammar_codegen for clarification fixed dependency name * corrected sources name * readded missing include
135 lines
4.7 KiB
CMake
135 lines
4.7 KiB
CMake
message("* libboost")
|
|
set (BOOST_SOURCE_DIR "${POL_EXT_LIB_DIR}/boost_1_83_0")
|
|
# set (BOOST_STAGE_LIB_DIR "${BOOST_SOURCE_DIR}/stage/lib")
|
|
|
|
if (clang)
|
|
set (BOOST_TOOLSET "clang")
|
|
elseif (gcc)
|
|
set (BOOST_TOOLSET "gcc")
|
|
elseif (msvc)
|
|
if (MSVC_TOOLSET_VERSION EQUAL 140)
|
|
set (BOOST_TOOLSET "msvc") # VS 2015 (14.0)
|
|
elseif(MSVC_TOOLSET_VERSION EQUAL 141)
|
|
set(BOOST_TOOLSET "msvc-14.1") # VS 2017 (15.0)
|
|
elseif(MSVC_TOOLSET_VERSION EQUAL 142)
|
|
set(BOOST_TOOLSET "msvc-14.2") # VS 2019 (16.0)
|
|
elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 143)
|
|
set(BOOST_TOOLSET "msvc-14.3") # VS 2022 (17.0)
|
|
endif()
|
|
endif()
|
|
|
|
#if (NOT DEFINED BOOST_TOOLSET)
|
|
# message(FATAL_ERROR "Unknown boost toolset to build")
|
|
#endif()
|
|
|
|
#if (${windows})
|
|
# set (BOOST_CONFIGURE_COMMAND "bootstrap.bat")
|
|
# set (BOOST_BUILD_COMMAND "b2.exe")
|
|
# set (BOOST_REGEX_LIB "${BOOST_STAGE_LIB_DIR}/libboost_regex.lib" )
|
|
# set (BOOST_SYSTEM_LIB "${BOOST_STAGE_LIB_DIR}/libboost_system.lib" )
|
|
# set (BOOST_THREAD_LIB "${BOOST_STAGE_LIB_DIR}/libboost_thread.lib" )
|
|
# if (msvc)
|
|
# set (BOOST_CXX_FLAGS "/MT")
|
|
# else()
|
|
# set (BOOST_CXX_FLAGS "-fms-runtime-lib=static")
|
|
# endif()
|
|
#else()
|
|
# set (BOOST_CONFIGURE_COMMAND "./bootstrap.sh")
|
|
# set (BOOST_BUILD_COMMAND "./b2")
|
|
# set (BOOST_REGEX_LIB "${BOOST_STAGE_LIB_DIR}/libboost_regex.a" )
|
|
# set (BOOST_SYSTEM_LIB "${BOOST_STAGE_LIB_DIR}/libboost_system.a" )
|
|
# set (BOOST_THREAD_LIB "${BOOST_STAGE_LIB_DIR}/libboost_thread.a" )
|
|
#
|
|
# set (BOOST_CXX_FLAGS "")
|
|
# foreach(OSX_ARCHITECTURE ${CMAKE_OSX_ARCHITECTURES})
|
|
# set (BOOST_CXX_FLAGS "${BOOST_CXX_FLAGS} -arch ${OSX_ARCHITECTURE}")
|
|
# endforeach()
|
|
#endif()
|
|
|
|
set(boost_needs_extract FALSE)
|
|
#set(boost_needs_build FALSE)
|
|
if (NOT EXISTS "${BOOST_SOURCE_DIR}/boost")
|
|
message(" - will extract")
|
|
ExternalProject_Add(libboost_ext
|
|
URL "https://boostorg.jfrog.io/artifactory/main/release/1.83.0/source/boost_1_83_0.tar.bz2"
|
|
SOURCE_DIR "${BOOST_SOURCE_DIR}"
|
|
CONFIGURE_COMMAND "" #${BOOST_CONFIGURE_COMMAND} --with-toolset=${BOOST_TOOLSET}
|
|
BUILD_COMMAND ""
|
|
INSTALL_COMMAND ""
|
|
BUILD_BYPRODUCTS "${BOOST_SOURCE_DIR}"
|
|
LOG_DOWNLOAD 1
|
|
LOG_CONFIGURE 1
|
|
BUILD_IN_SOURCE 1
|
|
LOG_OUTPUT_ON_FAILURE 1
|
|
DOWNLOAD_EXTRACT_TIMESTAMP 1
|
|
EXCLUDE_FROM_ALL 1
|
|
)
|
|
set_target_properties (libboost_ext PROPERTIES FOLDER 3rdParty)
|
|
set(boost_needs_extract TRUE)
|
|
else()
|
|
message(" - will not extract")
|
|
endif()
|
|
|
|
#if(NOT EXISTS ${BOOST_REGEX_LIB} OR NOT EXISTS ${BOOST_SYSTEM_LIB} OR NOT EXISTS ${BOOST_THREAD_LIB})
|
|
# message(" - will build in ${BOOST_SOURCE_DIR} toolset=${BOOST_TOOLSET} cxxflags=${BOOST_CXX_FLAGS}")
|
|
# ExternalProject_Add(boost_build
|
|
# SOURCE_DIR ${BOOST_SOURCE_DIR}
|
|
# INSTALL_COMMAND ""
|
|
# CONFIGURE_COMMAND ""
|
|
# DOWNLOAD_COMMAND ""
|
|
# BUILD_COMMAND ${BOOST_BUILD_COMMAND} cxxflags=${BOOST_CXX_FLAGS} address-model=${ARCH_BITS} toolset=${BOOST_TOOLSET} variant=release link=static runtime-link=static --layout=system --with-regex --with-system --with-thread stage
|
|
# BUILD_BYPRODUCTS ${BOOST_REGEX_LIB} ${BOOST_SYSTEM_LIB} ${BOOST_THREAD_LIB}
|
|
# LOG_BUILD 1
|
|
# BUILD_IN_SOURCE 1
|
|
# LOG_OUTPUT_ON_FAILURE 1
|
|
# )
|
|
# if (boost_needs_extract)
|
|
# add_dependencies(boost_build boost_extract)
|
|
# endif()
|
|
# set_target_properties (boost_build PROPERTIES FOLDER 3rdParty)
|
|
# set(boost_needs_build TRUE)
|
|
#else()
|
|
# message(" - will not build")
|
|
#endif()
|
|
|
|
# imported target to add include/lib dir and additional dependencies
|
|
add_library(libboost_headers INTERFACE IMPORTED)
|
|
set_target_properties(libboost_headers PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES ${BOOST_SOURCE_DIR}
|
|
)
|
|
if (boost_needs_extract)
|
|
add_dependencies(libboost_headers libboost_ext)
|
|
endif()
|
|
|
|
#add_library(libboost_regex STATIC IMPORTED)
|
|
#set_target_properties(libboost_regex PROPERTIES
|
|
# IMPORTED_LOCATION ${BOOST_REGEX_LIB}
|
|
# IMPORTED_IMPLIB ${BOOST_REGEX_LIB}
|
|
# INTERFACE_INCLUDE_DIRECTORIES ${BOOST_SOURCE_DIR}
|
|
# FOLDER 3rdParty
|
|
#)
|
|
#if (boost_needs_build)
|
|
# add_dependencies(libboost_regex boost_build)
|
|
#endif()
|
|
#
|
|
#add_library(libboost_system STATIC IMPORTED)
|
|
#set_target_properties(libboost_system PROPERTIES
|
|
# IMPORTED_LOCATION ${BOOST_SYSTEM_LIB}
|
|
# IMPORTED_IMPLIB ${BOOST_SYSTEM_LIB}
|
|
# INTERFACE_INCLUDE_DIRECTORIES ${BOOST_SOURCE_DIR}
|
|
# FOLDER 3rdParty
|
|
#)
|
|
#if (boost_needs_build)
|
|
# add_dependencies(libboost_system boost_build)
|
|
#endif()
|
|
#
|
|
#add_library(libboost_thread STATIC IMPORTED)
|
|
#set_target_properties(libboost_thread PROPERTIES
|
|
# IMPORTED_LOCATION ${BOOST_THREAD_LIB}
|
|
# IMPORTED_IMPLIB ${BOOST_THREAD_LIB}
|
|
# INTERFACE_INCLUDE_DIRECTORIES ${BOOST_SOURCE_DIR}
|
|
# FOLDER 3rdParty
|
|
#)
|
|
#if (boost_needs_build)
|
|
# add_dependencies(libboost_thread boost_build)
|
|
#endif()
|