123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- diff --git a/CMakeLists.txt b/CMakeLists.txt
- index 212a82e..afede0f 100644
- --- a/CMakeLists.txt
- +++ b/CMakeLists.txt
- @@ -21,23 +21,116 @@ function(install_tools_lib _TARGET)
- if(TARGET_TYPE STREQUAL STATIC_LIBRARY)
- list(APPEND DILIGENT_TOOLS_INSTALL_LIBS_LIST ${_TARGET})
- set(DILIGENT_TOOLS_INSTALL_LIBS_LIST ${DILIGENT_TOOLS_INSTALL_LIBS_LIST} CACHE INTERNAL "Diligent tools libraries installation list")
- + install(TARGETS ${_TARGET}
- + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
- + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
- + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
- + )
- + if (DILIGENT_INSTALL_PDB)
- + install(FILES $<TARGET_PDB_FILE:${_TARGET}> DESTINATION "${CMAKE_INSTALL_BINDIR}" OPTIONAL)
- + endif()
- elseif(TARGET_TYPE STREQUAL SHARED_LIBRARY)
- install(TARGETS ${_TARGET}
- - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${DILIGENT_TOOLS_DIR}/$<CONFIG>"
- - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${DILIGENT_TOOLS_DIR}/$<CONFIG>"
- - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/${DILIGENT_TOOLS_DIR}/$<CONFIG>"
- + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
- + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
- + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
- )
- if (DILIGENT_INSTALL_PDB)
- - install(FILES $<TARGET_PDB_FILE:${_TARGET}> DESTINATION "${CMAKE_INSTALL_BINDIR}/${DILIGENT_TOOLS_DIR}/$<CONFIG>" OPTIONAL)
- + install(FILES $<TARGET_PDB_FILE:${_TARGET}> DESTINATION "${CMAKE_INSTALL_BINDIR}" OPTIONAL)
- endif()
- endif()
-
- if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/interface")
- install(DIRECTORY interface
- - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/${TARGET_RELATIVE_PATH}/"
- + DESTINATION "include/DiligentTools/${TARGET_RELATIVE_PATH}"
- )
- endif()
- endfunction()
- +include(FindPkgConfig)
- +include(BuildUtils.cmake)
- +add_library(Diligent-PublicBuildSettings INTERFACE)
- +if(PLATFORM_WIN32)
- + set(GL_SUPPORTED TRUE CACHE INTERNAL "OpenGL is supported on Win32 platform")
- + set(VULKAN_SUPPORTED TRUE CACHE INTERNAL "Vulkan is supported on Win32 platform")
- + set(WEBGPU_SUPPORTED TRUE CACHE INTERNAL "WebGPU is supported on Win32 platform")
- + set(ARCHIVER_SUPPORTED TRUE CACHE INTERNAL "Archiver is supported on Win32 platform")
- + target_compile_definitions(Diligent-PublicBuildSettings INTERFACE PLATFORM_WIN32=1)
- +elseif(PLATFORM_UNIVERSAL_WINDOWS)
- + set(ARCHIVER_SUPPORTED TRUE CACHE INTERNAL "Archiver is supported on Universal Windows platform")
- + target_compile_definitions(Diligent-PublicBuildSettings INTERFACE PLATFORM_UNIVERSAL_WINDOWS=1)
- +elseif(PLATFORM_ANDROID)
- + set(GLES_SUPPORTED TRUE CACHE INTERNAL "OpenGLES is supported on Android platform")
- + set(VULKAN_SUPPORTED TRUE CACHE INTERNAL "Vulkan is supported on Android platform")
- + set(ARCHIVER_SUPPORTED TRUE CACHE INTERNAL "Archiver is supported on Android platform")
- + target_compile_definitions(Diligent-PublicBuildSettings INTERFACE PLATFORM_ANDROID=1)
- +elseif(PLATFORM_LINUX)
- + set(GL_SUPPORTED TRUE CACHE INTERNAL "OpenGL is supported on Linux platform")
- + set(VULKAN_SUPPORTED TRUE CACHE INTERNAL "Vulkan is supported on Linux platform")
- + set(ARCHIVER_SUPPORTED TRUE CACHE INTERNAL "Archiver is supported on Linux platform")
- + target_compile_definitions(Diligent-PublicBuildSettings INTERFACE PLATFORM_LINUX=1)
- +elseif(PLATFORM_MACOS)
- + set(GL_SUPPORTED TRUE CACHE INTERNAL "OpenGL is supported on MacOS platform")
- + set(VULKAN_SUPPORTED TRUE CACHE INTERNAL "Vulkan is enabled through MoltenVK on MacOS platform")
- + set(ARCHIVER_SUPPORTED TRUE CACHE INTERNAL "Archiver is supported on MacOS platform")
- + target_compile_definitions(Diligent-PublicBuildSettings INTERFACE PLATFORM_MACOS=1 PLATFORM_APPLE=1)
- +elseif(PLATFORM_IOS)
- + set(GLES_SUPPORTED TRUE CACHE INTERNAL "OpenGLES is supported on iOS platform")
- + target_compile_definitions(Diligent-PublicBuildSettings INTERFACE PLATFORM_IOS=1 PLATFORM_APPLE=1)
- +elseif(PLATFORM_TVOS)
- + target_compile_definitions(Diligent-PublicBuildSettings INTERFACE PLATFORM_TVOS=1 PLATFORM_APPLE=1)
- +elseif(PLATFORM_WEB)
- + set(GLES_SUPPORTED TRUE CACHE INTERNAL "OpenGLES is supported on Web platform")
- + set(WEBGPU_SUPPORTED TRUE CACHE INTERNAL "WebGPU is supported on Web platform")
- + set(ARCHIVER_SUPPORTED TRUE CACHE INTERNAL "Archiver is supported on Web platform")
- + target_compile_definitions(Diligent-PublicBuildSettings INTERFACE PLATFORM_WEB=1 PLATFORM_EMSCRIPTEN=1)
- +else()
- + message(FATAL_ERROR "No PLATFORM_XXX variable defined. Make sure that 'DiligentCore' folder is processed first")
- +endif()
- +target_compile_definitions(Diligent-PublicBuildSettings
- +INTERFACE
- + D3D11_SUPPORTED=$<BOOL:${D3D11_SUPPORTED}>
- + D3D12_SUPPORTED=$<BOOL:${D3D12_SUPPORTED}>
- + GL_SUPPORTED=$<BOOL:${GL_SUPPORTED}>
- + GLES_SUPPORTED=$<BOOL:${GLES_SUPPORTED}>
- + VULKAN_SUPPORTED=$<BOOL:${VULKAN_SUPPORTED}>
- + METAL_SUPPORTED=$<BOOL:${METAL_SUPPORTED}>
- + WEBGPU_SUPPORTED=$<BOOL:${WEBGPU_SUPPORTED}>
- +)
- +add_library(Diligent-BuildSettings INTERFACE)
- +if (PLATFORM_WEB)
- + target_compile_options(Diligent-BuildSettings INTERFACE
- + "-pthread"
- + "-mbulk-memory"
- + )
- +endif()
- +target_link_libraries(Diligent-BuildSettings INTERFACE Diligent-PublicBuildSettings)
- +if(PLATFORM_WIN32)
- + set(Diligent-TargetPlatform Diligent-Win32Platform)
- +elseif(PLATFORM_UNIVERSAL_WINDOWS)
- + set(Diligent-TargetPlatform Diligent-UniversalWindowsPlatform)
- +elseif(PLATFORM_ANDROID)
- + set(Diligent-TargetPlatform Diligent-AndroidPlatform)
- +elseif(PLATFORM_LINUX)
- + set(Diligent-TargetPlatform Diligent-LinuxPlatform)
- +elseif(PLATFORM_MACOS OR PLATFORM_IOS OR PLATFORM_TVOS)
- + set(Diligent-TargetPlatform Diligent-ApplePlatform)
- +elseif(PLATFORM_WEB)
- + set(Diligent-TargetPlatform Diligent-EmscriptenPlatform)
- +else()
- + message(FATAL_ERROR "No PLATFORM_XXX variable defined. Make sure that 'DiligentCore' folder is processed first")
- +endif()
- +add_library(Diligent-PlatformInterface INTERFACE)
- +target_include_directories(Diligent-PlatformInterface INTERFACE ${diligentcore_INCLUDEDIR}/DiligentCore/Platforms/interface)
- +add_library(Diligent-GraphicsEngineInterface INTERFACE)
- +target_include_directories(Diligent-GraphicsEngineInterface
- +INTERFACE
- + ${diligentcore_INCLUDEDIR}/Graphics/GraphicsEngine/interface
- +)
- +target_link_libraries(Diligent-GraphicsEngineInterface
- +INTERFACE
- + Diligent-Primitives
- + Diligent-PublicBuildSettings
- +)
-
- add_subdirectory(ThirdParty)
- add_subdirectory(TextureLoader)
- @@ -46,7 +139,6 @@ add_subdirectory(Imgui)
- add_subdirectory(NativeApp)
-
- if((PLATFORM_WIN32 OR PLATFORM_LINUX OR PLATFORM_MACOS) AND GL_SUPPORTED)
- - add_subdirectory(HLSL2GLSLConverter)
- endif()
-
- add_subdirectory(RenderStateNotation)
- @@ -55,7 +147,6 @@ if((PLATFORM_WIN32 OR PLATFORM_LINUX OR PLATFORM_MACOS) AND ARCHIVER_SUPPORTED A
- add_subdirectory(RenderStatePackager)
- endif()
-
- -add_subdirectory(Tests)
-
- # Installation instructions
- if(DILIGENT_INSTALL_TOOLS)
- @@ -65,10 +156,9 @@ if(DILIGENT_INSTALL_TOOLS)
- "${DILIGENT_TOOLS_INSTALL_LIBS_LIST}"
- DiligentTools-static # Custom target name
- DiligentTools # Folder
- - "${CMAKE_INSTALL_LIBDIR}/${DILIGENT_TOOLS_DIR}/$<CONFIG>" # Install destination
- + "${CMAKE_INSTALL_LIBDIR}" # Install destination
- )
-
- endif()
-
- # Create a custom target to run source code formatting validation command
- -add_format_validation_target(DiligentTools "${CMAKE_CURRENT_SOURCE_DIR}" DiligentTools)
|