diff --git a/register/base.cmake b/register/base.cmake index 0330757..2331c0b 100644 --- a/register/base.cmake +++ b/register/base.cmake @@ -1,185 +1,159 @@ include_guard(GLOBAL) - - -if (CMAKE_SYSTEM_NAME STREQUAL "Linux") - if (NOT CMAKE_SYSROOT) - set(CMAKE_SYSROOT /) +block() + if (CMAKE_SYSTEM_NAME STREQUAL "Linux") + if (NOT CMAKE_SYSROOT) + set(CMAKE_SYSROOT /) + endif () endif () -endif () - - -if (CMAKE_SYSROOT) - list(APPEND base_options "-DCMAKE_SYSROOT=${CMAKE_SYSROOT}") -endif () - -set(zlib_opts) -list(APPEND zlib_opts "-DZLIB_BUILD_EXAMPLES=OFF") -_register_git_cmake_library( - zlib - ZLIB - https://github.com/madler/zlib.git - v1.3.1 -) -rcl_get_effective_install_dir(zlib ZLIB_ROOT) -set(ZLIB_INCLUDE_DIR ${ZLIB_ROOT}/include) - -if (MSVC) - if (CMAKE_BUILD_TYPE STREQUAL "Debug") - set(ZLIB_LIBRARY "${ZLIB_ROOT}/lib/zlibstaticd.lib") + if (CMAKE_SYSROOT) + list(APPEND base_options "-DCMAKE_SYSROOT=${CMAKE_SYSROOT}") + endif () + set(zlib_opts) + list(APPEND zlib_opts "-DZLIB_BUILD_EXAMPLES=OFF") + _register_git_cmake_library( + zlib + ZLIB + https://github.com/madler/zlib.git + v1.3.1 + ) + rcl_get_effective_install_dir(zlib ZLIB_ROOT) + set(ZLIB_INCLUDE_DIR ${ZLIB_ROOT}/include) + if (MSVC) + if (CMAKE_BUILD_TYPE STREQUAL "Debug") + set(ZLIB_LIBRARY "${ZLIB_ROOT}/lib/zlibstaticd.lib") + else () + set(ZLIB_LIBRARY "${ZLIB_ROOT}/lib/zlibstatic.lib") + endif () else () - set(ZLIB_LIBRARY "${ZLIB_ROOT}/lib/zlibstatic.lib") + set(ZLIB_LIBRARY ${ZLIB_ROOT}/lib/libz.a) endif () -else () - set(ZLIB_LIBRARY ${ZLIB_ROOT}/lib/libz.a) -endif () - -rcl_cmake_library_set_cmake_options(zlib ${zlib_opts}) -rcl_cmake_library_set_other_use_opt(zlib - "-DZLIB_ROOT=\"${ZLIB_ROOT}\"" - "-DZLIB_LIBRARY=\"${ZLIB_LIBRARY}\"" - "-DZLIB_INCLUDE_DIR=\"${ZLIB_ROOT}/include\"" -) -rcl_cmake_library_set_init_script(zlib - "set(ZLIB_ROOT \"${ZLIB_ROOT}\")" - "set(ZLIB_INCLUDE_DIR \"${ZLIB_INCLUDE_DIR}\")" - "set(ZLIB_INCLUDE_DIRS \"${ZLIB_INCLUDE_DIR}\")" - "set(ZLIB_LIBRARY \"${ZLIB_LIBRARY}\")" - "set(ZLIB_LIBRARIES \"${ZLIB_LIBRARY}\")" -) -rcl_cmake_library_set_clear_script(zlib - "unset(ZLIB_ROOT)" - "unset(ZLIB_INCLUDE_DIR)" - "unset(ZLIB_INCLUDE_DIRS)" - "unset(ZLIB_LIBRARY)" - "unset(ZLIB_LIBRARIES)" -) - - -# ========================= -# libpng -# ========================= - -set(LIBPNG_VERSION v1.6.58) -set(PNG_ROOT "${EXTERNAL_INSTALL_DIR}/PNG_${LIBPNG_VERSION}") -set(PNG_PNG_INCLUDE_DIR "${PNG_ROOT}/include") - -if (WIN32) - if (CMAKE_BUILD_TYPE STREQUAL "Debug") - set(PNG_LIBRARY "${PNG_ROOT}/lib/libpng16_staticd.lib") + rcl_cmake_library_set_cmake_options(zlib ${zlib_opts}) + rcl_cmake_library_set_other_use_opt(zlib + "-DZLIB_ROOT=\"${ZLIB_ROOT}\"" + "-DZLIB_LIBRARY=\"${ZLIB_LIBRARY}\"" + "-DZLIB_INCLUDE_DIR=\"${ZLIB_ROOT}/include\"" + ) + rcl_cmake_library_set_init_script(zlib + "set(ZLIB_ROOT \"${ZLIB_ROOT}\")" + "set(ZLIB_INCLUDE_DIR \"${ZLIB_INCLUDE_DIR}\")" + "set(ZLIB_INCLUDE_DIRS \"${ZLIB_INCLUDE_DIR}\")" + "set(ZLIB_LIBRARY \"${ZLIB_LIBRARY}\")" + "set(ZLIB_LIBRARIES \"${ZLIB_LIBRARY}\")" + ) + rcl_cmake_library_set_clear_script(zlib + "unset(ZLIB_ROOT)" + "unset(ZLIB_INCLUDE_DIR)" + "unset(ZLIB_INCLUDE_DIRS)" + "unset(ZLIB_LIBRARY)" + "unset(ZLIB_LIBRARIES)" + ) + # ========================= + # libpng + # ========================= + set(LIBPNG_VERSION v1.6.58) + set(PNG_ROOT "${EXTERNAL_INSTALL_DIR}/PNG_${LIBPNG_VERSION}") + set(PNG_PNG_INCLUDE_DIR "${PNG_ROOT}/include") + if (WIN32) + if (CMAKE_BUILD_TYPE STREQUAL "Debug") + set(PNG_LIBRARY "${PNG_ROOT}/lib/libpng16_staticd.lib") + else () + set(PNG_LIBRARY "${PNG_ROOT}/lib/libpng16_static.lib") + endif () else () - set(PNG_LIBRARY "${PNG_ROOT}/lib/libpng16_static.lib") + if (CMAKE_BUILD_TYPE STREQUAL "Debug") + set(PNG_LIBRARY "${PNG_ROOT}/lib/libpng16d.a") + else () + set(PNG_LIBRARY "${PNG_ROOT}/lib/libpng16.a") + endif () endif () -else () - if (CMAKE_BUILD_TYPE STREQUAL "Debug") - set(PNG_LIBRARY "${PNG_ROOT}/lib/libpng16d.a") - else () - set(PNG_LIBRARY "${PNG_ROOT}/lib/libpng16.a") - endif () -endif () - -set(libpng_opts) -list(APPEND libpng_opts "-DPNG_SHARED=OFF") -list(APPEND libpng_opts "-DPNG_STATIC=ON") -list(APPEND libpng_opts "-DPNG_TESTS=OFF") -list(APPEND libpng_opts "-DPNG_TOOLS=OFF") -list(APPEND libpng_opts "-DPNG_EXECUTABLES=OFF") -list(APPEND libpng_opts "-DZLIB_ROOT=\"${ZLIB_ROOT}\"") -list(APPEND libpng_opts "-DZLIB_LIBRARY=\"${ZLIB_LIBRARY}\"") -list(APPEND libpng_opts "-DZLIB_INCLUDE_DIR=\"${ZLIB_INCLUDE_DIR}\"") -_register_git_cmake_library( - libpng - libpng - https://github.com/glennrp/libpng.git - v1.6.58 -) -rcl_cmake_library_set_cmake_options(libpng ${libpng_opts}) -rcl_cmake_library_set_other_use_opt(libpng - "-DPNG_LIBRARY=\"${PNG_LIBRARY}\"" - "-DPNG_PNG_INCLUDE_DIR=\"${PNG_PNG_INCLUDE_DIR}\"" -) - - -set(GTest_opts) -list(APPEND GTest_opts "-Dgtest_force_shared_crt=ON") -_register_git_cmake_library( - googletest - GTest - https://github.com/google/googletest.git - v1.17.0 -) -rcl_cmake_library_set_cmake_options(googletest ${GTest_opts}) -set(GTest_DIR ${EXTERNAL_INSTALL_DIR}/googletest/lib/cmake) - - -#_register_git_cmake_library( -# libarchive -# libarchive -# "https://github.com/libarchive/libarchive.git" -# "v3.8.7" -# libarchive_opts -# "" -# "" -#) - - -set(libzip_opts) -list(APPEND libzip_opts "-DBUILD_EXAMPLES=OFF") -list(APPEND libzip_opts "-DBUILD_DOC=OFF") -list(APPEND libzip_opts "-DBUILD_REGRESS=OFF") -list(APPEND libzip_opts "-DBUILD_TOOLS=OFF") -list(APPEND libzip_opts "-DBUILD_SHARED_LIBS=OFF") -_register_git_cmake_library( - libzip - libzip - "https://github.com/nih-at/libzip" - "v1.11.4" -) -rcl_cmake_library_set_cmake_options(libzip ${libzip_opts}) -rcl_cmake_library_set_deps(libzip zlib) - - -#set(ucoro_opts) -#_register_git_cmake_library_opt( -# "ucoro" -# "https://github.com/avplayer/ucoro.git" -# "v1.0" -# ucoro_opts -#) -# - - -set(spdlog_opts) -list(APPEND spdlog_opts - "-DSPDLOG_BUILD_EXAMPLE=OFF" - "-DSPDLOG_BUILD_TESTS=OFF" - "-DSPLOG_BUILD_BENCH=OFF" - "-DSPDLOG_INSTALL=ON" - "-DSPDLOG_FMT_EXTERNAL=OFF" -) - -_register_git_cmake_library( - spdlog - spdlog - "https://github.com/gabime/spdlog.git" - "v1.17.0" -) -rcl_cmake_library_set_cmake_options(spdlog ${spdlog_opts}) - - -_register_git_cmake_library( - pfr - pfr - "https://github.com/boostorg/pfr.git" - "2.2.0" -) - -_register_git_cmake_library( - llvm - llvm - "https://github.com/llvm/llvm-project.git" - "llvmorg-22.1.8" -) -rcl_cmake_library_set_cmake_source_relative_dir(llvm "llvm") - - -message("base.cmake load complete!") + set(libpng_opts) + list(APPEND libpng_opts "-DPNG_SHARED=OFF") + list(APPEND libpng_opts "-DPNG_STATIC=ON") + list(APPEND libpng_opts "-DPNG_TESTS=OFF") + list(APPEND libpng_opts "-DPNG_TOOLS=OFF") + list(APPEND libpng_opts "-DPNG_EXECUTABLES=OFF") + list(APPEND libpng_opts "-DZLIB_ROOT=\"${ZLIB_ROOT}\"") + list(APPEND libpng_opts "-DZLIB_LIBRARY=\"${ZLIB_LIBRARY}\"") + list(APPEND libpng_opts "-DZLIB_INCLUDE_DIR=\"${ZLIB_INCLUDE_DIR}\"") + _register_git_cmake_library( + libpng + libpng + https://github.com/glennrp/libpng.git + v1.6.58 + ) + rcl_cmake_library_set_cmake_options(libpng ${libpng_opts}) + rcl_cmake_library_set_other_use_opt(libpng + "-DPNG_LIBRARY=\"${PNG_LIBRARY}\"" + "-DPNG_PNG_INCLUDE_DIR=\"${PNG_PNG_INCLUDE_DIR}\"" + ) + set(GTest_opts) + list(APPEND GTest_opts "-Dgtest_force_shared_crt=ON") + _register_git_cmake_library( + googletest + GTest + https://github.com/google/googletest.git + v1.17.0 + ) + rcl_cmake_library_set_cmake_options(googletest ${GTest_opts}) + set(GTest_DIR ${EXTERNAL_INSTALL_DIR}/googletest/lib/cmake) + #_register_git_cmake_library( + # libarchive + # libarchive + # "https://github.com/libarchive/libarchive.git" + # "v3.8.7" + # libarchive_opts + # "" + # "" + #) + set(libzip_opts) + list(APPEND libzip_opts "-DBUILD_EXAMPLES=OFF") + list(APPEND libzip_opts "-DBUILD_DOC=OFF") + list(APPEND libzip_opts "-DBUILD_REGRESS=OFF") + list(APPEND libzip_opts "-DBUILD_TOOLS=OFF") + list(APPEND libzip_opts "-DBUILD_SHARED_LIBS=OFF") + _register_git_cmake_library( + libzip + libzip + "https://github.com/nih-at/libzip" + "v1.11.4" + ) + rcl_cmake_library_set_cmake_options(libzip ${libzip_opts}) + rcl_cmake_library_set_deps(libzip zlib) + #set(ucoro_opts) + #_register_git_cmake_library_opt( + # "ucoro" + # "https://github.com/avplayer/ucoro.git" + # "v1.0" + # ucoro_opts + #) + # + set(spdlog_opts) + list(APPEND spdlog_opts + "-DSPDLOG_BUILD_EXAMPLE=OFF" + "-DSPDLOG_BUILD_TESTS=OFF" + "-DSPLOG_BUILD_BENCH=OFF" + "-DSPDLOG_INSTALL=ON" + "-DSPDLOG_FMT_EXTERNAL=OFF" + ) + _register_git_cmake_library( + spdlog + spdlog + "https://github.com/gabime/spdlog.git" + "v1.17.0" + ) + rcl_cmake_library_set_cmake_options(spdlog ${spdlog_opts}) + _register_git_cmake_library( + pfr + pfr + "https://github.com/boostorg/pfr.git" + "2.2.0" + ) + _register_git_cmake_library( + llvm + llvm + "https://github.com/llvm/llvm-project.git" + "llvmorg-22.1.8" + ) + rcl_cmake_library_set_cmake_source_relative_dir(llvm "llvm") + message("base.cmake load complete!") +endblock() \ No newline at end of file diff --git a/register/computer_graphics.cmake b/register/computer_graphics.cmake index 9f4ce13..e93aa8e 100644 --- a/register/computer_graphics.cmake +++ b/register/computer_graphics.cmake @@ -1,210 +1,178 @@ include_guard(GLOBAL) - include(${CMAKE_CURRENT_LIST_DIR}/../0_cmake_library/register_libaray/export.cmake) - include(${CMAKE_CURRENT_LIST_DIR}/base.cmake) - - -set(freetype_opts) -set(freetype_root ${EXTERNAL_INSTALL_DIR}/freetype_VER-2-13-3) -set(FREETYPE_INCLUDE_DIRS "${freetype_root}/include/freetype2") -set(FREETYPE_INCLUDE_DIR_ft2build "${freetype_root}/include/freetype2") -set(FREETYPE_INCLUDE_DIR_freetype2 "${freetype_root}/include/freetype2") - -if (CMAKE_BUILD_TYPE STREQUAL "Debug") - set(FREETYPE_LIBRARY "${freetype_root}/lib/freetyped.lib") -else () - set(FREETYPE_LIBRARY "${freetype_root}/lib/freetype.lib") -endif () - -_register_git_cmake_library( - freetype - freetype - https://github.com/freetype/freetype.git - VER-2-13-3 -) -rcl_cmake_library_set_cmake_options(freetype ${freetype_opts}) -rcl_cmake_library_set_other_use_opt(freetype - "-DFREETYPE_INCLUDE_DIRS=\"${FREETYPE_INCLUDE_DIRS}\"" - "-DFREETYPE_INCLUDE_DIR_ft2build=\"${FREETYPE_INCLUDE_DIR_ft2build}\"" - "-DFREETYPE_INCLUDE_DIR_freetype2=\"${FREETYPE_INCLUDE_DIR_freetype2}\"" - "-DFREETYPE_LIBRARY=\"${FREETYPE_LIBRARY}\"" - "-DFREETYPE_LIBRARIES=\"${FREETYPE_LIBRARY}\"" -) - - -set(msdfgen_cmake_option ${base_options}) -list(APPEND msdfgen_cmake_option "-DMSDFGEN_USE_SKIA=OFF -DMSDFGEN_USE_VCPKG=OFF") -list(APPEND msdfgen_cmake_option "-DBUILD_SHARED_LIBS=ON -DMSDFGEN_DYNAMIC_RUNTIME=ON") -list(APPEND msdfgen_cmake_option "-DMSDFGEN_INSTALL=ON") -_register_git_cmake_library( - msdfgen - msdfgen - https://github.com/Chlumsky/msdfgen.git - v1.12 -) -rcl_cmake_library_set_cmake_options(msdfgen ${msdfgen_cmake_option}) -rcl_cmake_library_set_deps(msdfgen zlib libpng freetype tinyxml2) - - -#https://github.com/nyyManni/msdfgl.git -set(msdfgl_cmake_option "") - - -set(PThreads4W_option - ${base_options} - -) -list(APPEND PThreads4W_option "-DBUILD_TESTING=OFF") -list(APPEND PThreads4W_option "-DDIST_ROOT=${EXTERNAL_INSTALL_DIR}/PThreads4W") -_register_git_cmake_library( - PThreads4W - PThreads4W - https://github.com/jwinarske/pthreads4w.git - "cmake" -) -rcl_cmake_library_set_cmake_options(PThreads4W ${PThreads4W_option}) - -# C:\VulkanSDK\1.4.350.0 -# SDK涓嬭浇 https://vulkan.lunarg.com/sdk/home -# https://docs.vulkan.org/tutorial/latest/00_Introduction.html -# https://github.com/Overv/VulkanTutorial.git -# https://github.com/KhronosGroup/Vulkan-Samples.git -# https://github.com/SaschaWillems/Vulkan.git -set(glfw3_option ${base_options}) -_register_git_cmake_library( - glfw3 - glfw3 - https://github.com/glfw/glfw.git - "3.4" -) -rcl_cmake_library_set_cmake_options(glfw3 ${glfw3_option}) - - -set(glfw3_option ${base_options}) -set(msdf-atlas-gen_option ${base_options}) -list(APPEND msdf-atlas-gen_option - "-DMSDFGEN_DISABLE_SVG=OFF" - "-DMSDFGEN_USE_SKIA=OFF" - "-DMSDF_ATLAS_BUILD_STANDALONE=OFF" - "-DMSDF_ATLAS_USE_VCPKG=OFF" - "-DMSDF_ATLAS_USE_SKIA=OFF" - "-DMSDF_ATLAS_DYNAMIC_RUNTIME=ON" - "-DMSDF_ATLAS_MSDFGEN_EXTERNAL=OFF" - "-DMSDF_ATLAS_INSTALL=ON" - "-DMSDFGEN_INSTALL=ON" - "-DBUILD_SHARED_LIBS=OFF" -) - -set(msdf-atlas-gen_rely ZLIB freetype png) -_register_git_cmake_library( - msdf-atlas-gen - msdf-atlas-gen - https://github.com/Chlumsky/msdf-atlas-gen.git - v1.4 -) -rcl_cmake_library_set_cmake_options(msdf-atlas-gen ${msdf-atlas-gen_option}) - - -set(cglm_option ${base_options}) -_register_git_cmake_library( - cglm - cglm - "https://github.com/recp/cglm.git" - v0.9.6 -) -rcl_cmake_library_set_cmake_options(cglm ${cglm_option}) - -set(glm_option ${base_options}) -_register_git_cmake_library( - glm - glm - "https://github.com/g-truc/glm.git" - "1.0.3" -) -rcl_cmake_library_set_cmake_options(glm ${glm_option}) - - -set(tinyobjloader_option ${base_options}) -list(APPEND tinyobjloader_option "-DCMAKE_POLICY_VERSION_MINIMUM=3.20") -_register_git_cmake_library( - tinyobjloader - tinyobjloader - "https://github.com/tinyobjloader/tinyobjloader.git" - "v1.0.7" -) -rcl_cmake_library_set_cmake_options(tinyobjloader ${tinyobjloader_option}) - - -set(vk-bootstrap_option ${base_options}) -_register_git_cmake_library( - vk-bootstrap - vk-bootstrap - "https://github.com/charles-lunarg/vk-bootstrap.git" - "v1.4.350" -) -rcl_cmake_library_set_cmake_options(vk-bootstrap ${vk-bootstrap_option}) - -set(Vulkan-Hpp_option ${base_options}) -_register_git_cmake_library( - Vulkan-Hpp - Vulkan-Hpp - "https://github.com/KhronosGroup/Vulkan-Hpp.git" - "v1.4.350" -) -rcl_cmake_library_set_cmake_options(Vulkan-Hpp ${Vulkan-Hpp_option}) - - -set(volk_option ${base_options}) -list(APPEND volk_option "-DVOLK_INSTALL=ON") -list(APPEND volk_option "-DVOLK_PULL_IN_VULKAN=ON") -list(APPEND volk_option "-DVOLK_HEADERS_ONLY=OFF") -list(APPEND volk_option "-DVOLK_NAMESPACE=ON") -#list(APPEND volk_option "-DVOLK_STATIC_DEFINES=VK_USE_PLATFORM_WIN32_KHR") -_register_git_cmake_library( - volk - volk - "https://github.com/zeux/volk.git" - "vulkan-sdk-1.4.350.0" -) -rcl_cmake_library_set_cmake_options(volk ${volk_option}) - - -# vma -set(VulkanMemoryAllocator_option ${base_options}) -_register_git_cmake_library( - VulkanMemoryAllocator - VulkanMemoryAllocator - "https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git" - "v3.3.0" -) -rcl_cmake_library_set_cmake_options(VulkanMemoryAllocator ${VulkanMemoryAllocator_option}) - -set(tinygltf_option ${base_options}) -_register_git_cmake_library( - tinygltf - tinygltf - "https://github.com/syoyo/tinygltf.git" - "v3.0.0" -) -rcl_cmake_library_set_cmake_options(tinygltf ${tinygltf_option}) - - -set(fastgltf_option ${base_options}) -_register_git_cmake_library( - fastgltf - fastgltf - "https://github.com/spnda/fastgltf.git" - "v0.9.0" -) -rcl_cmake_library_set_cmake_options(fastgltf ${fastgltf_option}) - - -set(VulkanSceneGraph_option ${base_options}) -_register_git_cmake_library( - VulkanSceneGraph - VulkanSceneGraph - "https://github.com/vsg-dev/VulkanSceneGraph.git" - "v1.1.15" -) -rcl_cmake_library_set_cmake_options(VulkanSceneGraph ${VulkanSceneGraph_option}) +block() + set(freetype_opts) + set(freetype_root ${EXTERNAL_INSTALL_DIR}/freetype_VER-2-13-3) + set(FREETYPE_INCLUDE_DIRS "${freetype_root}/include/freetype2") + set(FREETYPE_INCLUDE_DIR_ft2build "${freetype_root}/include/freetype2") + set(FREETYPE_INCLUDE_DIR_freetype2 "${freetype_root}/include/freetype2") + if (CMAKE_BUILD_TYPE STREQUAL "Debug") + set(FREETYPE_LIBRARY "${freetype_root}/lib/freetyped.lib") + else () + set(FREETYPE_LIBRARY "${freetype_root}/lib/freetype.lib") + endif () + _register_git_cmake_library( + freetype + freetype + https://github.com/freetype/freetype.git + VER-2-13-3 + ) + rcl_cmake_library_set_cmake_options(freetype ${freetype_opts}) + rcl_cmake_library_set_other_use_opt(freetype + "-DFREETYPE_INCLUDE_DIRS=\"${FREETYPE_INCLUDE_DIRS}\"" + "-DFREETYPE_INCLUDE_DIR_ft2build=\"${FREETYPE_INCLUDE_DIR_ft2build}\"" + "-DFREETYPE_INCLUDE_DIR_freetype2=\"${FREETYPE_INCLUDE_DIR_freetype2}\"" + "-DFREETYPE_LIBRARY=\"${FREETYPE_LIBRARY}\"" + "-DFREETYPE_LIBRARIES=\"${FREETYPE_LIBRARY}\"" + ) + set(msdfgen_cmake_option ${base_options}) + list(APPEND msdfgen_cmake_option "-DMSDFGEN_USE_SKIA=OFF -DMSDFGEN_USE_VCPKG=OFF") + list(APPEND msdfgen_cmake_option "-DBUILD_SHARED_LIBS=ON -DMSDFGEN_DYNAMIC_RUNTIME=ON") + list(APPEND msdfgen_cmake_option "-DMSDFGEN_INSTALL=ON") + _register_git_cmake_library( + msdfgen + msdfgen + https://github.com/Chlumsky/msdfgen.git + v1.12 + ) + rcl_cmake_library_set_cmake_options(msdfgen ${msdfgen_cmake_option}) + rcl_cmake_library_set_deps(msdfgen zlib libpng freetype tinyxml2) + #https://github.com/nyyManni/msdfgl.git + set(msdfgl_cmake_option "") + set(PThreads4W_option + ${base_options} + ) + list(APPEND PThreads4W_option "-DBUILD_TESTING=OFF") + list(APPEND PThreads4W_option "-DDIST_ROOT=${EXTERNAL_INSTALL_DIR}/PThreads4W") + _register_git_cmake_library( + PThreads4W + PThreads4W + https://github.com/jwinarske/pthreads4w.git + "cmake" + ) + rcl_cmake_library_set_cmake_options(PThreads4W ${PThreads4W_option}) + # C:\VulkanSDK\1.4.350.0 + # SDK涓嬭浇 https://vulkan.lunarg.com/sdk/home + # https://docs.vulkan.org/tutorial/latest/00_Introduction.html + # https://github.com/Overv/VulkanTutorial.git + # https://github.com/KhronosGroup/Vulkan-Samples.git + # https://github.com/SaschaWillems/Vulkan.git + set(glfw3_option ${base_options}) + _register_git_cmake_library( + glfw3 + glfw3 + https://github.com/glfw/glfw.git + "3.4" + ) + rcl_cmake_library_set_cmake_options(glfw3 ${glfw3_option}) + set(glfw3_option ${base_options}) + set(msdf-atlas-gen_option ${base_options}) + list(APPEND msdf-atlas-gen_option + "-DMSDFGEN_DISABLE_SVG=OFF" + "-DMSDFGEN_USE_SKIA=OFF" + "-DMSDF_ATLAS_BUILD_STANDALONE=OFF" + "-DMSDF_ATLAS_USE_VCPKG=OFF" + "-DMSDF_ATLAS_USE_SKIA=OFF" + "-DMSDF_ATLAS_DYNAMIC_RUNTIME=ON" + "-DMSDF_ATLAS_MSDFGEN_EXTERNAL=OFF" + "-DMSDF_ATLAS_INSTALL=ON" + "-DMSDFGEN_INSTALL=ON" + "-DBUILD_SHARED_LIBS=OFF" + ) + set(msdf-atlas-gen_rely ZLIB freetype png) + _register_git_cmake_library( + msdf-atlas-gen + msdf-atlas-gen + https://github.com/Chlumsky/msdf-atlas-gen.git + v1.4 + ) + rcl_cmake_library_set_cmake_options(msdf-atlas-gen ${msdf-atlas-gen_option}) + set(cglm_option ${base_options}) + _register_git_cmake_library( + cglm + cglm + "https://github.com/recp/cglm.git" + v0.9.6 + ) + rcl_cmake_library_set_cmake_options(cglm ${cglm_option}) + set(glm_option ${base_options}) + _register_git_cmake_library( + glm + glm + "https://github.com/g-truc/glm.git" + "1.0.3" + ) + rcl_cmake_library_set_cmake_options(glm ${glm_option}) + set(tinyobjloader_option ${base_options}) + list(APPEND tinyobjloader_option "-DCMAKE_POLICY_VERSION_MINIMUM=3.20") + _register_git_cmake_library( + tinyobjloader + tinyobjloader + "https://github.com/tinyobjloader/tinyobjloader.git" + "v1.0.7" + ) + rcl_cmake_library_set_cmake_options(tinyobjloader ${tinyobjloader_option}) + set(vk-bootstrap_option ${base_options}) + _register_git_cmake_library( + vk-bootstrap + vk-bootstrap + "https://github.com/charles-lunarg/vk-bootstrap.git" + "v1.4.350" + ) + rcl_cmake_library_set_cmake_options(vk-bootstrap ${vk-bootstrap_option}) + set(Vulkan-Hpp_option ${base_options}) + _register_git_cmake_library( + Vulkan-Hpp + Vulkan-Hpp + "https://github.com/KhronosGroup/Vulkan-Hpp.git" + "v1.4.350" + ) + rcl_cmake_library_set_cmake_options(Vulkan-Hpp ${Vulkan-Hpp_option}) + set(volk_option ${base_options}) + list(APPEND volk_option "-DVOLK_INSTALL=ON") + list(APPEND volk_option "-DVOLK_PULL_IN_VULKAN=ON") + list(APPEND volk_option "-DVOLK_HEADERS_ONLY=OFF") + list(APPEND volk_option "-DVOLK_NAMESPACE=ON") + #list(APPEND volk_option "-DVOLK_STATIC_DEFINES=VK_USE_PLATFORM_WIN32_KHR") + _register_git_cmake_library( + volk + volk + "https://github.com/zeux/volk.git" + "vulkan-sdk-1.4.350.0" + ) + rcl_cmake_library_set_cmake_options(volk ${volk_option}) + # vma + set(VulkanMemoryAllocator_option ${base_options}) + _register_git_cmake_library( + VulkanMemoryAllocator + VulkanMemoryAllocator + "https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git" + "v3.3.0" + ) + rcl_cmake_library_set_cmake_options(VulkanMemoryAllocator ${VulkanMemoryAllocator_option}) + set(tinygltf_option ${base_options}) + _register_git_cmake_library( + tinygltf + tinygltf + "https://github.com/syoyo/tinygltf.git" + "v3.0.0" + ) + rcl_cmake_library_set_cmake_options(tinygltf ${tinygltf_option}) + set(fastgltf_option ${base_options}) + _register_git_cmake_library( + fastgltf + fastgltf + "https://github.com/spnda/fastgltf.git" + "v0.9.0" + ) + rcl_cmake_library_set_cmake_options(fastgltf ${fastgltf_option}) + set(VulkanSceneGraph_option ${base_options}) + _register_git_cmake_library( + VulkanSceneGraph + VulkanSceneGraph + "https://github.com/vsg-dev/VulkanSceneGraph.git" + "v1.1.15" + ) + rcl_cmake_library_set_cmake_options(VulkanSceneGraph ${VulkanSceneGraph_option}) +endblock() diff --git a/register/libarchive.cmake b/register/libarchive.cmake index cd72604..ff01f79 100644 --- a/register/libarchive.cmake +++ b/register/libarchive.cmake @@ -1,396 +1,370 @@ - - - - - -# 鍙湁master 鎵嶆湁cmake -set(bzip2_opts) -list(APPEND bzip2_opts -DENABLE_SHARED_LIB=OFF) -list(APPEND bzip2_opts -DENABLE_STATIC_LIB=ON) -list(APPEND bzip2_opts -DENABLE_APP=OFF) -_register_git_cmake_library( - bzip2 - bzip2 - "https://github.com/libarchive/bzip2" - "master" -) -rcl_cmake_library_set_cmake_options(bzip2 ${bzip2_opts}) -rcl_get_effective_install_dir(bzip2 BZIP2_ROOT) -if (MSVC) - set(BZIP2_LIBRARY "${BZIP2_ROOT}/lib/bz2_static.lib") -else () - set(BZIP2_LIBRARY "${BZIP2_ROOT}/lib/libbz2_static.a") -endif () -rcl_cmake_library_set_other_use_opt(bzip2 - "-DBZIP2_INCLUDE_DIR=\"${BZIP2_ROOT}/include\"" - "-DBZIP2_INCLUDE_DIRS=\"${BZIP2_ROOT}/include\"" - "-DBZIP2_LIBRARY=\"${BZIP2_LIBRARY}\"" - "-DBZIP2_LIBRARY_RELEASE=\"${BZIP2_LIBRARY}\"" - "-DBZIP2_LIBRARY_DEBUG=\"${BZIP2_LIBRARY}\"" - "-DBZIP2_LIBRARIES=\"${BZIP2_LIBRARY}\"" -) -rcl_cmake_library_set_init_script(bzip2 - "set(LIBARCHIVE_BZIP2_ROOT \"${BZIP2_ROOT}\")" - "set(LIBARCHIVE_BZIP2_LIBRARY \"${BZIP2_LIBRARY}\")" - "set(BZIP2_ROOT \"${BZIP2_ROOT}\")" - "set(BZIP2_INCLUDE_DIR \"${BZIP2_ROOT}/include\")" - "set(BZIP2_INCLUDE_DIRS \"${BZIP2_ROOT}/include\")" - "set(BZIP2_LIBRARY \"${BZIP2_LIBRARY}\")" - "set(BZIP2_LIBRARIES \"${BZIP2_LIBRARY}\")" -) -rcl_cmake_library_set_clear_script(bzip2 - "unset(LIBARCHIVE_BZIP2_ROOT)" - "unset(LIBARCHIVE_BZIP2_LIBRARY)" - "unset(BZIP2_ROOT)" - "unset(BZIP2_INCLUDE_DIR)" - "unset(BZIP2_INCLUDE_DIRS)" - "unset(BZIP2_LIBRARY)" - "unset(BZIP2_LIBRARIES)" -) - -# LibLZMA / XZ Utils -set(lzma_opts - -DBUILD_SHARED_LIBS=OFF - -DBUILD_TESTING=OFF - - -DXZ_DOC=OFF - -DXZ_NLS=OFF - - -DXZ_TOOL_XZ=OFF - -DXZ_TOOL_XZDEC=OFF - -DXZ_TOOL_LZMADEC=OFF - -DXZ_TOOL_LZMAINFO=OFF - - -DXZ_MICROLZMA_DECODER=OFF - -DXZ_MICROLZMA_ENCODER=OFF - -DXZ_LZIP_DECODER=OFF -) -if (UNIX AND NOT APPLE) - list(APPEND lzma_opts -DXZ_THREADS=posix) -elseif (WIN32) - list(APPEND lzma_opts -DXZ_THREADS=vista) -endif () - -_register_git_cmake_library( - lzma - liblzma - "https://github.com/tukaani-project/xz.git" - "v5.8.3" -) -rcl_cmake_library_set_cmake_options(lzma ${lzma_opts}) -rcl_get_effective_install_dir(lzma LIBLZMA_ROOT) -set(LIBLZMA_INCLUDE_DIR "${LIBLZMA_ROOT}/include") -set(LIBARCHIVE_STATIC_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") -string(STRIP "${LIBARCHIVE_STATIC_EXE_LINKER_FLAGS}" LIBARCHIVE_STATIC_EXE_LINKER_FLAGS) -if (UNIX AND NOT APPLE AND NOT LIBARCHIVE_STATIC_EXE_LINKER_FLAGS MATCHES "(^| )-pthread( |$)") - if (LIBARCHIVE_STATIC_EXE_LINKER_FLAGS) - string(APPEND LIBARCHIVE_STATIC_EXE_LINKER_FLAGS " -pthread") +block() + set(bzip2_opts) + list(APPEND bzip2_opts -DENABLE_SHARED_LIB=OFF) + list(APPEND bzip2_opts -DENABLE_STATIC_LIB=ON) + list(APPEND bzip2_opts -DENABLE_APP=OFF) + _register_git_cmake_library( + bzip2 + bzip2 + "https://github.com/libarchive/bzip2" + "master" + ) + rcl_cmake_library_set_cmake_options(bzip2 ${bzip2_opts}) + rcl_get_effective_install_dir(bzip2 BZIP2_ROOT) + if (MSVC) + set(BZIP2_LIBRARY "${BZIP2_ROOT}/lib/bz2_static.lib") else () - set(LIBARCHIVE_STATIC_EXE_LINKER_FLAGS "-pthread") + set(BZIP2_LIBRARY "${BZIP2_ROOT}/lib/libbz2_static.a") endif () -endif () -set(LIBLZMA_THREAD_LINK_LIBS) -set(LIBARCHIVE_LZMA_FORCE_MT_OPT) -if (MSVC) - set(LIBLZMA_LIBRARY "${LIBLZMA_ROOT}/lib/lzma.lib") - set(LIBARCHIVE_LZMA_FORCE_MT_OPT "-DHAVE_LZMA_STREAM_ENCODER_MT=1") -else () - set(LIBLZMA_LIBRARY "${LIBLZMA_ROOT}/lib/liblzma.a") + rcl_cmake_library_set_other_use_opt(bzip2 + "-DBZIP2_INCLUDE_DIR=\"${BZIP2_ROOT}/include\"" + "-DBZIP2_INCLUDE_DIRS=\"${BZIP2_ROOT}/include\"" + "-DBZIP2_LIBRARY=\"${BZIP2_LIBRARY}\"" + "-DBZIP2_LIBRARY_RELEASE=\"${BZIP2_LIBRARY}\"" + "-DBZIP2_LIBRARY_DEBUG=\"${BZIP2_LIBRARY}\"" + "-DBZIP2_LIBRARIES=\"${BZIP2_LIBRARY}\"" + ) + rcl_cmake_library_set_init_script(bzip2 + "set(LIBARCHIVE_BZIP2_ROOT \"${BZIP2_ROOT}\")" + "set(LIBARCHIVE_BZIP2_LIBRARY \"${BZIP2_LIBRARY}\")" + "set(BZIP2_ROOT \"${BZIP2_ROOT}\")" + "set(BZIP2_INCLUDE_DIR \"${BZIP2_ROOT}/include\")" + "set(BZIP2_INCLUDE_DIRS \"${BZIP2_ROOT}/include\")" + "set(BZIP2_LIBRARY \"${BZIP2_LIBRARY}\")" + "set(BZIP2_LIBRARIES \"${BZIP2_LIBRARY}\")" + ) + rcl_cmake_library_set_clear_script(bzip2 + "unset(LIBARCHIVE_BZIP2_ROOT)" + "unset(LIBARCHIVE_BZIP2_LIBRARY)" + "unset(BZIP2_ROOT)" + "unset(BZIP2_INCLUDE_DIR)" + "unset(BZIP2_INCLUDE_DIRS)" + "unset(BZIP2_LIBRARY)" + "unset(BZIP2_LIBRARIES)" + ) + # LibLZMA / XZ Utils + set(lzma_opts + -DBUILD_SHARED_LIBS=OFF + -DBUILD_TESTING=OFF + -DXZ_DOC=OFF + -DXZ_NLS=OFF + -DXZ_TOOL_XZ=OFF + -DXZ_TOOL_XZDEC=OFF + -DXZ_TOOL_LZMADEC=OFF + -DXZ_TOOL_LZMAINFO=OFF + -DXZ_MICROLZMA_DECODER=OFF + -DXZ_MICROLZMA_ENCODER=OFF + -DXZ_LZIP_DECODER=OFF + ) if (UNIX AND NOT APPLE) - list(APPEND LIBLZMA_THREAD_LINK_LIBS "-pthread") + list(APPEND lzma_opts -DXZ_THREADS=posix) + elseif (WIN32) + list(APPEND lzma_opts -DXZ_THREADS=vista) endif () -endif () -rcl_cmake_library_set_other_use_opt(lzma - "-DLIBLZMA_INCLUDE_DIR=\"${LIBLZMA_INCLUDE_DIR}\"" - "-DLIBLZMA_INCLUDE_DIRS=\"${LIBLZMA_INCLUDE_DIR}\"" - "-DLIBLZMA_LIBRARY=\"${LIBLZMA_LIBRARY}\"" - "-DLIBLZMA_LIBRARY_RELEASE=\"${LIBLZMA_LIBRARY}\"" - "-DLIBLZMA_LIBRARY_DEBUG=\"${LIBLZMA_LIBRARY}\"" - "-DLIBLZMA_LIBRARIES=\"${LIBLZMA_LIBRARY}\"" - "-DWITHOUT_LZMA_API_STATIC=OFF" - "-DLZMA_API_STATIC=ON" - "-DCMAKE_EXE_LINKER_FLAGS:STRING=\"${LIBARCHIVE_STATIC_EXE_LINKER_FLAGS}\"" - "-DCMAKE_REQUIRED_FLAGS:STRING=\"${LIBARCHIVE_STATIC_EXE_LINKER_FLAGS}\"" - "${LIBARCHIVE_LZMA_FORCE_MT_OPT}" -) -rcl_cmake_library_set_init_script(lzma - "set(LIBARCHIVE_LZMA_ROOT \"${LIBLZMA_ROOT}\")" - "set(LIBARCHIVE_LZMA_LIBRARY \"${LIBLZMA_LIBRARY}\" ${LIBLZMA_THREAD_LINK_LIBS})" - "set(LIBARCHIVE_LZMA_LIBRARIES \"${LIBLZMA_LIBRARY}\" ${LIBLZMA_THREAD_LINK_LIBS})" - "set(LIBLZMA_ROOT \"${LIBLZMA_ROOT}\")" - "set(LIBLZMA_INCLUDE_DIR \"${LIBLZMA_INCLUDE_DIR}\")" - "set(LIBLZMA_INCLUDE_DIRS \"${LIBLZMA_INCLUDE_DIR}\")" - "set(LIBLZMA_LIBRARY \"${LIBLZMA_LIBRARY}\")" - "set(LIBLZMA_LIBRARIES \"${LIBLZMA_LIBRARY}\" ${LIBLZMA_THREAD_LINK_LIBS})" -) -rcl_cmake_library_set_clear_script(lzma - "unset(LIBARCHIVE_LZMA_ROOT)" - "unset(LIBARCHIVE_LZMA_LIBRARY)" - "unset(LIBARCHIVE_LZMA_LIBRARIES)" - "unset(LIBLZMA_ROOT)" - "unset(LIBLZMA_INCLUDE_DIR)" - "unset(LIBLZMA_INCLUDE_DIRS)" - "unset(LIBLZMA_LIBRARY)" - "unset(LIBLZMA_LIBRARIES)" -) - - -set(lz4_opts) -list(APPEND lz4_opts "-DBUILD_SHARED_LIBS=OFF") -list(APPEND lz4_opts "-DLZ4_BUILD_CLI=OFF") -# LZ4 -_register_git_cmake_library( - lz4 - lz4 - "https://github.com/lz4/lz4.git" - "v1.10.0" -) -rcl_cmake_library_set_cmake_options(lz4 ${lz4_opts}) -rcl_cmake_library_set_cmake_source_relative_dir(lz4 "build/cmake") - -rcl_get_effective_install_dir(lz4 LZ4_ROOT) -if (MSVC) - set(LZ4_LIBRARY "${LZ4_ROOT}/lib/lz4.lib") -else () - set(LZ4_LIBRARY "${LZ4_ROOT}/lib/liblz4.a") -endif () -rcl_cmake_library_set_other_use_opt(lz4 - "-DLZ4_ROOT=\"${LZ4_ROOT}\"" - "-DLZ4_INCLUDE_DIR=\"${LZ4_ROOT}/include\"" - "-DLZ4_INCLUDE_DIRS=\"${LZ4_ROOT}/include\"" - "-DLZ4_LIBRARY=\"${LZ4_LIBRARY}\"" - "-DLZ4_LIBRARY_RELEASE=\"${LZ4_LIBRARY}\"" - "-DLZ4_LIBRARY_DEBUG=\"${LZ4_LIBRARY}\"" - "-DLZ4_LIBRARIES=\"${LZ4_LIBRARY}\"" -) -rcl_cmake_library_set_init_script(lz4 - "set(LIBARCHIVE_LZ4_ROOT \"${LZ4_ROOT}\")" - "set(LIBARCHIVE_LZ4_LIBRARY \"${LZ4_LIBRARY}\")" - "set(LZ4_ROOT \"${LZ4_ROOT}\")" - "set(LZ4_INCLUDE_DIR \"${LZ4_ROOT}/include\")" - "set(LZ4_INCLUDE_DIRS \"${LZ4_ROOT}/include\")" - "set(LZ4_LIBRARY \"${LZ4_LIBRARY}\")" - "set(LZ4_LIBRARIES \"${LZ4_LIBRARY}\")" -) -rcl_cmake_library_set_clear_script(lz4 - "unset(LIBARCHIVE_LZ4_ROOT)" - "unset(LIBARCHIVE_LZ4_LIBRARY)" - "unset(LZ4_ROOT)" - "unset(LZ4_INCLUDE_DIR)" - "unset(LZ4_INCLUDE_DIRS)" - "unset(LZ4_LIBRARY)" - "unset(LZ4_LIBRARIES)" -) - -set(zstd_opts - -DZSTD_BUILD_PROGRAMS=OFF - -DZSTD_BUILD_DICTBUILDER=OFF - -DZSTD_BUILD_DEPRECATED=ON - -DZSTD_LZ4_SUPPORT=OFF - -DZSTD_LZMA_SUPPORT=OFF - -DZSTD_ZLIB_SUPPORT=OFF - -DCMAKE_POSITION_INDEPENDENT_CODE=ON -) -_register_git_cmake_library( - zstd - zstd - "https://github.com/facebook/zstd.git" - "v1.5.7" -) -rcl_cmake_library_set_cmake_options(zstd ${zstd_opts}) -rcl_cmake_library_set_cmake_source_relative_dir(zstd "build/cmake") -rcl_get_effective_install_dir(zstd ZSTD_ROOT) -set(ZSTD_INCLUDE_DIR "${ZSTD_ROOT}/include") -set(ZSTD_CMAKE_DIR "${ZSTD_ROOT}/lib/cmake/zstd") -set(ZSTD_THREAD_LINK_LIBS) -if (MSVC) - set(ZSTD_LIBRARY "${ZSTD_ROOT}/lib/zstd_static.lib") -else () - set(ZSTD_LIBRARY "${ZSTD_ROOT}/lib/libzstd.a") - list(APPEND ZSTD_THREAD_LINK_LIBS "-pthread") -endif () -rcl_cmake_library_set_other_use_opt(zstd - "-DZSTD_ROOT=\"${ZSTD_ROOT}\"" - "-Dzstd_ROOT=\"${ZSTD_ROOT}\"" - "-Dzstd_DIR=\"${ZSTD_CMAKE_DIR}\"" - "-DZSTD_INCLUDE_DIR=\"${ZSTD_INCLUDE_DIR}\"" - "-DZSTD_INCLUDE_DIRS=\"${ZSTD_INCLUDE_DIR}\"" - "-DZSTD_LIBRARY=\"${ZSTD_LIBRARY}\"" - "-DZSTD_LIBRARY_RELEASE=\"${ZSTD_LIBRARY}\"" - "-DZSTD_LIBRARY_DEBUG=\"${ZSTD_LIBRARY}\"" - "-DZSTD_LIBRARIES=\"${ZSTD_LIBRARY}\"" - "-DCMAKE_EXE_LINKER_FLAGS:STRING=\"${LIBARCHIVE_STATIC_EXE_LINKER_FLAGS}\"" -) -rcl_cmake_library_set_init_script(zstd - "set(LIBARCHIVE_ZSTD_ROOT \"${ZSTD_ROOT}\")" - "set(LIBARCHIVE_ZSTD_LIBRARY \"${ZSTD_LIBRARY}\" ${ZSTD_THREAD_LINK_LIBS})" - "set(LIBARCHIVE_ZSTD_LIBRARIES \"${ZSTD_LIBRARY}\" ${ZSTD_THREAD_LINK_LIBS})" - "set(ZSTD_ROOT \"${ZSTD_ROOT}\")" - "set(zstd_ROOT \"${ZSTD_ROOT}\")" - "set(zstd_DIR \"${ZSTD_CMAKE_DIR}\")" - "set(ZSTD_INCLUDE_DIR \"${ZSTD_INCLUDE_DIR}\")" - "set(ZSTD_INCLUDE_DIRS \"${ZSTD_INCLUDE_DIR}\")" - "set(ZSTD_LIBRARY \"${ZSTD_LIBRARY}\")" - "set(ZSTD_LIBRARIES \"${ZSTD_LIBRARY}\" ${ZSTD_THREAD_LINK_LIBS})" -) -rcl_cmake_library_set_clear_script(zstd - "unset(LIBARCHIVE_ZSTD_ROOT)" - "unset(LIBARCHIVE_ZSTD_LIBRARY)" - "unset(LIBARCHIVE_ZSTD_LIBRARIES)" - "unset(ZSTD_ROOT)" - "unset(zstd_ROOT)" - "unset(zstd_DIR)" - "unset(ZSTD_INCLUDE_DIR)" - "unset(ZSTD_INCLUDE_DIRS)" - "unset(ZSTD_LIBRARY)" - "unset(ZSTD_LIBRARIES)" -) - - -set(expat_opts ${base_options}) -list(APPEND expat_opts - -DEXPAT_BUILD_TOOLS=OFF - -DEXPAT_BUILD_EXAMPLES=OFF - -DEXPAT_BUILD_TESTS=OFF - -DEXPAT_BUILD_DOCS=OFF - -DEXPAT_BUILD_FUZZERS=OFF - -DEXPAT_BUILD_PKGCONFIG=OFF - -DEXPAT_SHARED_LIBS=OFF - -DBUILD_TESTING=OFF - -DBUILD_SHARED_LIBS=OFF - -DEXPAT_ENABLE_INSTALL=ON -) -_register_git_cmake_library( - expat - expat - "https://github.com/libexpat/libexpat.git" - "R_2_8_1" -) -rcl_cmake_library_set_cmake_options(expat ${expat_opts}) -rcl_cmake_library_set_cmake_source_relative_dir(expat "expat") -rcl_get_effective_install_dir(expat EXPAT_ROOT) -if (MSVC) - set(EXPAT_STATIC_C_FLAG "/DXML_STATIC") -else () - set(EXPAT_STATIC_C_FLAG "-DXML_STATIC") -endif () -if (MSVC) - if (CMAKE_BUILD_TYPE STREQUAL "Debug") - set(EXPAT_LIBRARY "${EXPAT_ROOT}/lib/libexpatdMD.lib") + _register_git_cmake_library( + lzma + liblzma + "https://github.com/tukaani-project/xz.git" + "v5.8.3" + ) + rcl_cmake_library_set_cmake_options(lzma ${lzma_opts}) + rcl_get_effective_install_dir(lzma LIBLZMA_ROOT) + set(LIBLZMA_INCLUDE_DIR "${LIBLZMA_ROOT}/include") + set(LIBARCHIVE_STATIC_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}") + string(STRIP "${LIBARCHIVE_STATIC_EXE_LINKER_FLAGS}" LIBARCHIVE_STATIC_EXE_LINKER_FLAGS) + if (UNIX AND NOT APPLE AND NOT LIBARCHIVE_STATIC_EXE_LINKER_FLAGS MATCHES "(^| )-pthread( |$)") + if (LIBARCHIVE_STATIC_EXE_LINKER_FLAGS) + string(APPEND LIBARCHIVE_STATIC_EXE_LINKER_FLAGS " -pthread") + else () + set(LIBARCHIVE_STATIC_EXE_LINKER_FLAGS "-pthread") + endif () + endif () + set(LIBLZMA_THREAD_LINK_LIBS) + set(LIBARCHIVE_LZMA_FORCE_MT_OPT) + if (MSVC) + set(LIBLZMA_LIBRARY "${LIBLZMA_ROOT}/lib/lzma.lib") + set(LIBARCHIVE_LZMA_FORCE_MT_OPT "-DHAVE_LZMA_STREAM_ENCODER_MT=1") else () - set(EXPAT_LIBRARY "${EXPAT_ROOT}/lib/libexpat.lib") + set(LIBLZMA_LIBRARY "${LIBLZMA_ROOT}/lib/liblzma.a") + if (UNIX AND NOT APPLE) + list(APPEND LIBLZMA_THREAD_LINK_LIBS "-pthread") + endif () endif () -else () - set(EXPAT_LIBRARY "${EXPAT_ROOT}/lib/libexpat.a") -endif () -rcl_cmake_library_set_other_use_opt(expat - "-DEXPAT_USE_STATIC_LIBS=ON" - "-DEXPAT_INCLUDE_DIR=\"${EXPAT_ROOT}/include\"" - "-DEXPAT_INCLUDE_DIRS=\"${EXPAT_ROOT}/include\"" - "-DEXPAT_LIBRARY=\"${EXPAT_LIBRARY}\"" - "-DEXPAT_LIBRARY_RELEASE=\"${EXPAT_LIBRARY}\"" - "-DEXPAT_LIBRARY_DEBUG=\"${EXPAT_LIBRARY}\"" - "-DEXPAT_LIBRARIES=\"${EXPAT_LIBRARY}\"" - "-DHAVE_EXPAT_H=ON" - "-DXML_STATIC=ON" - "-DCMAKE_C_FLAGS:STRING=\"${CMAKE_C_FLAGS} ${EXPAT_STATIC_C_FLAG}\"" - "-DCMAKE_CXX_FLAGS:STRING=\"${CMAKE_CXX_FLAGS} ${EXPAT_STATIC_C_FLAG}\"" -) -rcl_cmake_library_set_init_script(expat - "set(LIBARCHIVE_EXPAT_ROOT \"${EXPAT_ROOT}\")" - "set(LIBARCHIVE_EXPAT_LIBRARY \"${EXPAT_LIBRARY}\")" - "set(EXPAT_ROOT \"${EXPAT_ROOT}\")" - "set(EXPAT_INCLUDE_DIR \"${EXPAT_ROOT}/include\")" - "set(EXPAT_INCLUDE_DIRS \"${EXPAT_ROOT}/include\")" - "set(EXPAT_LIBRARY \"${EXPAT_LIBRARY}\")" - "set(EXPAT_LIBRARIES \"${EXPAT_LIBRARY}\")" - "set(EXPAT_USE_STATIC_LIBS ON)" -) -rcl_cmake_library_set_clear_script(expat - "unset(LIBARCHIVE_EXPAT_ROOT)" - "unset(LIBARCHIVE_EXPAT_LIBRARY)" - "unset(EXPAT_ROOT)" - "unset(EXPAT_INCLUDE_DIR)" - "unset(EXPAT_INCLUDE_DIRS)" - "unset(EXPAT_LIBRARY)" - "unset(EXPAT_LIBRARIES)" - "unset(EXPAT_USE_STATIC_LIBS)" -) -set(libarchive_opts ${base_option_list}) -list(APPEND libarchive_opts ${zlib_opts}) -list(APPEND libarchive_opts - -DENABLE_ZLIB=ON - -DENABLE_BZip2=ON - -DENABLE_LZMA=ON - -DENABLE_LZ4=ON - -DENABLE_ZSTD=ON - -DENABLE_LIBB2=ON - - -DENABLE_OPENSSL=ON - -DENABLE_MBEDTLS=OFF - -DENABLE_NETTLE=OFF - -DENABLE_CNG=ON - - -DENABLE_LIBXML2=OFF - -DENABLE_EXPAT=ON - -DENABLE_WIN32_XMLLITE=ON - - -DENABLE_PCREPOSIX=OFF - -DENABLE_PCRE2POSIX=OFF - -DPOSIX_REGEX_LIB=LIBC - - -DENABLE_XATTR=OFF - -DENABLE_ACL=OFF - -DENABLE_ICONV=ON - - -DENABLE_TAR=OFF - -DENABLE_CPIO=OFF - -DENABLE_CAT=OFF - -DENABLE_UNZIP=OFF - - -DENABLE_TEST=OFF - -DENABLE_COVERAGE=OFF - -DENABLE_INSTALL=ON - - -DBUILD_SHARED_LIBS=OFF -) -_register_git_cmake_library( - libarchive - libarchive - "https://github.com/libarchive/libarchive.git" - "v3.8.7" -) -rcl_cmake_library_set_cmake_options(libarchive ${libarchive_opts}) - -rcl_cmake_library_set_deps(libarchive zlib zstd lzma bzip2 lz4 expat) -rcl_get_effective_install_dir(libarchive LibArchive_Root) -set(LibArchive_INCLUDE_DIR "${LibArchive_Root}/include") -if (MSVC) - set(LibArchive_LIBRARY "${LibArchive_Root}/lib/archive.lib") -else () - set(LibArchive_LIBRARY "${LibArchive_Root}/lib/libarchive.a") -endif () - -set(LibArchive_SUB_LIBRARIES) -set(LibArchive_SUB_LIBRARIES - - ${ZLIB_LIBRARY} - ${BZIP2_LIBRARY} - ${LIBLZMA_LIBRARY} - ${LZ4_LIBRARY} - ${ZSTD_LIBRARY} - ${EXPAT_LIBRARY} -) - -rcl_cmake_library_set_init_script(libarchive - "set(LibArchive_Root \"${LibArchive_Root}\")" - "set(LibArchive_INCLUDE_DIR \"${LibArchive_INCLUDE_DIR}\")" - "set(LibArchive_LIBRARY \"${LibArchive_LIBRARY}\")" - "find_package(LibArchive REQUIRED)" -) -rcl_cmake_library_set_clear_script(libarchive - "unset(LibArchive_Root)" - "unset(LibArchive_INCLUDE_DIR)" - "unset(LibArchive_LIBRARY)" -) -message("LibArchive_SUB_LIBRARIES ============ [${LibArchive_SUB_LIBRARIES}]") + rcl_cmake_library_set_other_use_opt(lzma + "-DLIBLZMA_INCLUDE_DIR=\"${LIBLZMA_INCLUDE_DIR}\"" + "-DLIBLZMA_INCLUDE_DIRS=\"${LIBLZMA_INCLUDE_DIR}\"" + "-DLIBLZMA_LIBRARY=\"${LIBLZMA_LIBRARY}\"" + "-DLIBLZMA_LIBRARY_RELEASE=\"${LIBLZMA_LIBRARY}\"" + "-DLIBLZMA_LIBRARY_DEBUG=\"${LIBLZMA_LIBRARY}\"" + "-DLIBLZMA_LIBRARIES=\"${LIBLZMA_LIBRARY}\"" + "-DWITHOUT_LZMA_API_STATIC=OFF" + "-DLZMA_API_STATIC=ON" + "-DCMAKE_EXE_LINKER_FLAGS:STRING=\"${LIBARCHIVE_STATIC_EXE_LINKER_FLAGS}\"" + "-DCMAKE_REQUIRED_FLAGS:STRING=\"${LIBARCHIVE_STATIC_EXE_LINKER_FLAGS}\"" + "${LIBARCHIVE_LZMA_FORCE_MT_OPT}" + ) + rcl_cmake_library_set_init_script(lzma + "set(LIBARCHIVE_LZMA_ROOT \"${LIBLZMA_ROOT}\")" + "set(LIBARCHIVE_LZMA_LIBRARY \"${LIBLZMA_LIBRARY}\" ${LIBLZMA_THREAD_LINK_LIBS})" + "set(LIBARCHIVE_LZMA_LIBRARIES \"${LIBLZMA_LIBRARY}\" ${LIBLZMA_THREAD_LINK_LIBS})" + "set(LIBLZMA_ROOT \"${LIBLZMA_ROOT}\")" + "set(LIBLZMA_INCLUDE_DIR \"${LIBLZMA_INCLUDE_DIR}\")" + "set(LIBLZMA_INCLUDE_DIRS \"${LIBLZMA_INCLUDE_DIR}\")" + "set(LIBLZMA_LIBRARY \"${LIBLZMA_LIBRARY}\")" + "set(LIBLZMA_LIBRARIES \"${LIBLZMA_LIBRARY}\" ${LIBLZMA_THREAD_LINK_LIBS})" + ) + rcl_cmake_library_set_clear_script(lzma + "unset(LIBARCHIVE_LZMA_ROOT)" + "unset(LIBARCHIVE_LZMA_LIBRARY)" + "unset(LIBARCHIVE_LZMA_LIBRARIES)" + "unset(LIBLZMA_ROOT)" + "unset(LIBLZMA_INCLUDE_DIR)" + "unset(LIBLZMA_INCLUDE_DIRS)" + "unset(LIBLZMA_LIBRARY)" + "unset(LIBLZMA_LIBRARIES)" + ) + set(lz4_opts) + list(APPEND lz4_opts "-DBUILD_SHARED_LIBS=OFF") + list(APPEND lz4_opts "-DLZ4_BUILD_CLI=OFF") + # LZ4 + _register_git_cmake_library( + lz4 + lz4 + "https://github.com/lz4/lz4.git" + "v1.10.0" + ) + rcl_cmake_library_set_cmake_options(lz4 ${lz4_opts}) + rcl_cmake_library_set_cmake_source_relative_dir(lz4 "build/cmake") + rcl_get_effective_install_dir(lz4 LZ4_ROOT) + if (MSVC) + set(LZ4_LIBRARY "${LZ4_ROOT}/lib/lz4.lib") + else () + set(LZ4_LIBRARY "${LZ4_ROOT}/lib/liblz4.a") + endif () + rcl_cmake_library_set_other_use_opt(lz4 + "-DLZ4_ROOT=\"${LZ4_ROOT}\"" + "-DLZ4_INCLUDE_DIR=\"${LZ4_ROOT}/include\"" + "-DLZ4_INCLUDE_DIRS=\"${LZ4_ROOT}/include\"" + "-DLZ4_LIBRARY=\"${LZ4_LIBRARY}\"" + "-DLZ4_LIBRARY_RELEASE=\"${LZ4_LIBRARY}\"" + "-DLZ4_LIBRARY_DEBUG=\"${LZ4_LIBRARY}\"" + "-DLZ4_LIBRARIES=\"${LZ4_LIBRARY}\"" + ) + rcl_cmake_library_set_init_script(lz4 + "set(LIBARCHIVE_LZ4_ROOT \"${LZ4_ROOT}\")" + "set(LIBARCHIVE_LZ4_LIBRARY \"${LZ4_LIBRARY}\")" + "set(LZ4_ROOT \"${LZ4_ROOT}\")" + "set(LZ4_INCLUDE_DIR \"${LZ4_ROOT}/include\")" + "set(LZ4_INCLUDE_DIRS \"${LZ4_ROOT}/include\")" + "set(LZ4_LIBRARY \"${LZ4_LIBRARY}\")" + "set(LZ4_LIBRARIES \"${LZ4_LIBRARY}\")" + ) + rcl_cmake_library_set_clear_script(lz4 + "unset(LIBARCHIVE_LZ4_ROOT)" + "unset(LIBARCHIVE_LZ4_LIBRARY)" + "unset(LZ4_ROOT)" + "unset(LZ4_INCLUDE_DIR)" + "unset(LZ4_INCLUDE_DIRS)" + "unset(LZ4_LIBRARY)" + "unset(LZ4_LIBRARIES)" + ) + set(zstd_opts + -DZSTD_BUILD_PROGRAMS=OFF + -DZSTD_BUILD_DICTBUILDER=OFF + -DZSTD_BUILD_DEPRECATED=ON + -DZSTD_LZ4_SUPPORT=OFF + -DZSTD_LZMA_SUPPORT=OFF + -DZSTD_ZLIB_SUPPORT=OFF + -DCMAKE_POSITION_INDEPENDENT_CODE=ON + ) + _register_git_cmake_library( + zstd + zstd + "https://github.com/facebook/zstd.git" + "v1.5.7" + ) + rcl_cmake_library_set_cmake_options(zstd ${zstd_opts}) + rcl_cmake_library_set_cmake_source_relative_dir(zstd "build/cmake") + rcl_get_effective_install_dir(zstd ZSTD_ROOT) + set(ZSTD_INCLUDE_DIR "${ZSTD_ROOT}/include") + set(ZSTD_CMAKE_DIR "${ZSTD_ROOT}/lib/cmake/zstd") + set(ZSTD_THREAD_LINK_LIBS) + if (MSVC) + set(ZSTD_LIBRARY "${ZSTD_ROOT}/lib/zstd_static.lib") + else () + set(ZSTD_LIBRARY "${ZSTD_ROOT}/lib/libzstd.a") + list(APPEND ZSTD_THREAD_LINK_LIBS "-pthread") + endif () + rcl_cmake_library_set_other_use_opt(zstd + "-DZSTD_ROOT=\"${ZSTD_ROOT}\"" + "-Dzstd_ROOT=\"${ZSTD_ROOT}\"" + "-Dzstd_DIR=\"${ZSTD_CMAKE_DIR}\"" + "-DZSTD_INCLUDE_DIR=\"${ZSTD_INCLUDE_DIR}\"" + "-DZSTD_INCLUDE_DIRS=\"${ZSTD_INCLUDE_DIR}\"" + "-DZSTD_LIBRARY=\"${ZSTD_LIBRARY}\"" + "-DZSTD_LIBRARY_RELEASE=\"${ZSTD_LIBRARY}\"" + "-DZSTD_LIBRARY_DEBUG=\"${ZSTD_LIBRARY}\"" + "-DZSTD_LIBRARIES=\"${ZSTD_LIBRARY}\"" + "-DCMAKE_EXE_LINKER_FLAGS:STRING=\"${LIBARCHIVE_STATIC_EXE_LINKER_FLAGS}\"" + ) + rcl_cmake_library_set_init_script(zstd + "set(LIBARCHIVE_ZSTD_ROOT \"${ZSTD_ROOT}\")" + "set(LIBARCHIVE_ZSTD_LIBRARY \"${ZSTD_LIBRARY}\" ${ZSTD_THREAD_LINK_LIBS})" + "set(LIBARCHIVE_ZSTD_LIBRARIES \"${ZSTD_LIBRARY}\" ${ZSTD_THREAD_LINK_LIBS})" + "set(ZSTD_ROOT \"${ZSTD_ROOT}\")" + "set(zstd_ROOT \"${ZSTD_ROOT}\")" + "set(zstd_DIR \"${ZSTD_CMAKE_DIR}\")" + "set(ZSTD_INCLUDE_DIR \"${ZSTD_INCLUDE_DIR}\")" + "set(ZSTD_INCLUDE_DIRS \"${ZSTD_INCLUDE_DIR}\")" + "set(ZSTD_LIBRARY \"${ZSTD_LIBRARY}\")" + "set(ZSTD_LIBRARIES \"${ZSTD_LIBRARY}\" ${ZSTD_THREAD_LINK_LIBS})" + ) + rcl_cmake_library_set_clear_script(zstd + "unset(LIBARCHIVE_ZSTD_ROOT)" + "unset(LIBARCHIVE_ZSTD_LIBRARY)" + "unset(LIBARCHIVE_ZSTD_LIBRARIES)" + "unset(ZSTD_ROOT)" + "unset(zstd_ROOT)" + "unset(zstd_DIR)" + "unset(ZSTD_INCLUDE_DIR)" + "unset(ZSTD_INCLUDE_DIRS)" + "unset(ZSTD_LIBRARY)" + "unset(ZSTD_LIBRARIES)" + ) + set(expat_opts ${base_options}) + list(APPEND expat_opts + -DEXPAT_BUILD_TOOLS=OFF + -DEXPAT_BUILD_EXAMPLES=OFF + -DEXPAT_BUILD_TESTS=OFF + -DEXPAT_BUILD_DOCS=OFF + -DEXPAT_BUILD_FUZZERS=OFF + -DEXPAT_BUILD_PKGCONFIG=OFF + -DEXPAT_SHARED_LIBS=OFF + -DBUILD_TESTING=OFF + -DBUILD_SHARED_LIBS=OFF + -DEXPAT_ENABLE_INSTALL=ON + ) + _register_git_cmake_library( + expat + expat + "https://github.com/libexpat/libexpat.git" + "R_2_8_1" + ) + rcl_cmake_library_set_cmake_options(expat ${expat_opts}) + rcl_cmake_library_set_cmake_source_relative_dir(expat "expat") + rcl_get_effective_install_dir(expat EXPAT_ROOT) + if (MSVC) + set(EXPAT_STATIC_C_FLAG "/DXML_STATIC") + else () + set(EXPAT_STATIC_C_FLAG "-DXML_STATIC") + endif () + if (MSVC) + if (CMAKE_BUILD_TYPE STREQUAL "Debug") + set(EXPAT_LIBRARY "${EXPAT_ROOT}/lib/libexpatdMD.lib") + else () + set(EXPAT_LIBRARY "${EXPAT_ROOT}/lib/libexpat.lib") + endif () + else () + set(EXPAT_LIBRARY "${EXPAT_ROOT}/lib/libexpat.a") + endif () + rcl_cmake_library_set_other_use_opt(expat + "-DEXPAT_USE_STATIC_LIBS=ON" + "-DEXPAT_INCLUDE_DIR=\"${EXPAT_ROOT}/include\"" + "-DEXPAT_INCLUDE_DIRS=\"${EXPAT_ROOT}/include\"" + "-DEXPAT_LIBRARY=\"${EXPAT_LIBRARY}\"" + "-DEXPAT_LIBRARY_RELEASE=\"${EXPAT_LIBRARY}\"" + "-DEXPAT_LIBRARY_DEBUG=\"${EXPAT_LIBRARY}\"" + "-DEXPAT_LIBRARIES=\"${EXPAT_LIBRARY}\"" + "-DHAVE_EXPAT_H=ON" + "-DXML_STATIC=ON" + "-DCMAKE_C_FLAGS:STRING=\"${CMAKE_C_FLAGS} ${EXPAT_STATIC_C_FLAG}\"" + "-DCMAKE_CXX_FLAGS:STRING=\"${CMAKE_CXX_FLAGS} ${EXPAT_STATIC_C_FLAG}\"" + ) + rcl_cmake_library_set_init_script(expat + "set(LIBARCHIVE_EXPAT_ROOT \"${EXPAT_ROOT}\")" + "set(LIBARCHIVE_EXPAT_LIBRARY \"${EXPAT_LIBRARY}\")" + "set(EXPAT_ROOT \"${EXPAT_ROOT}\")" + "set(EXPAT_INCLUDE_DIR \"${EXPAT_ROOT}/include\")" + "set(EXPAT_INCLUDE_DIRS \"${EXPAT_ROOT}/include\")" + "set(EXPAT_LIBRARY \"${EXPAT_LIBRARY}\")" + "set(EXPAT_LIBRARIES \"${EXPAT_LIBRARY}\")" + "set(EXPAT_USE_STATIC_LIBS ON)" + ) + rcl_cmake_library_set_clear_script(expat + "unset(LIBARCHIVE_EXPAT_ROOT)" + "unset(LIBARCHIVE_EXPAT_LIBRARY)" + "unset(EXPAT_ROOT)" + "unset(EXPAT_INCLUDE_DIR)" + "unset(EXPAT_INCLUDE_DIRS)" + "unset(EXPAT_LIBRARY)" + "unset(EXPAT_LIBRARIES)" + "unset(EXPAT_USE_STATIC_LIBS)" + ) + set(libarchive_opts ${base_option_list}) + list(APPEND libarchive_opts ${zlib_opts}) + list(APPEND libarchive_opts + -DENABLE_ZLIB=ON + -DENABLE_BZip2=ON + -DENABLE_LZMA=ON + -DENABLE_LZ4=ON + -DENABLE_ZSTD=ON + -DENABLE_LIBB2=ON + -DENABLE_OPENSSL=ON + -DENABLE_MBEDTLS=OFF + -DENABLE_NETTLE=OFF + -DENABLE_CNG=ON + -DENABLE_LIBXML2=OFF + -DENABLE_EXPAT=ON + -DENABLE_WIN32_XMLLITE=ON + -DENABLE_PCREPOSIX=OFF + -DENABLE_PCRE2POSIX=OFF + -DPOSIX_REGEX_LIB=LIBC + -DENABLE_XATTR=OFF + -DENABLE_ACL=OFF + -DENABLE_ICONV=ON + -DENABLE_TAR=OFF + -DENABLE_CPIO=OFF + -DENABLE_CAT=OFF + -DENABLE_UNZIP=OFF + -DENABLE_TEST=OFF + -DENABLE_COVERAGE=OFF + -DENABLE_INSTALL=ON + -DBUILD_SHARED_LIBS=OFF + ) + _register_git_cmake_library( + libarchive + libarchive + "https://github.com/libarchive/libarchive.git" + "v3.8.7" + ) + rcl_cmake_library_set_cmake_options(libarchive ${libarchive_opts}) + rcl_cmake_library_set_deps(libarchive zlib zstd lzma bzip2 lz4 expat) + rcl_get_effective_install_dir(libarchive LibArchive_Root) + set(LibArchive_INCLUDE_DIR "${LibArchive_Root}/include") + if (MSVC) + set(LibArchive_LIBRARY "${LibArchive_Root}/lib/archive.lib") + else () + set(LibArchive_LIBRARY "${LibArchive_Root}/lib/libarchive.a") + endif () + set(LibArchive_SUB_LIBRARIES) + set(LibArchive_SUB_LIBRARIES + ${ZLIB_LIBRARY} + ${BZIP2_LIBRARY} + ${LIBLZMA_LIBRARY} + ${LZ4_LIBRARY} + ${ZSTD_LIBRARY} + ${EXPAT_LIBRARY} + ) + rcl_cmake_library_set_init_script(libarchive + "set(LibArchive_Root \"${LibArchive_Root}\")" + "set(LibArchive_INCLUDE_DIR \"${LibArchive_INCLUDE_DIR}\")" + "set(LibArchive_LIBRARY \"${LibArchive_LIBRARY}\")" + "find_package(LibArchive REQUIRED)" + ) + rcl_cmake_library_set_clear_script(libarchive + "unset(LibArchive_Root)" + "unset(LibArchive_INCLUDE_DIR)" + "unset(LibArchive_LIBRARY)" + ) + message("LibArchive_SUB_LIBRARIES ============ [${LibArchive_SUB_LIBRARIES}]") +endblock() diff --git a/register/register_library.cmake b/register/register_library.cmake index 67ec194..0006f66 100644 --- a/register/register_library.cmake +++ b/register/register_library.cmake @@ -1,312 +1,264 @@ include_guard(GLOBAL) - - include(${CMAKE_CURRENT_LIST_DIR}/base.cmake) - - -set(tinyxml2_opts) -_register_git_cmake_library( - tinyxml2 - tinyxml2 - https://github.com/leethomason/tinyxml2.git - 11.0.0 -) -rcl_cmake_library_set_cmake_options(tinyxml2 ${tinyxml2_opts}) - - -set(jsoncpp_opts ${base_options}) - -list(APPEND jsoncpp_opts - "-DJSONCPP_WITH_TESTS=OFF" - "-DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF" - "-DJSONCPP_WITH_EXAMPLE=OFF" - "-DJSONCPP_WITH_DOC=OFF" -) - -rcl_get_effective_install_dir(jsoncpp _jsoncpp_install_dir) -set(JSONCPP_ROOT ${_jsoncpp_install_dir}) -set(JSONCPP_INCLUDE_DIRS ${JSONCPP_ROOT}/include) -if (MSVC) - set(JSONCPP_LIBRARIES ${JSONCPP_ROOT}/lib/jsoncpp_static.lib) -else () - set(JSONCPP_LIBRARIES ${JSONCPP_ROOT}/lib/libjsoncpp.a) -endif () -_register_git_cmake_library( - jsoncpp - jsoncpp - https://github.com/open-source-parsers/jsoncpp.git - "1.9.6" -) -rcl_cmake_library_set_cmake_options(jsoncpp ${jsoncpp_opts}) -rcl_cmake_library_set_other_use_opt(jsoncpp - "-DJSONCPP_INCLUDE_DIRS=\"${JSONCPP_INCLUDE_DIRS}\"" - "-DJSONCPP_LIBRARIES=\"${JSONCPP_LIBRARIES}\"" -) - -rcl_cmake_library_set_init_script(jsoncpp - "set(JSONCPP_ROOT \"${JSONCPP_ROOT}\")" - "set(JSONCPP_INCLUDE_DIRS \"${JSONCPP_INCLUDE_DIRS}\")" - "set(JSONCPP_LIBRARIES \"${JSONCPP_LIBRARIES}\")" -) -rcl_cmake_library_set_clear_script(jsoncpp - "unset(JSONCPP_ROOT)" - "unset(JSONCPP_INCLUDE_DIRS)" - "unset(JSONCPP_LIBRARIES)" -) - - -# 闈瀋make浠撳簱 -#set(asio_opts ${base_options}) -#_register_git_cmake_library_opt( -# asio -# https://github.com/chriskohlhoff/asio.git -# "asio-1-38-0" -# asio_opts -#) - - -set(fmt_option ${base_options}) -_register_git_cmake_library( - fmt - fmt - "https://github.com/fmtlib/fmt.git" - "12.1.0" -) -rcl_cmake_library_set_cmake_options(fmt ${fmt_option}) - -#set(imgui_option ${base_options}) -#_register_git_cmake_library_opt( -# imgui -# "https://github.com/ocornut/imgui.git" -# "v1.92.8" -# imgui_option -#) - - -# https://github.com/google/benchmark -#BENCHMARK_USE_BUNDLED_GTEST -set(benchmark_opt ${base_options}) -list(APPEND benchmark_opt "-DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON") -_register_git_cmake_library( - benchmark - benchmark - "https://github.com/google/benchmark.git" - "v1.9.5" -) -rcl_cmake_library_set_cmake_options(benchmark ${benchmark_opt}) - -set(mbedtls_opts ${base_options}) -_register_git_cmake_library( - mbedtls - mbedtls - "https://github.com/Mbed-TLS/mbedtls.git" - "v3.6.4" -) -rcl_cmake_library_set_cmake_options(mbedtls ${mbedtls_opts}) - -set(libxml2_opts ${base_options}) -_register_git_cmake_library( - libxml2 - libxml2 - "https://github.com/GNOME/libxml2.git" - "v2.15.1" -) -rcl_cmake_library_set_cmake_options(libxml2 ${libxml2_opts}) - - -set(websocketpp_opts ${base_options}) -_register_git_cmake_library( - websocketpp - websocketpp - "https://github.com/zaphoyd/websocketpp.git" - "0.8.2" -) -rcl_cmake_library_set_cmake_options(websocketpp ${websocketpp_opts}) - -set(trantor_opts ${base_options}) -_register_git_cmake_library( - trantor - Trantor - "https://github.com/an-tao/trantor.git" - "v1.5.28" -) -rcl_cmake_library_set_cmake_options(trantor ${trantor_opts}) -rcl_get_effective_install_dir(trantor _trantor_install_dir) -rcl_cmake_library_set_other_use_opt(trantor - "-DTrantor_DIR=${_trantor_install_dir}/lib/cmake/Trantor" -) - - -#find_path() -set(drogon_opts ${base_options}) -list(APPEND drogon_opts "-DBUILD_CTL=OFF") -list(APPEND drogon_opts "-DBUILD_EXAMPLES=OFF") -list(APPEND drogon_opts "-DBUILD_ORM=OFF") -list(APPEND drogon_opts "-DCOZ_PROFILING=OFF") -list(APPEND drogon_opts "-DBUILD_SHARED_LIBS=OFF") -list(APPEND drogon_opts "-DBUILD_DOC=OFF") -list(APPEND drogon_opts "-DBUILD_BROTLI=OFF") -list(APPEND drogon_opts "-DBUILD_YAML_CONFIG=ON") -list(APPEND drogon_opts "-DUSE_SUBMODULE=OFF") -list(APPEND drogon_opts "-DUSE_STATIC_LIBS_ONLY=ON") -_register_git_cmake_library( - drogon - Drogon - "https://github.com/drogonframework/drogon.git" - "v1.9.13" -) -rcl_cmake_library_set_cmake_options(drogon ${drogon_opts}) -rcl_cmake_library_set_deps(drogon libzip trantor jsoncpp zlib) - -rcl_cmake_library_set_init_script( - drogon - "if (NOT TARGET std::filesystem)" - " add_library(std::filesystem INTERFACE IMPORTED GLOBAL)" - " set_property(TARGET std::filesystem APPEND PROPERTY INTERFACE_COMPILE_FEATURES cxx_std_17)" - "endif ()" - "set(Filesystem_FOUND TRUE)" - "set(Filesystem_Final_FOUND TRUE)" - "message(drogon 加载filesystem!)" -) - - -set(ghc_filesystem_opts ${base_options}) -_register_git_cmake_library( - ghc_filesystem - ghc_filesystem - "https://github.com/gulrak/filesystem.git" - "v1.5.14" -) -rcl_cmake_library_set_cmake_options(ghc_filesystem ${ghc_filesystem_opts}) - -set(cppzmq_opts ${base_options}) -_register_git_cmake_library( - cppzmq - cppzmq - "https://github.com/zeromq/cppzmq.git" - "v4.11.0" -) -rcl_cmake_library_set_cmake_options(cppzmq ${cppzmq_opts}) - -set(eigen_opts ${base_options}) -_register_git_cmake_library( - eigen - eigen - "https://github.com/eigenteam/eigen-git-mirror.git" - "3.3.7" -) -rcl_cmake_library_set_cmake_options(eigen ${eigen_opts}) - - -set(libzmq_opts ${base_options}) -_register_git_cmake_library( - libzmq - libzmq - "https://github.com/zeromq/libzmq.git" - "v4.3.5" -) -rcl_cmake_library_set_cmake_options(libzmq ${libzmq_opts}) - - -set(protobuf_opts ${base_options}) -list(APPEND protobuf_opts "-Dprotobuf_BUILD_TESTS=OFF") -list(APPEND protobuf_opts "-Dprotobuf_BUILD_SHARED_LIBS=OFF") -_register_git_cmake_library( - protobuf - protobuf - "https://github.com/protocolbuffers/protobuf.git" - "v33.2" -) -rcl_cmake_library_set_cmake_options(protobuf ${protobuf_opts}) - - -set(gflags_opts ${base_options}) -_register_git_cmake_library( - gflags - gflags - "https://github.com/gflags/gflags.git" - "v2.3.0" -) -rcl_cmake_library_set_cmake_options(gflags ${gflags_opts}) - - -set(brpc_opts ${base_options}) -_register_git_cmake_library( - brpc - brpc - "https://github.com/apache/brpc.git" - "1.15.0" -) -rcl_cmake_library_set_cmake_options(brpc ${brpc_opts}) - -set(ElaWidgetTools_opts ${base_options}) -_register_git_cmake_library( - ElaWidgetTools - ElaWidgetTools - "https://github.com/Liniyous/ElaWidgetTools.git" - "main" -) -rcl_cmake_library_set_cmake_options(ElaWidgetTools ${ElaWidgetTools_opts}) - - -# openvpn 渚濊禆鍗曞厓娴嬭瘯搴?set(cmocka_opts ${base_options}) -_register_git_cmake_library( - cmocka - cmocka - "https://github.com/clibs/cmocka.git" - "cmocka-1.1.5" -) -rcl_cmake_library_set_cmake_options(cmocka ${cmocka_opts}) - - -# c++23 expected搴撶殑鍓嶈韩 娌℃湁c++23鏃朵娇鐢? 鍗曞ご鏂囦欢搴?set(expected_opts ${base_options}) -_register_git_cmake_library( - expected - expected - "https://github.com/palacaze/sigslot.git" - "v1.3.1" -) -rcl_cmake_library_set_cmake_options(expected ${expected_opts}) - - -set(sigslot_opts ${base_options}) -_register_git_cmake_library( - sigslot - sigslot - "https://github.com/palacaze/sigslot.git" - "v1.2.3" -) -rcl_cmake_library_set_cmake_options(sigslot ${sigslot_opts}) - - -#浠g爜鐨刢make閲屽姞 -#add_compile_options("$<$:/utf-8>") -#add_compile_options("$<$:/utf-8>") - -set(SQLiteCpp_opts ${base_options}) -list(APPEND SQLiteCpp_opts "-DSQLITECPP_RUN_CPPCHECK=OFF") -_register_git_cmake_library( - SQLiteCpp - SQLiteCpp - "https://github.com/SRombauts/SQLiteCpp.git" - "3.3.3" -) -rcl_cmake_library_set_cmake_options(SQLiteCpp ${SQLiteCpp_opts}) - - -_register_git_cmake_library( - pybind11 - pybind11 - "https://github.com/pybind/pybind11.git" - "v3.0.4" -) -rcl_cmake_library_set_cmake_options(pybind11 ${SQLiteCpp_opts}) - - -#set(boost_locale_opts ${base_options}) -#_register_git_cmake_library_opt( -# "boost_locale" -# "https://github.com/boostorg/locale.git" -# "boost-1.91.0" -# boost_locale_opts -#) +block() + set(tinyxml2_opts) + _register_git_cmake_library( + tinyxml2 + tinyxml2 + https://github.com/leethomason/tinyxml2.git + 11.0.0 + ) + rcl_cmake_library_set_cmake_options(tinyxml2 ${tinyxml2_opts}) + set(jsoncpp_opts ${base_options}) + list(APPEND jsoncpp_opts + "-DJSONCPP_WITH_TESTS=OFF" + "-DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF" + "-DJSONCPP_WITH_EXAMPLE=OFF" + "-DJSONCPP_WITH_DOC=OFF" + ) + rcl_get_effective_install_dir(jsoncpp _jsoncpp_install_dir) + set(JSONCPP_ROOT ${_jsoncpp_install_dir}) + set(JSONCPP_INCLUDE_DIRS ${JSONCPP_ROOT}/include) + if (MSVC) + set(JSONCPP_LIBRARIES ${JSONCPP_ROOT}/lib/jsoncpp_static.lib) + else () + set(JSONCPP_LIBRARIES ${JSONCPP_ROOT}/lib/libjsoncpp.a) + endif () + _register_git_cmake_library( + jsoncpp + jsoncpp + https://github.com/open-source-parsers/jsoncpp.git + "1.9.6" + ) + rcl_cmake_library_set_cmake_options(jsoncpp ${jsoncpp_opts}) + rcl_cmake_library_set_other_use_opt(jsoncpp + "-DJSONCPP_INCLUDE_DIRS=\"${JSONCPP_INCLUDE_DIRS}\"" + "-DJSONCPP_LIBRARIES=\"${JSONCPP_LIBRARIES}\"" + ) + rcl_cmake_library_set_init_script(jsoncpp + "set(JSONCPP_ROOT \"${JSONCPP_ROOT}\")" + "set(JSONCPP_INCLUDE_DIRS \"${JSONCPP_INCLUDE_DIRS}\")" + "set(JSONCPP_LIBRARIES \"${JSONCPP_LIBRARIES}\")" + ) + rcl_cmake_library_set_clear_script(jsoncpp + "unset(JSONCPP_ROOT)" + "unset(JSONCPP_INCLUDE_DIRS)" + "unset(JSONCPP_LIBRARIES)" + ) + # 闈瀋make浠撳簱 + #set(asio_opts ${base_options}) + #_register_git_cmake_library_opt( + # asio + # https://github.com/chriskohlhoff/asio.git + # "asio-1-38-0" + # asio_opts + #) + set(fmt_option ${base_options}) + _register_git_cmake_library( + fmt + fmt + "https://github.com/fmtlib/fmt.git" + "12.1.0" + ) + rcl_cmake_library_set_cmake_options(fmt ${fmt_option}) + #set(imgui_option ${base_options}) + #_register_git_cmake_library_opt( + # imgui + # "https://github.com/ocornut/imgui.git" + # "v1.92.8" + # imgui_option + #) + # https://github.com/google/benchmark + #BENCHMARK_USE_BUNDLED_GTEST + set(benchmark_opt ${base_options}) + list(APPEND benchmark_opt "-DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON") + _register_git_cmake_library( + benchmark + benchmark + "https://github.com/google/benchmark.git" + "v1.9.5" + ) + rcl_cmake_library_set_cmake_options(benchmark ${benchmark_opt}) + set(mbedtls_opts ${base_options}) + _register_git_cmake_library( + mbedtls + mbedtls + "https://github.com/Mbed-TLS/mbedtls.git" + "v3.6.4" + ) + rcl_cmake_library_set_cmake_options(mbedtls ${mbedtls_opts}) + set(libxml2_opts ${base_options}) + _register_git_cmake_library( + libxml2 + libxml2 + "https://github.com/GNOME/libxml2.git" + "v2.15.1" + ) + rcl_cmake_library_set_cmake_options(libxml2 ${libxml2_opts}) + set(websocketpp_opts ${base_options}) + _register_git_cmake_library( + websocketpp + websocketpp + "https://github.com/zaphoyd/websocketpp.git" + "0.8.2" + ) + rcl_cmake_library_set_cmake_options(websocketpp ${websocketpp_opts}) + set(trantor_opts ${base_options}) + _register_git_cmake_library( + trantor + Trantor + "https://github.com/an-tao/trantor.git" + "v1.5.28" + ) + rcl_cmake_library_set_cmake_options(trantor ${trantor_opts}) + rcl_get_effective_install_dir(trantor _trantor_install_dir) + rcl_cmake_library_set_other_use_opt(trantor + "-DTrantor_DIR=${_trantor_install_dir}/lib/cmake/Trantor" + ) + #find_path() + set(drogon_opts ${base_options}) + list(APPEND drogon_opts "-DBUILD_CTL=OFF") + list(APPEND drogon_opts "-DBUILD_EXAMPLES=OFF") + list(APPEND drogon_opts "-DBUILD_ORM=OFF") + list(APPEND drogon_opts "-DCOZ_PROFILING=OFF") + list(APPEND drogon_opts "-DBUILD_SHARED_LIBS=OFF") + list(APPEND drogon_opts "-DBUILD_DOC=OFF") + list(APPEND drogon_opts "-DBUILD_BROTLI=OFF") + list(APPEND drogon_opts "-DBUILD_YAML_CONFIG=ON") + list(APPEND drogon_opts "-DUSE_SUBMODULE=OFF") + list(APPEND drogon_opts "-DUSE_STATIC_LIBS_ONLY=ON") + _register_git_cmake_library( + drogon + Drogon + "https://github.com/drogonframework/drogon.git" + "v1.9.13" + ) + rcl_cmake_library_set_cmake_options(drogon ${drogon_opts}) + rcl_cmake_library_set_deps(drogon libzip trantor jsoncpp zlib) + rcl_cmake_library_set_init_script( + drogon + "if (NOT TARGET std::filesystem)" + " add_library(std::filesystem INTERFACE IMPORTED GLOBAL)" + " set_property(TARGET std::filesystem APPEND PROPERTY INTERFACE_COMPILE_FEATURES cxx_std_17)" + "endif ()" + "set(Filesystem_FOUND TRUE)" + "set(Filesystem_Final_FOUND TRUE)" + "message(drogon 加载filesystem!)" + ) + set(ghc_filesystem_opts ${base_options}) + _register_git_cmake_library( + ghc_filesystem + ghc_filesystem + "https://github.com/gulrak/filesystem.git" + "v1.5.14" + ) + rcl_cmake_library_set_cmake_options(ghc_filesystem ${ghc_filesystem_opts}) + set(cppzmq_opts ${base_options}) + _register_git_cmake_library( + cppzmq + cppzmq + "https://github.com/zeromq/cppzmq.git" + "v4.11.0" + ) + rcl_cmake_library_set_cmake_options(cppzmq ${cppzmq_opts}) + set(eigen_opts ${base_options}) + _register_git_cmake_library( + eigen + eigen + "https://github.com/eigenteam/eigen-git-mirror.git" + "3.3.7" + ) + rcl_cmake_library_set_cmake_options(eigen ${eigen_opts}) + set(libzmq_opts ${base_options}) + _register_git_cmake_library( + libzmq + libzmq + "https://github.com/zeromq/libzmq.git" + "v4.3.5" + ) + rcl_cmake_library_set_cmake_options(libzmq ${libzmq_opts}) + set(protobuf_opts ${base_options}) + list(APPEND protobuf_opts "-Dprotobuf_BUILD_TESTS=OFF") + list(APPEND protobuf_opts "-Dprotobuf_BUILD_SHARED_LIBS=OFF") + _register_git_cmake_library( + protobuf + protobuf + "https://github.com/protocolbuffers/protobuf.git" + "v33.2" + ) + rcl_cmake_library_set_cmake_options(protobuf ${protobuf_opts}) + set(gflags_opts ${base_options}) + _register_git_cmake_library( + gflags + gflags + "https://github.com/gflags/gflags.git" + "v2.3.0" + ) + rcl_cmake_library_set_cmake_options(gflags ${gflags_opts}) + set(brpc_opts ${base_options}) + _register_git_cmake_library( + brpc + brpc + "https://github.com/apache/brpc.git" + "1.15.0" + ) + rcl_cmake_library_set_cmake_options(brpc ${brpc_opts}) + set(ElaWidgetTools_opts ${base_options}) + _register_git_cmake_library( + ElaWidgetTools + ElaWidgetTools + "https://github.com/Liniyous/ElaWidgetTools.git" + "main" + ) + rcl_cmake_library_set_cmake_options(ElaWidgetTools ${ElaWidgetTools_opts}) + # openvpn 渚濊禆鍗曞厓娴嬭瘯搴?set(cmocka_opts ${base_options}) + _register_git_cmake_library( + cmocka + cmocka + "https://github.com/clibs/cmocka.git" + "cmocka-1.1.5" + ) + rcl_cmake_library_set_cmake_options(cmocka ${cmocka_opts}) + # c++23 expected搴撶殑鍓嶈韩 娌℃湁c++23鏃朵娇鐢? 鍗曞ご鏂囦欢搴?set(expected_opts ${base_options}) + _register_git_cmake_library( + expected + expected + "https://github.com/palacaze/sigslot.git" + "v1.3.1" + ) + rcl_cmake_library_set_cmake_options(expected ${expected_opts}) + set(sigslot_opts ${base_options}) + _register_git_cmake_library( + sigslot + sigslot + "https://github.com/palacaze/sigslot.git" + "v1.2.3" + ) + rcl_cmake_library_set_cmake_options(sigslot ${sigslot_opts}) + #浠g爜鐨刢make閲屽姞 + #add_compile_options("$<$:/utf-8>") + #add_compile_options("$<$:/utf-8>") + set(SQLiteCpp_opts ${base_options}) + list(APPEND SQLiteCpp_opts "-DSQLITECPP_RUN_CPPCHECK=OFF") + _register_git_cmake_library( + SQLiteCpp + SQLiteCpp + "https://github.com/SRombauts/SQLiteCpp.git" + "3.3.3" + ) + rcl_cmake_library_set_cmake_options(SQLiteCpp ${SQLiteCpp_opts}) + _register_git_cmake_library( + pybind11 + pybind11 + "https://github.com/pybind/pybind11.git" + "v3.0.4" + ) + rcl_cmake_library_set_cmake_options(pybind11 ${SQLiteCpp_opts}) + #set(boost_locale_opts ${base_options}) + #_register_git_cmake_library_opt( + # "boost_locale" + # "https://github.com/boostorg/locale.git" + # "boost-1.91.0" + # boost_locale_opts + #) +endblock() \ No newline at end of file