diff options
Diffstat (limited to 'graphics/asymptote/LspCpp/CMakeLists.txt')
-rw-r--r-- | graphics/asymptote/LspCpp/CMakeLists.txt | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/graphics/asymptote/LspCpp/CMakeLists.txt b/graphics/asymptote/LspCpp/CMakeLists.txt index 8def30abce..b04e08e733 100644 --- a/graphics/asymptote/LspCpp/CMakeLists.txt +++ b/graphics/asymptote/LspCpp/CMakeLists.txt @@ -43,6 +43,16 @@ option_if_not_defined(LSPCPP_ASAN "Build lsp with address sanitizer" OFF) option_if_not_defined(LSPCPP_MSAN "Build lsp with memory sanitizer" OFF) option_if_not_defined(LSPCPP_TSAN "Build lsp with thread sanitizer" OFF) option_if_not_defined(LSPCPP_INSTALL "Create lsp install target" OFF) +option_if_not_defined(LSPCPP_SUPPORT_BOEHM_GC + "Enable support for Boehm GC. Boehm GC must be available by find_package(BDWgc CONFIG REQUIRED)." OFF) +option_if_not_defined(LSPCPP_USE_CPP17 "Use C++17 for compilation. Setting this to off requires boost-optional." OFF) + + +# Boehm GC + +if (LSPCPP_SUPPORT_BOEHM_GC) + find_package(BDWgc CONFIG REQUIRED) +endif() ########################################################### # Directories @@ -89,8 +99,12 @@ function(lspcpp_set_target_options target) set_property(TARGET ${target} PROPERTY CXX_STANDARD_REQUIRED ON) - # Enable C++14 (Required) - set_property(TARGET ${target} PROPERTY CXX_STANDARD 14) + # Enable C++14/17 (Required) + if (LSPCPP_USE_CPP17) + set_property(TARGET ${target} PROPERTY CXX_STANDARD 17) + else() + set_property(TARGET ${target} PROPERTY CXX_STANDARD 14) + endif() set_property(TARGET ${target} PROPERTY CXX_EXTENSIONS OFF) @@ -152,6 +166,11 @@ function(lspcpp_set_target_options target) # target_compile_options(${target} PRIVATE "-Wl,--no-undefined") # endif() + if (LSPCPP_SUPPORT_BOEHM_GC) + target_link_libraries(${target} PUBLIC BDWgc::gc) + target_compile_definitions(${target} PUBLIC LSPCPP_USEGC) + endif() + endfunction() |