282 lines
12 KiB
CMake
282 lines
12 KiB
CMake
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)
|
|
set(MSDFGEN_CONFIG_DIR "${MSDFGEN_ROOT}/lib/cmake/msdfgen")
|
|
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
|
|
)
|
|
rcl_cmake_library_set_other_use_opt(render_3D::msdfgen
|
|
"-Dmsdfgen_DIR=\"${MSDFGEN_CONFIG_DIR}\""
|
|
)
|
|
rcl_cmake_library_set_init_script(render_3D::msdfgen
|
|
"set(MSDFGEN_ROOT \"${MSDFGEN_ROOT}\")"
|
|
"set(msdfgen_DIR \"${MSDFGEN_CONFIG_DIR}\")"
|
|
)
|
|
rcl_cmake_library_set_clear_script(render_3D::msdfgen
|
|
"unset(MSDFGEN_ROOT)"
|
|
"unset(msdfgen_DIR)"
|
|
)
|
|
set(msdfgl_cmake_option "")
|
|
if (WIN32)
|
|
_register_git_cmake_library(render_3D::PThreads4W
|
|
https://github.com/jwinarske/pthreads4w.git
|
|
"cmake"
|
|
)
|
|
rcl_get_effective_install_dir(render_3D::PThreads4W PTHREADS4W_ROOT)
|
|
set(PThreads4W_option ${base_options})
|
|
list(APPEND PThreads4W_option
|
|
"-DDIST_ROOT=${PTHREADS4W_ROOT}"
|
|
"-DCMAKE_C_FLAGS=-D_WINDLL"
|
|
"-DCMAKE_CXX_FLAGS=-D_WINDLL"
|
|
)
|
|
rcl_cmake_library_set_cmake_options(render_3D::PThreads4W ${PThreads4W_option})
|
|
rcl_cmake_library_set_init_script(render_3D::PThreads4W
|
|
"set(PTHREADS4W_ROOT \"${PTHREADS4W_ROOT}\")"
|
|
)
|
|
rcl_cmake_library_set_clear_script(render_3D::PThreads4W
|
|
"unset(PTHREADS4W_ROOT)"
|
|
)
|
|
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)
|
|
set(MSDF_ATLAS_GEN_CONFIG_DIR "${MSDF_ATLAS_GEN_ROOT}/lib/cmake/msdf-atlas-gen")
|
|
set(MSDF_ATLAS_GEN_MSDFGEN_CONFIG_DIR "${MSDF_ATLAS_GEN_ROOT}/lib/cmake/msdfgen")
|
|
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
|
|
)
|
|
rcl_cmake_library_set_other_use_opt(render_3D::msdf-atlas-gen
|
|
"-Dmsdf-atlas-gen_DIR=\"${MSDF_ATLAS_GEN_CONFIG_DIR}\""
|
|
"-Dmsdfgen_DIR=\"${MSDF_ATLAS_GEN_MSDFGEN_CONFIG_DIR}\""
|
|
)
|
|
rcl_cmake_library_set_init_script(render_3D::msdf-atlas-gen
|
|
"set(MSDF_ATLAS_GEN_ROOT \"${MSDF_ATLAS_GEN_ROOT}\")"
|
|
"set(msdf-atlas-gen_DIR \"${MSDF_ATLAS_GEN_CONFIG_DIR}\")"
|
|
"set(msdfgen_DIR \"${MSDF_ATLAS_GEN_MSDFGEN_CONFIG_DIR}\")"
|
|
)
|
|
rcl_cmake_library_set_clear_script(render_3D::msdf-atlas-gen
|
|
"unset(MSDF_ATLAS_GEN_ROOT)"
|
|
"unset(msdf-atlas-gen_DIR)"
|
|
"unset(msdfgen_DIR)"
|
|
)
|
|
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})
|
|
find_package(Vulkan QUIET)
|
|
if (NOT Vulkan_FOUND AND WIN32)
|
|
if (DEFINED ENV{VK_SDK_PATH} AND NOT "$ENV{VK_SDK_PATH}" STREQUAL "")
|
|
set(ENV{VULKAN_SDK} "$ENV{VK_SDK_PATH}")
|
|
else ()
|
|
file(GLOB _vulkan_sdk_roots LIST_DIRECTORIES true "C:/VulkanSDK/*")
|
|
list(SORT _vulkan_sdk_roots COMPARE NATURAL ORDER DESCENDING)
|
|
foreach (_vulkan_sdk_root IN LISTS _vulkan_sdk_roots)
|
|
if (EXISTS "${_vulkan_sdk_root}/Include/vulkan/vulkan.h" AND EXISTS "${_vulkan_sdk_root}/Lib/vulkan-1.lib")
|
|
set(ENV{VULKAN_SDK} "${_vulkan_sdk_root}")
|
|
break()
|
|
endif ()
|
|
endforeach ()
|
|
endif ()
|
|
find_package(Vulkan REQUIRED)
|
|
elseif (NOT Vulkan_FOUND)
|
|
find_package(Vulkan REQUIRED)
|
|
endif ()
|
|
get_filename_component(VULKAN_SDK_ROOT "${Vulkan_INCLUDE_DIR}" DIRECTORY)
|
|
set(volk_option ${base_options})
|
|
list(APPEND volk_option
|
|
-DVOLK_INSTALL=ON
|
|
-DVOLK_PULL_IN_VULKAN=ON
|
|
-DVOLK_HEADERS_ONLY=OFF
|
|
-DVOLK_NAMESPACE=OFF
|
|
"-DVULKAN_HEADERS_INSTALL_DIR=${VULKAN_SDK_ROOT}"
|
|
)
|
|
if (WIN32)
|
|
list(APPEND volk_option
|
|
-DVOLK_STATIC_DEFINES=VK_USE_PLATFORM_WIN32_KHR
|
|
)
|
|
endif ()
|
|
_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)
|
|
set(VOLK_CONFIG_DIR "${VOLK_ROOT}/lib/cmake/volk")
|
|
rcl_cmake_library_set_cmake_options(render_3D::volk ${volk_option})
|
|
rcl_cmake_library_set_other_use_opt(render_3D::volk
|
|
"-Dvolk_DIR=\"${VOLK_CONFIG_DIR}\""
|
|
)
|
|
rcl_cmake_library_set_init_script(render_3D::volk
|
|
"set(VOLK_ROOT \"${VOLK_ROOT}\")"
|
|
"set(volk_DIR \"${VOLK_CONFIG_DIR}\")"
|
|
)
|
|
rcl_cmake_library_set_clear_script(render_3D::volk
|
|
"unset(VOLK_ROOT)"
|
|
"unset(volk_DIR)"
|
|
)
|
|
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() |