99 lines
4.2 KiB
CMake
99 lines
4.2 KiB
CMake
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=OFF
|
|
-DDVZ_BUILD_DRP2=ON
|
|
-DDVZ_BUILD_WEBGPU=OFF
|
|
-DDVZ_BUILD_SCENE=ON
|
|
-DDVZ_BUILD_APP=OFF
|
|
-DDVZ_BUILD_GUI=OFF
|
|
-DDVZ_BUILD_TESTING=OFF
|
|
-DDVZ_BUILD_EXAMPLES=OFF
|
|
-DDVZ_INSTALL=ON
|
|
-DDVZ_VENDORED_DEPS=ON
|
|
-DDVZ_ENABLE_CUDA=OFF
|
|
-DDVZ_ENABLE_KVAZAAR=OFF
|
|
-DDVZ_ENABLE_QT_BRIDGE=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=OFF
|
|
-DDVZ_USE_MIMALLOC_RELEASE_DEFAULT=OFF
|
|
)
|
|
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"
|
|
)
|
|
if (WIN32 AND NOT MINGW)
|
|
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_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(render_3D::datoviz
|
|
"-Ddatoviz_DIR=\"${DATOVIZ_CMAKE_DIR}\""
|
|
"-DDatoviz_DIR=\"${DATOVIZ_CMAKE_DIR}\""
|
|
)
|
|
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(render_3D::datoviz
|
|
"unset(DATOVIZ_ROOT)"
|
|
"unset(datoviz_DIR)"
|
|
"unset(Datoviz_DIR)"
|
|
)
|
|
endblock()
|