diff --git a/AssetLoader/CMakeLists.txt b/AssetLoader/CMakeLists.txt index b3d78c7..822787b 100644 --- a/AssetLoader/CMakeLists.txt +++ b/AssetLoader/CMakeLists.txt @@ -44,3 +44,7 @@ set_target_properties(Diligent-AssetLoader PROPERTIES FOLDER DiligentTools ) + +if(INSTALL_DILIGENT_TOOLS) + install_tools_lib(Diligent-AssetLoader) +endif() diff --git a/AssetLoader/interface/GLTFLoader.h b/AssetLoader/interface/GLTFLoader.h index 3544da5..f99cdea 100644 --- a/AssetLoader/interface/GLTFLoader.h +++ b/AssetLoader/interface/GLTFLoader.h @@ -26,10 +26,10 @@ #include #include -#include "RefCntAutoPtr.h" -#include "RenderDevice.h" -#include "DeviceContext.h" -#include "AdvancedMath.h" +#include "../../../DiligentCore/Graphics/GraphicsEngine/interface/RenderDevice.h" +#include "../../../DiligentCore/Graphics/GraphicsEngine/interface/DeviceContext.h" +#include "../../../DiligentCore/Common/interface/RefCntAutoPtr.h" +#include "../../../DiligentCore/Common/interface/AdvancedMath.h" namespace tinygltf { diff --git a/CMakeLists.txt b/CMakeLists.txt index 57f253c..a696cc9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,37 @@ cmake_minimum_required (VERSION 3.6) option(DILIGENT_BUILD_RENDER_SCRIPT "Build render script" ON) + +file(RELATIVE_PATH DILIGENT_TOOLS_DIR "${CMAKE_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}") + +if(NOT INSTALL_DILIGENT_TOOLS) + set(INSTALL_DILIGENT_TOOLS ${INSTALL_DILIGENT_CORE}) +endif() + +function(install_tools_lib _TARGET) + get_target_relative_dir(${_TARGET} TARGET_RELATIVE_PATH) + + get_target_property(TARGET_TYPE ${_TARGET} TYPE) + 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") + elseif(TARGET_TYPE STREQUAL SHARED_LIBRARY) + install(TARGETS ${_TARGET} + ARCHIVE DESTINATION "lib/${DILIGENT_TOOLS_DIR}/$" + LIBRARY DESTINATION "bin/${DILIGENT_TOOLS_DIR}/$" + RUNTIME DESTINATION "bin/${DILIGENT_TOOLS_DIR}/$" + ) + if (DILIGENT_INSTALL_PDB) + install(FILES $ DESTINATION "bin/${DILIGENT_TOOLS_DIR}/$" OPTIONAL) + endif() + endif() + + if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/interface") + install(DIRECTORY interface + DESTINATION "headers/${TARGET_RELATIVE_PATH}/" + ) + endif() +endfunction() add_subdirectory(ThirdParty) add_subdirectory(TextureLoader) @@ -15,3 +46,17 @@ if(PLATFORM_WIN32 AND GL_SUPPORTED) add_subdirectory(HLSL2GLSLConverter) endif() + +# Installation instructions +if(INSTALL_DILIGENT_TOOLS) + + install_combined_static_lib( + "${CMAKE_STATIC_LIBRARY_PREFIX}DiligentTools${CMAKE_STATIC_LIBRARY_SUFFIX}" + "${DILIGENT_TOOLS_INSTALL_LIBS_LIST}" + DiligentTools-static # Custom target name + DiligentTools # Folder + "lib/${DILIGENT_TOOLS_DIR}/$" # Install destination + ) + + install(FILES License.txt DESTINATION "Licenses/${DILIGENT_TOOLS_DIR}" RENAME DiligentEngine-License.txt) +endif() diff --git a/HLSL2GLSLConverter/CMakeLists.txt b/HLSL2GLSLConverter/CMakeLists.txt index b712598..4235607 100644 --- a/HLSL2GLSLConverter/CMakeLists.txt +++ b/HLSL2GLSLConverter/CMakeLists.txt @@ -35,3 +35,9 @@ set_target_properties(HLSL2GLSLConverter PROPERTIES FOLDER DiligentTools ) + +install(TARGETS HLSL2GLSLConverter + ARCHIVE DESTINATION "lib/${DILIGENT_TOOLS_DIR}/$" + LIBRARY DESTINATION "lib/${DILIGENT_TOOLS_DIR}/$" + RUNTIME DESTINATION "bin/${DILIGENT_TOOLS_DIR}/$" +) diff --git a/Imgui/CMakeLists.txt b/Imgui/CMakeLists.txt index ecca7b4..c78762c 100644 --- a/Imgui/CMakeLists.txt +++ b/Imgui/CMakeLists.txt @@ -101,3 +101,7 @@ set_target_properties(Diligent-Imgui PROPERTIES FOLDER DiligentTools ) + +if(INSTALL_DILIGENT_TOOLS) + install_tools_lib(Diligent-Imgui) +endif() diff --git a/Imgui/interface/ImGuiUtils.h b/Imgui/interface/ImGuiUtils.h index 62e3e45..7bbe806 100644 --- a/Imgui/interface/ImGuiUtils.h +++ b/Imgui/interface/ImGuiUtils.h @@ -26,8 +26,8 @@ #include #include -#include "imgui.h" -#include "imgui_internal.h" +#include "../../ThirdParty/imgui/imgui.h" +#include "../../ThirdParty/imgui/imgui_internal.h" namespace Diligent { diff --git a/TextureLoader/CMakeLists.txt b/TextureLoader/CMakeLists.txt index 7f394f3..2730f5b 100644 --- a/TextureLoader/CMakeLists.txt +++ b/TextureLoader/CMakeLists.txt @@ -51,4 +51,8 @@ set_target_properties(Diligent-TextureLoader PROPERTIES FOLDER DiligentTools -) \ No newline at end of file +) + +if(INSTALL_DILIGENT_TOOLS) + install_tools_lib(Diligent-TextureLoader) +endif() diff --git a/ThirdParty/CMakeLists.txt b/ThirdParty/CMakeLists.txt index 93fe6ba..e636d3b 100644 --- a/ThirdParty/CMakeLists.txt +++ b/ThirdParty/CMakeLists.txt @@ -17,3 +17,27 @@ install(FILES zlib-1.2.8/README DESTINATION ${LICENSE_INSTALL_PATH} RENAME zlib-readme.txt) install(FILES imgui/LICENSE.txt DESTINATION ${LICENSE_INSTALL_PATH} RENAME imgui-license.txt) install(FILES imGuIZMO.quat/license.txt DESTINATION ${LICENSE_INSTALL_PATH} RENAME imGuIZMO.quat-license.txt) + +if(INSTALL_DILIGENT_TOOLS) + set(THIRD_PARTY_TARGETS LibJpeg LibPng LibTiff Lua ZLib) + install(TARGETS ${THIRD_PARTY_TARGETS} + ARCHIVE DESTINATION "lib/${DILIGENT_TOOLS_DIR}/$" + LIBRARY DESTINATION "lib/${DILIGENT_TOOLS_DIR}/$" + RUNTIME DESTINATION "bin/${DILIGENT_TOOLS_DIR}/$" + ) + + list(APPEND DILIGENT_TOOLS_INSTALL_LIBS_LIST ${THIRD_PARTY_TARGETS}) + set(DILIGENT_TOOLS_INSTALL_LIBS_LIST ${DILIGENT_TOOLS_INSTALL_LIBS_LIST} CACHE INTERNAL "Diligent tools libraries installation list") + + install( + FILES + imgui/imconfig.h + imgui/imgui.h + imgui/imgui_internal.h + imgui/imstb_rectpack.h + imgui/imstb_textedit.h + imgui/imstb_truetype.h + DESTINATION + "headers/${THIRD_PARTY_DIR}/imgui" + ) +endif()