diff --git a/AssetLoader/CMakeLists.txt b/AssetLoader/CMakeLists.txt index 2d147c2..540ad49 100644 --- a/AssetLoader/CMakeLists.txt +++ b/AssetLoader/CMakeLists.txt @@ -28,6 +28,8 @@ PUBLIC interface PRIVATE include + ${diligentcore_INCLUDEDIR} + ${tinygltf_INCLUDEDIR} ) source_group("source" FILES ${SOURCE}) @@ -46,38 +48,14 @@ PRIVATE Diligent-JSON ) -if (TARGET draco OR TARGET draco_static) - if(TARGET draco) - set(DRACO_TARGET draco) - else() - set(DRACO_TARGET draco_static) - endif() - target_link_libraries(Diligent-AssetLoader PRIVATE ${DRACO_TARGET}) - get_target_property(DRACO_SOURCE_DIR ${DRACO_TARGET} SOURCE_DIR) +if (DILIGENT_ENABLE_DRACO) + target_link_libraries(Diligent-AssetLoader PRIVATE ${draco_LINK_LIBRARIES}) target_compile_definitions(Diligent-AssetLoader PRIVATE TINYGLTF_ENABLE_DRACO) - target_include_directories(Diligent-AssetLoader PRIVATE "${DRACO_SOURCE_DIR}/src" "${CMAKE_BINARY_DIR}") -elseif (DRACO_PATH) - find_library(DRACO_LIBRARY NAMES draco draco_static PATHS "${DRACO_PATH}/lib") - if(DRACO_LIBRARY) - target_link_libraries(Diligent-AssetLoader PRIVATE ${DRACO_LIBRARY}) - target_include_directories(Diligent-AssetLoader PRIVATE "${DRACO_PATH}/include") - target_compile_definitions(Diligent-AssetLoader PRIVATE TINYGLTF_ENABLE_DRACO) - else() - message(WARNING "Unable to find draco library. Draco support will be disabled") - endif() + target_include_directories(Diligent-AssetLoader PRIVATE "${draco_INCLUDEDIR}") endif() if(DILIGENT_USE_RAPIDJSON) - FetchContent_DeclareShallowGit( - rapidjson - GIT_REPOSITORY https://github.com/Tencent/rapidjson - GIT_TAG ab1842a2dae061284c0a62dca1cc6d5e7e37e346 - ) - set(RAPIDJSON_BUILD_DOC OFF) - set(RAPIDJSON_BUILD_EXAMPLES OFF) - set(RAPIDJSON_BUILD_TESTS OFF) - FetchContent_MakeAvailable(rapidjson) - target_include_directories(Diligent-AssetLoader PRIVATE ${rapidjson_SOURCE_DIR}/include/rapidjson) + target_include_directories(Diligent-AssetLoader PRIVATE ${rapidjson_INCLUDEDIR}/rapidjson) target_compile_definitions(Diligent-AssetLoader PRIVATE TINYGLTF_USE_RAPIDJSON TINYGLTF_USE_RAPIDJSON_CRTALLOCATOR) endif() diff --git a/Imgui/CMakeLists.txt b/Imgui/CMakeLists.txt index 73b412c..d38827c 100644 --- a/Imgui/CMakeLists.txt +++ b/Imgui/CMakeLists.txt @@ -52,8 +52,9 @@ add_library(Diligent-Imgui STATIC ${IMGUIZMO_QUAT_SOURCE} ) -if(TARGET imgui) - target_link_libraries(Diligent-Imgui PRIVATE imgui) +if(1) + target_link_libraries(Diligent-Imgui PRIVATE ${imgui_LINK_LIBRARIES}) + target_include_directories(Diligent-Imgui PRIVATE ${imgui_INCLUDEDIR} ${diligentcore_INCLUDEDIR}) else() set(DEAR_IMGUI_INTERFACE ${DILIGENT_DEAR_IMGUI_PATH}/imgui.h diff --git a/NativeApp/CMakeLists.txt b/NativeApp/CMakeLists.txt index 8a183d4..8297947 100644 --- a/NativeApp/CMakeLists.txt +++ b/NativeApp/CMakeLists.txt @@ -462,6 +462,8 @@ if(PLATFORM_WIN32) target_include_directories(Diligent-NativeAppBase PUBLIC include/Win32 + PRIVATE + ${diligentcore_INCLUDEDIR} ) elseif(PLATFORM_UNIVERSAL_WINDOWS) @@ -495,6 +497,8 @@ elseif(PLATFORM_LINUX) target_include_directories(Diligent-NativeAppBase PUBLIC include/Linux + PRIVATE + ${diligentcore_INCLUDEDIR} ) if(VULKAN_SUPPORTED) find_library(XCB_LIBRARY xcb) @@ -507,6 +511,8 @@ elseif(PLATFORM_MACOS) target_include_directories(Diligent-NativeAppBase PUBLIC src/MacOS include/MacOS + PRIVATE + ${diligentcore_INCLUDEDIR} ) elseif(PLATFORM_IOS) target_include_directories(Diligent-NativeAppBase PUBLIC @@ -528,3 +534,7 @@ source_group("include" FILES ${INCLUDE}) set_target_properties(Diligent-NativeAppBase PROPERTIES FOLDER DiligentTools ) + +if(DILIGENT_INSTALL_TOOLS) + install_tools_lib(Diligent-NativeAppBase) +endif() diff --git a/RenderStateNotation/CMakeLists.txt b/RenderStateNotation/CMakeLists.txt index 2f76ec8..6129db8 100644 --- a/RenderStateNotation/CMakeLists.txt +++ b/RenderStateNotation/CMakeLists.txt @@ -2,6 +2,7 @@ cmake_minimum_required (VERSION 3.6) project(Diligent-RenderStateNotation CXX) +set(Diligent-GraphicsEngine_SOURCE_DIR ${diligentcore_INCLUDEDIR}/DiligentCore/Graphics/GraphicsEngine) set(REFLECTED ${Diligent-GraphicsEngine_SOURCE_DIR}/interface/BlendState.h ${Diligent-GraphicsEngine_SOURCE_DIR}/interface/DepthStencilState.h @@ -26,8 +27,8 @@ file(COPY ../.clang-format DESTINATION "${RSN_PARSER_GENERATED_HEADERS_DIR}") find_package(Python3 REQUIRED) -set(LIBCLANG_INSTALL_CMD ${Python3_EXECUTABLE} -m pip install libclang==16.0.6) -set(JINJA2_INSTALL_CMD ${Python3_EXECUTABLE} -m pip install jinja2) +set(LIBCLANG_INSTALL_CMD ${Python3_EXECUTABLE} -m pip install --user libclang==16.0.6) +set(JINJA2_INSTALL_CMD ${Python3_EXECUTABLE} -m pip install --user jinja2) if(${Python3_VERSION} VERSION_GREATER_EQUAL "3.12") set(LIBCLANG_INSTALL_CMD ${LIBCLANG_INSTALL_CMD} --break-system-packages) @@ -65,15 +66,9 @@ source_group("generated" FILES ${GENERATED}) source_group("source" FILES ${SOURCE}) source_group("scripts" FILES ${SCRIPTS}) -if (EXISTS "${CLANG_FORMAT_EXECUTABLE}") - set(FORMATTING_COMMAND "${CLANG_FORMAT_EXECUTABLE}" -i *.hpp --verbose) -else() - set(FORMATTING_COMMAND "${CMAKE_COMMAND}" -E echo "clang-format executable is not found: RSN parser headers will not be formatted") -endif() add_custom_command(OUTPUT ${GENERATED} COMMAND ${Python3_EXECUTABLE} "${CMAKE_CURRENT_SOURCE_DIR}/scripts/cxx_generator.py" --dir "." --files ${REFLECTED} - COMMAND ${FORMATTING_COMMAND} WORKING_DIRECTORY "${RSN_PARSER_GENERATED_HEADERS_DIR}" DEPENDS ${REFLECTED} COMMENT "Generating RSN Parser Headers...") @@ -91,7 +86,10 @@ PUBLIC interface PRIVATE include - ../../DiligentCore/Graphics/Archiver/interface + ${diligentcore_INCLUDEDIR} + ${diligentcore_INCLUDEDIR}/DiligentCore/Graphics/GraphicsEngine/interface + ${diligentcore_INCLUDEDIR}/DiligentCore/Graphics/Archiver/interface + ${nlohmann_json_INCLUDEDIR} ${RSN_PARSER_HEADERS_DIR} ) diff --git a/RenderStatePackager/CMakeLists.txt b/RenderStatePackager/CMakeLists.txt index ab34ffa..87cadb3 100644 --- a/RenderStatePackager/CMakeLists.txt +++ b/RenderStatePackager/CMakeLists.txt @@ -22,6 +22,12 @@ add_library(Diligent-RenderStatePackagerLib STATIC target_include_directories(Diligent-RenderStatePackagerLib PUBLIC include +PRIVATE + ${diligentcore_INCLUDEDIR} +) +target_link_directories(Diligent-RenderStatePackagerLib +PRIVATE + ${diligentcore_LIBDIR} ) target_link_libraries(Diligent-RenderStatePackagerLib @@ -35,29 +41,6 @@ PUBLIC set_common_target_properties(Diligent-RenderStatePackagerLib) -add_executable(Diligent-RenderStatePackager - src/main.cpp - README.md -) -set_common_target_properties(Diligent-RenderStatePackager) - -target_link_libraries(Diligent-RenderStatePackager -PRIVATE - Diligent-BuildSettings - Diligent-Common - Diligent-RenderStatePackagerLib -) -target_include_directories(Diligent-RenderStatePackager -PRIVATE - include - ${DILIGENT_ARGS_DIR} -) - -if (DILIGENT_INSTALL_TOOLS) - install(TARGETS Diligent-RenderStatePackager RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}/${DILIGENT_TOOLS_DIR}/$" OPTIONAL) +if(DILIGENT_INSTALL_TOOLS) + install_tools_lib(Diligent-RenderStatePackagerLib) endif() - - -set_target_properties(Diligent-RenderStatePackagerLib Diligent-RenderStatePackager PROPERTIES - FOLDER DiligentTools -) diff --git a/TextureLoader/CMakeLists.txt b/TextureLoader/CMakeLists.txt index eb1150b..9ffcd31 100644 --- a/TextureLoader/CMakeLists.txt +++ b/TextureLoader/CMakeLists.txt @@ -34,17 +34,18 @@ set(SOURCE add_library(Diligent-TextureLoader STATIC ${SOURCE} ${INCLUDE} ${INTERFACE}) set_common_target_properties(Diligent-TextureLoader) -set_property(SOURCE src/PNGCodec.c src/Image.cpp -APPEND PROPERTY INCLUDE_DIRECTORIES - "${CMAKE_CURRENT_SOURCE_DIR}/../ThirdParty/libpng" # png_static target does not define any public include directories - "${CMAKE_CURRENT_BINARY_DIR}/../ThirdParty/libpng" # pnglibconf.h is generated in the binary directory -) target_include_directories(Diligent-TextureLoader PUBLIC interface PRIVATE include + ${diligentcore_INCLUDEDIR} + ${stb_INCLUDEDIR} + ${libpng_INCLUDEDIR} + ${libtiff_INCLUDEDIR} + ${libjpeg_INCLUDEDIR} + ${zlib_INCLUDEDIR} ) source_group("source" FILES ${SOURCE}) @@ -59,15 +60,15 @@ PRIVATE Diligent-GraphicsEngineInterface Diligent-GraphicsAccessories Diligent-GraphicsTools - PNG::PNG - TIFF::TIFF - ZLIB::ZLIB + ${libpng_LINK_LIBRARIES} + ${libtiff_LINK_LIBRARIES} + ${zlib_LINK_LIBRARIES} ) -if (NOT DILIGENT_EXTERNAL_LIBJPEG) +if (1) target_link_libraries(Diligent-TextureLoader PRIVATE - JPEG::JPEG + ${libjpeg_LINK_LIBRARIES} ) else() target_link_libraries(Diligent-TextureLoader