3D 第一版
This commit is contained in:
+59
-12
@@ -1,14 +1,32 @@
|
||||
include_guard(GLOBAL)
|
||||
|
||||
if (WIN32 AND (NOT DEFINED ENV{VULKAN_SDK} OR NOT EXISTS "$ENV{VULKAN_SDK}/Include/vulkan/vulkan.h"))
|
||||
file(GLOB _renderive_vulkan_sdk_candidates LIST_DIRECTORIES TRUE "C:/VulkanSDK/*")
|
||||
list(SORT _renderive_vulkan_sdk_candidates COMPARE NATURAL ORDER DESCENDING)
|
||||
foreach (_renderive_vulkan_sdk_candidate IN LISTS _renderive_vulkan_sdk_candidates)
|
||||
if (EXISTS "${_renderive_vulkan_sdk_candidate}/Include/vulkan/vulkan.h" AND
|
||||
EXISTS "${_renderive_vulkan_sdk_candidate}/Bin/glslc.exe")
|
||||
set(ENV{VULKAN_SDK} "${_renderive_vulkan_sdk_candidate}")
|
||||
break()
|
||||
endif ()
|
||||
endforeach ()
|
||||
unset(_renderive_vulkan_sdk_candidate)
|
||||
unset(_renderive_vulkan_sdk_candidates)
|
||||
endif ()
|
||||
|
||||
block()
|
||||
set(datoviz_opts
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
"-DCMAKE_C_FLAGS=-utf-8"
|
||||
"-DCMAKE_CXX_FLAGS=-utf-8"
|
||||
-DDVZ_BUILD_CORE=ON
|
||||
-DDVZ_BUILD_CONTROLLER=ON
|
||||
-DDVZ_BUILD_VK=ON
|
||||
-DDVZ_BUILD_CANVAS=ON
|
||||
-DDVZ_BUILD_CANVAS=OFF
|
||||
-DDVZ_BUILD_DRP2=ON
|
||||
-DDVZ_BUILD_WEBGPU=OFF
|
||||
-DDVZ_BUILD_SCENE=ON
|
||||
-DDVZ_BUILD_APP=ON
|
||||
-DDVZ_BUILD_APP=OFF
|
||||
-DDVZ_BUILD_GUI=OFF
|
||||
-DDVZ_BUILD_TESTING=OFF
|
||||
-DDVZ_BUILD_EXAMPLES=OFF
|
||||
@@ -17,35 +35,64 @@ block()
|
||||
-DDVZ_ENABLE_CUDA=OFF
|
||||
-DDVZ_ENABLE_KVAZAAR=OFF
|
||||
-DDVZ_ENABLE_QT_BRIDGE=OFF
|
||||
-DDVZ_ENABLE_SHADERC=OFF
|
||||
-DDVZ_ENABLE_SHADERC=ON
|
||||
-DDVZ_WITH_FREETYPE=OFF
|
||||
-DDVZ_WITH_MSDF_ATLAS=OFF
|
||||
-DDVZ_WITH_MSDF_SVG=OFF
|
||||
-DDVZ_WITH_ZLIB=OFF
|
||||
-DDVZ_WITH_GLFW=ON
|
||||
-DDVZ_WITH_GLFW=OFF
|
||||
-DDVZ_USE_MIMALLOC_RELEASE_DEFAULT=OFF
|
||||
)
|
||||
_register_git_cmake_library(renderive::datoviz
|
||||
if (WIN32)
|
||||
set(DATOVIZ_VULKAN_SDK "$ENV{VULKAN_SDK}")
|
||||
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(DATOVIZ_SHADERC_RUNTIME "${DATOVIZ_VULKAN_SDK}/Bin/shaderc_sharedd.dll")
|
||||
set(DATOVIZ_SHADERC_LIBRARY "${DATOVIZ_VULKAN_SDK}/Lib/shaderc_sharedd.lib")
|
||||
else ()
|
||||
set(DATOVIZ_SHADERC_RUNTIME "${DATOVIZ_VULKAN_SDK}/Bin/shaderc_shared.dll")
|
||||
set(DATOVIZ_SHADERC_LIBRARY "${DATOVIZ_VULKAN_SDK}/Lib/shaderc_shared.lib")
|
||||
endif ()
|
||||
if (NOT EXISTS "${DATOVIZ_VULKAN_SDK}/Include/vulkan/vulkan.h" OR
|
||||
NOT EXISTS "${DATOVIZ_VULKAN_SDK}/Bin/glslc.exe" OR
|
||||
NOT EXISTS "${DATOVIZ_SHADERC_LIBRARY}" OR
|
||||
NOT EXISTS "${DATOVIZ_SHADERC_RUNTIME}")
|
||||
message(FATAL_ERROR "Render_3D requires a Vulkan SDK with glslc and shared shaderc")
|
||||
endif ()
|
||||
list(APPEND datoviz_opts
|
||||
"-DGLSLC_PATH=${DATOVIZ_VULKAN_SDK}/Bin"
|
||||
"-DDVZ_SHADERC_INCLUDE_DIR=${DATOVIZ_VULKAN_SDK}/Include"
|
||||
"-DDVZ_SHADERC_LIBRARY=${DATOVIZ_SHADERC_LIBRARY}"
|
||||
"-DDVZ_SHADERC_RUNTIME_LIBRARY=${DATOVIZ_SHADERC_RUNTIME}"
|
||||
)
|
||||
endif ()
|
||||
_register_git_cmake_library(render_3D::datoviz
|
||||
"https://github.com/datoviz/datoviz.git"
|
||||
"v0.4.0rc2"
|
||||
)
|
||||
rcl_cmake_library_set_cmake_options(renderive::datoviz ${datoviz_opts})
|
||||
if (WIN32 AND NOT MINGW)
|
||||
rcl_cmake_library_set_deps(renderive::datoviz renderive::pthreads4w)
|
||||
rcl_get_effective_install_dir(render_3D::PThreads4W PTHREADS4W_ROOT)
|
||||
set(PTHREADS4W_CONFIG_DIR "${CMAKE_CURRENT_LIST_DIR}/../render_3D/cmake/package/PThreads4W")
|
||||
rcl_cmake_library_set_deps(render_3D::datoviz render_3D::PThreads4W)
|
||||
list(APPEND datoviz_opts
|
||||
"-DPTHREADS4W_ROOT=${PTHREADS4W_ROOT}"
|
||||
"-DPThreads4W_DIR=${PTHREADS4W_CONFIG_DIR}"
|
||||
)
|
||||
endif ()
|
||||
rcl_get_effective_install_dir(renderive::datoviz DATOVIZ_ROOT)
|
||||
rcl_cmake_library_set_cmake_options(render_3D::datoviz ${datoviz_opts})
|
||||
rcl_get_effective_install_dir(render_3D::datoviz DATOVIZ_ROOT)
|
||||
set(DATOVIZ_CMAKE_DIR "${DATOVIZ_ROOT}/lib/cmake/datoviz")
|
||||
rcl_cmake_library_set_other_use_opt(renderive::datoviz
|
||||
rcl_cmake_library_set_other_use_opt(render_3D::datoviz
|
||||
"-Ddatoviz_DIR=\"${DATOVIZ_CMAKE_DIR}\""
|
||||
"-DDatoviz_DIR=\"${DATOVIZ_CMAKE_DIR}\""
|
||||
)
|
||||
rcl_cmake_library_set_init_script(renderive::datoviz
|
||||
rcl_cmake_library_set_init_script(render_3D::datoviz
|
||||
"set(DATOVIZ_ROOT \"${DATOVIZ_ROOT}\")"
|
||||
"set(datoviz_DIR \"${DATOVIZ_CMAKE_DIR}\")"
|
||||
"set(Datoviz_DIR \"${DATOVIZ_CMAKE_DIR}\")"
|
||||
)
|
||||
rcl_cmake_library_set_clear_script(renderive::datoviz
|
||||
rcl_cmake_library_set_clear_script(render_3D::datoviz
|
||||
"unset(DATOVIZ_ROOT)"
|
||||
"unset(datoviz_DIR)"
|
||||
"unset(Datoviz_DIR)"
|
||||
)
|
||||
endblock()
|
||||
endblock()
|
||||
|
||||
Reference in New Issue
Block a user