优化cmake
This commit is contained in:
@@ -1,6 +1,13 @@
|
||||
# 加载 datoviz的依赖库
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/cmake/export.cmake)
|
||||
set(Renderive_render_3D_dependencies render_3D::pthreads4w render_3D::cglm)
|
||||
set(Renderive_render_3D_dependencies
|
||||
render_3D::PThreads4W
|
||||
render_3D::cglm
|
||||
render_3D::Vulkan-Hpp
|
||||
render_3D::VulkanMemoryAllocator
|
||||
render_3D::msdf-atlas-gen
|
||||
render_3D::tinyobjloader
|
||||
)
|
||||
if (RENDERIVE_BUILD_TESTS)
|
||||
list(APPEND Renderive_render_3D_dependencies global::GTest)
|
||||
endif ()
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
include_guard(GLOBAL)
|
||||
block()
|
||||
_register_git_cmake_library(render_3D::cglm
|
||||
"https://github.com/recp/cglm.git"
|
||||
"v0.9.6"
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::cglm CGLM_ROOT)
|
||||
set(CGLM_CONFIG_DIR "${CGLM_ROOT}/lib/cmake/cglm")
|
||||
set(cglm_opts
|
||||
-DCGLM_SHARED=OFF
|
||||
-DCGLM_STATIC=ON
|
||||
-DCGLM_USE_TEST=OFF
|
||||
)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::cglm ${cglm_opts})
|
||||
rcl_cmake_library_set_other_use_opt(render_3D::cglm
|
||||
"-Dcglm_DIR=\"${CGLM_CONFIG_DIR}\""
|
||||
)
|
||||
rcl_cmake_library_set_init_script(render_3D::cglm
|
||||
"set(cglm_DIR \"${CGLM_CONFIG_DIR}\")"
|
||||
)
|
||||
rcl_cmake_library_set_clear_script(render_3D::cglm
|
||||
"unset(cglm_DIR)"
|
||||
)
|
||||
endblock()
|
||||
@@ -0,0 +1,210 @@
|
||||
include_guard(GLOBAL)
|
||||
block()
|
||||
set(freetype_opts)
|
||||
_register_git_cmake_library(render_3D::freetype
|
||||
https://github.com/freetype/freetype.git
|
||||
VER-2-13-3
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::freetype FREETYPE_ROOT)
|
||||
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 ()
|
||||
rcl_cmake_library_set_cmake_options(render_3D::freetype ${freetype_opts})
|
||||
rcl_cmake_library_set_other_use_opt(render_3D::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}\""
|
||||
)
|
||||
rcl_cmake_library_set_init_script(render_3D::freetype
|
||||
"set(FREETYPE_ROOT \"${FREETYPE_ROOT}\")"
|
||||
"set(FREETYPE_INCLUDE_DIRS \"${FREETYPE_INCLUDE_DIRS}\")"
|
||||
"set(FREETYPE_INCLUDE_DIR_ft2build \"${FREETYPE_INCLUDE_DIR_ft2build}\")"
|
||||
"set(FREETYPE_INCLUDE_DIR_freetype2 \"${FREETYPE_INCLUDE_DIR_freetype2}\")"
|
||||
"set(FREETYPE_LIBRARY \"${FREETYPE_LIBRARY}\")"
|
||||
"set(FREETYPE_LIBRARIES \"${FREETYPE_LIBRARY}\")"
|
||||
)
|
||||
rcl_cmake_library_set_clear_script(render_3D::freetype
|
||||
"unset(FREETYPE_ROOT)"
|
||||
"unset(FREETYPE_INCLUDE_DIRS)"
|
||||
"unset(FREETYPE_INCLUDE_DIR_ft2build)"
|
||||
"unset(FREETYPE_INCLUDE_DIR_freetype2)"
|
||||
"unset(FREETYPE_LIBRARY)"
|
||||
"unset(FREETYPE_LIBRARIES)"
|
||||
)
|
||||
set(tinyxml2_opts
|
||||
-Dtinyxml2_BUILD_TESTING=OFF
|
||||
-Dtinyxml2_INSTALL_PKGCONFIG=OFF
|
||||
-Dtinyxml2_SHARED_LIBS=OFF
|
||||
-Dtinyxml2_INSTALL_CMAKEDIR=lib/cmake/tinyxml2
|
||||
)
|
||||
_register_git_cmake_library(render_3D::tinyxml2
|
||||
"https://github.com/leethomason/tinyxml2.git"
|
||||
"11.0.0"
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::tinyxml2 TINYXML2_ROOT)
|
||||
set(TINYXML2_CONFIG_DIR "${TINYXML2_ROOT}/lib/cmake/tinyxml2")
|
||||
rcl_cmake_library_set_cmake_options(render_3D::tinyxml2 ${tinyxml2_opts})
|
||||
rcl_cmake_library_set_other_use_opt(render_3D::tinyxml2
|
||||
"-Dtinyxml2_DIR=\"${TINYXML2_CONFIG_DIR}\""
|
||||
)
|
||||
rcl_cmake_library_set_init_script(render_3D::tinyxml2
|
||||
"set(TINYXML2_ROOT \"${TINYXML2_ROOT}\")"
|
||||
"set(tinyxml2_DIR \"${TINYXML2_CONFIG_DIR}\")"
|
||||
)
|
||||
rcl_cmake_library_set_clear_script(render_3D::tinyxml2
|
||||
"unset(TINYXML2_ROOT)"
|
||||
"unset(tinyxml2_DIR)"
|
||||
)
|
||||
set(msdfgen_cmake_option ${base_options})
|
||||
list(APPEND msdfgen_cmake_option
|
||||
-DMSDFGEN_USE_SKIA=OFF
|
||||
-DMSDFGEN_USE_VCPKG=OFF
|
||||
-DBUILD_SHARED_LIBS=ON
|
||||
-DMSDFGEN_DYNAMIC_RUNTIME=ON
|
||||
-DMSDFGEN_INSTALL=ON
|
||||
)
|
||||
_register_git_cmake_library(render_3D::msdfgen
|
||||
https://github.com/Chlumsky/msdfgen.git
|
||||
v1.12
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::msdfgen MSDFGEN_ROOT)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::msdfgen ${msdfgen_cmake_option})
|
||||
rcl_cmake_library_set_deps(render_3D::msdfgen
|
||||
global::zlib
|
||||
global::libpng
|
||||
render_3D::freetype
|
||||
render_3D::tinyxml2
|
||||
)
|
||||
set(msdfgl_cmake_option "")
|
||||
if (WIN32)
|
||||
set(PThreads4W_option ${base_options})
|
||||
list(APPEND PThreads4W_option
|
||||
"-DCMAKE_C_FLAGS=-D_WINDLL"
|
||||
"-DCMAKE_CXX_FLAGS=-D_WINDLL"
|
||||
)
|
||||
_register_git_cmake_library(render_3D::PThreads4W
|
||||
https://github.com/jwinarske/pthreads4w.git
|
||||
"cmake"
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::PThreads4W PTHREADS4W_ROOT)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::PThreads4W ${PThreads4W_option})
|
||||
endif ()
|
||||
set(glfw3_option ${base_options})
|
||||
_register_git_cmake_library(render_3D::glfw3
|
||||
https://github.com/glfw/glfw.git
|
||||
"3.4"
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::glfw3 GLFW3_ROOT)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::glfw3 ${glfw3_option})
|
||||
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
|
||||
)
|
||||
_register_git_cmake_library(render_3D::msdf-atlas-gen
|
||||
https://github.com/Chlumsky/msdf-atlas-gen.git
|
||||
v1.4
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::msdf-atlas-gen MSDF_ATLAS_GEN_ROOT)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::msdf-atlas-gen ${msdf-atlas-gen_option})
|
||||
rcl_cmake_library_set_deps(render_3D::msdf-atlas-gen
|
||||
global::zlib
|
||||
global::libpng
|
||||
render_3D::freetype
|
||||
render_3D::tinyxml2
|
||||
)
|
||||
set(cglm_option ${base_options})
|
||||
_register_git_cmake_library(render_3D::cglm
|
||||
"https://github.com/recp/cglm.git"
|
||||
v0.9.6
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::cglm CGLM_ROOT)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::cglm ${cglm_option})
|
||||
set(glm_option ${base_options})
|
||||
_register_git_cmake_library(render_3D::glm
|
||||
"https://github.com/g-truc/glm.git"
|
||||
"1.0.3"
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::glm GLM_ROOT)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::glm ${glm_option})
|
||||
set(tinyobjloader_option ${base_options})
|
||||
list(APPEND tinyobjloader_option
|
||||
-DCMAKE_POLICY_VERSION_MINIMUM=3.20
|
||||
)
|
||||
_register_git_cmake_library(render_3D::tinyobjloader
|
||||
"https://github.com/tinyobjloader/tinyobjloader.git"
|
||||
"v1.0.7"
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::tinyobjloader TINYOBJLOADER_ROOT)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::tinyobjloader ${tinyobjloader_option})
|
||||
set(vk-bootstrap_option ${base_options})
|
||||
_register_git_cmake_library(render_3D::vk-bootstrap
|
||||
"https://github.com/charles-lunarg/vk-bootstrap.git"
|
||||
"v1.4.357"
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::vk-bootstrap VK_BOOTSTRAP_ROOT)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::vk-bootstrap ${vk-bootstrap_option})
|
||||
set(Vulkan-Hpp_option ${base_options})
|
||||
_register_git_cmake_library(render_3D::Vulkan-Hpp
|
||||
"https://github.com/KhronosGroup/Vulkan-Hpp.git"
|
||||
"v1.4.357"
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::Vulkan-Hpp VULKAN_HPP_ROOT)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::Vulkan-Hpp ${Vulkan-Hpp_option})
|
||||
set(volk_option ${base_options})
|
||||
list(APPEND volk_option
|
||||
-DVOLK_INSTALL=ON
|
||||
-DVOLK_PULL_IN_VULKAN=ON
|
||||
-DVOLK_HEADERS_ONLY=OFF
|
||||
-DVOLK_NAMESPACE=ON
|
||||
)
|
||||
_register_git_cmake_library(render_3D::volk
|
||||
"https://github.com/zeux/volk.git"
|
||||
"vulkan-sdk-1.4.357.0"
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::volk VOLK_ROOT)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::volk ${volk_option})
|
||||
set(VulkanMemoryAllocator_option ${base_options})
|
||||
_register_git_cmake_library(render_3D::VulkanMemoryAllocator
|
||||
"https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git"
|
||||
"v3.3.0"
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::VulkanMemoryAllocator VULKAN_MEMORY_ALLOCATOR_ROOT)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::VulkanMemoryAllocator ${VulkanMemoryAllocator_option})
|
||||
set(tinygltf_option ${base_options})
|
||||
_register_git_cmake_library(render_3D::tinygltf
|
||||
"https://github.com/syoyo/tinygltf.git"
|
||||
"v3.0.0"
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::tinygltf TINYGLTF_ROOT)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::tinygltf ${tinygltf_option})
|
||||
set(fastgltf_option ${base_options})
|
||||
_register_git_cmake_library(render_3D::fastgltf
|
||||
"https://github.com/spnda/fastgltf.git"
|
||||
"v0.9.0"
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::fastgltf FASTGLTF_ROOT)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::fastgltf ${fastgltf_option})
|
||||
set(VulkanSceneGraph_option ${base_options})
|
||||
_register_git_cmake_library(render_3D::VulkanSceneGraph
|
||||
"https://github.com/vsg-dev/VulkanSceneGraph.git"
|
||||
"v1.1.15"
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::VulkanSceneGraph VULKAN_SCENE_GRAPH_ROOT)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::VulkanSceneGraph ${VulkanSceneGraph_option})
|
||||
endblock()
|
||||
@@ -1,4 +1,3 @@
|
||||
rcl_init(render_3D)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/pthreads4w.cmake)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/cglm.cmake)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/computer_graphics.cmake)
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/module")
|
||||
@@ -1,5 +1,6 @@
|
||||
include_guard(GLOBAL)
|
||||
rcl_get_effective_install_dir(render_3D::pthreads4w PTHREADS4W_ROOT)
|
||||
rcl_get_effective_install_dir(render_3D::PThreads4W PTHREADS4W_ROOT)
|
||||
message("render_3D::PThreads4W PTHREADS4W_ROOT=${PTHREADS4W_ROOT}")
|
||||
set(PThreads4W_INCLUDE_DIR "${PTHREADS4W_ROOT}/include")
|
||||
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(PThreads4W_LIBRARY "${PTHREADS4W_ROOT}/lib/pthreadVC3d.lib")
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
include_guard(GLOBAL)
|
||||
block()
|
||||
if (WIN32)
|
||||
_register_git_cmake_library(render_3D::pthreads4w
|
||||
"https://github.com/GerHobbelt/pthread-win32.git"
|
||||
"v3.0.3.1"
|
||||
)
|
||||
rcl_get_effective_install_dir(render_3D::pthreads4w PTHREADS4W_ROOT)
|
||||
set(PTHREADS4W_INCLUDE_DIR "${PTHREADS4W_ROOT}/include")
|
||||
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(PTHREADS4W_LIBRARY "${PTHREADS4W_ROOT}/lib/pthreadVC3d.lib")
|
||||
else ()
|
||||
set(PTHREADS4W_LIBRARY "${PTHREADS4W_ROOT}/lib/pthreadVC3.lib")
|
||||
endif ()
|
||||
set(pthreads4w_opts
|
||||
-DENABLE_TESTS=OFF
|
||||
"-DCMAKE_C_FLAGS=-D_WINDLL"
|
||||
"-DCMAKE_CXX_FLAGS=-D_WINDLL"
|
||||
"-DDLLDEST=${PTHREADS4W_ROOT}/bin"
|
||||
"-DLIBDEST=${PTHREADS4W_ROOT}/lib"
|
||||
"-DHDRDEST=${PTHREADS4W_ROOT}/include"
|
||||
)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::pthreads4w ${pthreads4w_opts})
|
||||
rcl_cmake_library_set_other_use_opt(render_3D::pthreads4w
|
||||
"-DPThreads4W_INCLUDE_DIR=\"${PTHREADS4W_INCLUDE_DIR}\""
|
||||
"-DPThreads4W_LIBRARY=\"${PTHREADS4W_LIBRARY}\""
|
||||
)
|
||||
rcl_cmake_library_set_init_script(render_3D::pthreads4w
|
||||
"set(PThreads4W_INCLUDE_DIR \"${PTHREADS4W_INCLUDE_DIR}\")"
|
||||
"set(PThreads4W_LIBRARY \"${PTHREADS4W_LIBRARY}\")"
|
||||
)
|
||||
rcl_cmake_library_set_clear_script(render_3D::pthreads4w
|
||||
"unset(PThreads4W_INCLUDE_DIR)"
|
||||
"unset(PThreads4W_LIBRARY)"
|
||||
)
|
||||
endif ()
|
||||
endblock()
|
||||
Reference in New Issue
Block a user