From c396db7db4c16dc420a640316c596b97fa46fe94 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 8 Feb 2025 03:04:57 +0000 Subject: CTAN sync 202502080304 --- .../asymptote/cmake-scripts/subrepo-projects.cmake | 74 ++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 graphics/asymptote/cmake-scripts/subrepo-projects.cmake (limited to 'graphics/asymptote/cmake-scripts/subrepo-projects.cmake') diff --git a/graphics/asymptote/cmake-scripts/subrepo-projects.cmake b/graphics/asymptote/cmake-scripts/subrepo-projects.cmake new file mode 100644 index 0000000000..a93c0367f4 --- /dev/null +++ b/graphics/asymptote/cmake-scripts/subrepo-projects.cmake @@ -0,0 +1,74 @@ +set(ASY_SUBREPO_CLONE_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) + +set(LSP_REPO_ROOT ${ASY_SUBREPO_CLONE_ROOT}/LspCpp) +set(TINYEXR_SUBREPO_ROOT ${ASY_SUBREPO_CLONE_ROOT}/tinyexr) +set(BOEHM_GC_ROOT ${ASY_SUBREPO_CLONE_ROOT}/gc) +set(LIBATOMIC_OPS_ROOT ${ASY_SUBREPO_CLONE_ROOT}/libatomic_ops) + +# boehm gc +if (ENABLE_GC) + set(enable_gpl OFF CACHE INTERNAL "libatomicops gpl libs option") + add_subdirectory(${LIBATOMIC_OPS_ROOT}) + + set(OLD_CFLAG_EXTRA ${CFLAG_EXTRA}) + set(CFLAGS_EXTRA -I${LIBATOMIC_OPS_ROOT}/src) # for bdwgc + + set(OLD_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) + set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "bdwgc shared libs flag") + set(enable_cplusplus ON CACHE INTERNAL "bdwgc enable C++") + set(without_libatomic_ops ON CACHE INTERNAL "bdwgc use libatomic ops") + add_subdirectory(${BOEHM_GC_ROOT}) + + set(CFLAG_EXTRA ${OLD_CFLAG_EXTRA}) + unset(BUILD_SHARED_LIBS CACHE) + set(BUILD_SHARED_LIBS ${OLD_BUILD_SHARED_LIBS}) + + list(APPEND ASY_STATIC_LIBARIES gc gccpp atomic_ops) + + if (WIN32) + list(APPEND ASY_MACROS GC_NOT_DLL) + endif() + # We use #include as opposed to (and also for other gc include files) to allow + # linking directly to the compiled source for testing different GC versions. + + # In GC tarballs downloaded from https://www.hboehm.info/gc/, the header files are in include/gc.h, and not + # include/gc/gc.h, hence we need a way to allow inclusion of "gc.h". In vcpkg gc distributions, the include + # files are provided in include/gc/gc.h (and other files). Hence we append "/gc" to the include directories. + + if (WIN32) + list(APPEND ASY_STATIC_LIBARIES gctba) + endif() + list(APPEND ASY_MACROS USEGC) +else() + message(STATUS "Disabling gc support") +endif() + +if (ENABLE_LSP) + message(STATUS "LSP Enabled.") + # disable New Boost version warning + set(Boost_NO_WARN_NEW_VERSIONS 1) + set(USE_SYSTEM_RAPIDJSON ON CACHE INTERNAL "Use system rapidjson") + set(LSPCPP_USE_CPP17 ON CACHE INTERNAL "C++17 mode") + # For transitive URI dependency + set(Uri_BUILD_DOCS OFF CACHE INTERNAL "build docs for uri") + set(Uri_BUILD_TESTS OFF CACHE INTERNAL "build tests for uri") + + if (WIN32) + set(LSPCPP_WIN32_WINNT_VALUE ${ASY_WIN32_WINVER_VERSION} CACHE INTERNAL "lsp win32 winver value") + endif() + + if (ENABLE_GC) + set(LSPCPP_SUPPORT_BOEHM_GC ON CACHE INTERNAL "Use boehm GC") + set(LSPCPP_GC_DOWNLOADED_ROOT ${BOEHM_GC_ROOT} CACHE INTERNAL "gc root for lsp") + set(LSPCPP_GC_STATIC ON CACHE INTERNAL "lsp use static gc") + endif() + + add_subdirectory(${LSP_REPO_ROOT}) + + list(APPEND ASY_STATIC_LIBARIES lspcpp) + list(APPEND ASY_MACROS HAVE_LSP=1) +else() + # only include lsp libraries + message(STATUS "LSP Disabled. Will not have language server protocol support.") + list(APPEND ASYMPTOTE_INCLUDES ${LSP_REPO_ROOT}/include) +endif() -- cgit v1.2.3