summaryrefslogtreecommitdiff
path: root/graphics/asymptote/LspCpp/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/asymptote/LspCpp/CMakeLists.txt')
-rw-r--r--graphics/asymptote/LspCpp/CMakeLists.txt23
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()