debundle-thirdparty-cmakelist.diff 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. diff --git a/ThirdParty/CMakeLists.txt b/ThirdParty/CMakeLists.txt
  2. index 49129b9..eb437d5 100644
  3. --- a/ThirdParty/CMakeLists.txt
  4. +++ b/ThirdParty/CMakeLists.txt
  5. @@ -12,74 +12,31 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR
  6. endif()
  7. -if (NOT TARGET JPEG::JPEG)
  8. - add_subdirectory(libjpeg-9e)
  9. - install(FILES libjpeg-9e/README DESTINATION ${LICENSE_INSTALL_PATH} RENAME libjpeg-readme.txt)
  10. - list(APPEND THIRD_PARTY_TARGETS LibJpeg)
  11. -endif()
  12. -
  13. -if (NOT TARGET TIFF::TIFF)
  14. - add_subdirectory(libtiff)
  15. - install(FILES libtiff/COPYRIGHT DESTINATION ${LICENSE_INSTALL_PATH} RENAME libtiff-copyright.txt)
  16. - list(APPEND THIRD_PARTY_TARGETS LibTiff)
  17. - if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  18. - target_compile_options(LibTiff PRIVATE -Wno-shorten-64-to-32)
  19. - endif()
  20. -endif()
  21. -
  22. -if (NOT TARGET ZLIB::ZLIB)
  23. - include(zlib.cmake)
  24. - install(FILES zlib/README DESTINATION ${LICENSE_INSTALL_PATH} RENAME zlib-readme.txt)
  25. - list(APPEND THIRD_PARTY_TARGETS ZLib)
  26. - if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  27. - target_compile_options(ZLib PRIVATE -Wno-shorten-64-to-32)
  28. - endif()
  29. -endif()
  30. -
  31. -if (NOT TARGET PNG::PNG)
  32. - set(PNG_BUILD_ZLIB ON CACHE BOOL "Use find_package(zlib) to find ZLib location")
  33. - set(PNG_SHARED OFF CACHE BOOL "Build shared version of libpng")
  34. - set(PNG_TOOLS OFF CACHE BOOL "Build libpng tools")
  35. - set(PNG_TESTS OFF CACHE BOOL "Build libpng tests")
  36. - set(SKIP_INSTALL_ALL ON)
  37. - set(PNG_FRAMEWORK OFF)
  38. - if(PLATFORM_TVOS)
  39. - # libpng does not support tvOS, but it does support iOS, so we can use the iOS target
  40. - set(IOS TRUE)
  41. - endif()
  42. - add_subdirectory(libpng)
  43. - set_target_properties(png_static PROPERTIES POSITION_INDEPENDENT_CODE ON)
  44. - set_directory_root_folder(libpng DiligentTools/ThirdParty/png)
  45. - install(FILES libpng/LICENSE DESTINATION ${LICENSE_INSTALL_PATH} RENAME lpng-license.txt)
  46. - add_library(PNG::PNG ALIAS png_static)
  47. - list(APPEND THIRD_PARTY_TARGETS png_static)
  48. -
  49. - if (PLATFORM_EMSCRIPTEN)
  50. - set_targets_emscripten_properties(png_static)
  51. - endif()
  52. -endif()
  53. +pkg_check_modules(libpng REQUIRED libpng)
  54. +pkg_check_modules(libtiff REQUIRED libtiff-4)
  55. +pkg_check_modules(libjpeg REQUIRED libjpeg)
  56. +pkg_check_modules(zlib REQUIRED zlib)
  57. +pkg_check_modules(taywee_args REQUIRED taywee_args)
  58. +pkg_check_modules(nlohmann_json REQUIRED nlohmann_json)
  59. +pkg_check_modules(imgui REQUIRED imgui)
  60. +pkg_check_modules(diligentcore REQUIRED diligentcore)
  61. +pkg_check_modules(stb REQUIRED stb)
  62. +pkg_check_modules(tinygltf REQUIRED tinygltf)
  63. if (NOT DILIGENT_ARGS_DIR)
  64. - set(DILIGENT_ARGS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/args" CACHE PATH "args source directory")
  65. + set(DILIGENT_ARGS_DIR "${taywee_args_INCLUDEDIR}" CACHE PATH "args source directory")
  66. endif()
  67. if (NOT EXISTS "${DILIGENT_ARGS_DIR}/args.hxx")
  68. message(FATAL_ERROR "${DILIGENT_ARGS_DIR}/args.hxx does not exist. This indicates that args submodule is not checked out or DILIGENT_ARGS_DIR variable contains invalid path.")
  69. endif()
  70. -install(FILES "${DILIGENT_ARGS_DIR}/LICENSE" DESTINATION ${LICENSE_INSTALL_PATH} RENAME args-license.txt)
  71. if(NOT IMGUIZMO_QUAT_PATH)
  72. set(IMGUIZMO_QUAT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/imGuIZMO.quat CACHE PATH "imGuIZMO.quat source directory")
  73. endif()
  74. -install(FILES tinygltf/LICENSE DESTINATION ${LICENSE_INSTALL_PATH} RENAME tinygltf-license.txt)
  75. -install(FILES imGuIZMO.quat/license.txt DESTINATION ${LICENSE_INSTALL_PATH} RENAME imGuIZMO.quat-license.txt)
  76. -install(FILES stb/LICENSE DESTINATION "${LICENSE_INSTALL_PATH}" RENAME stb-license.txt)
  77. -install(FILES json/LICENSE.MIT DESTINATION ${LICENSE_INSTALL_PATH} RENAME json-license.txt)
  78. -
  79. -
  80. add_library(Diligent-JSON INTERFACE)
  81. -target_include_directories(Diligent-JSON INTERFACE json/single_include/nlohmann)
  82. +target_include_directories(Diligent-JSON INTERFACE ${nlohmann_json_INCLUDEDIR})
  83. # WARNING: JSON_DIAGNOSTICS must be consistently defined for all inclusions of json.hpp,
  84. # or there will be hard-to-diagnose run-time crashes.
  85. # It is required by RenderStatePackager even in release builds.
  86. @@ -87,26 +44,21 @@ target_compile_definitions(Diligent-JSON INTERFACE JSON_DIAGNOSTICS=1)
  87. if (NOT DILIGENT_DEAR_IMGUI_PATH)
  88. - set(DILIGENT_DEAR_IMGUI_PATH "${CMAKE_CURRENT_SOURCE_DIR}/imgui" CACHE PATH "imgui source directory")
  89. + set(DILIGENT_DEAR_IMGUI_PATH "${imgui_INCLUDEDIR}" CACHE PATH "imgui source directory")
  90. endif()
  91. if (NOT EXISTS "${DILIGENT_DEAR_IMGUI_PATH}/imgui.h")
  92. message(FATAL_ERROR "${DILIGENT_DEAR_IMGUI_PATH}/imgui.h does not exist. This inidcates that imgui submodule is not checked out or DILIGENT_DEAR_IMGUI_PATH variable contains invalid path.")
  93. endif()
  94. -install(FILES "${DILIGENT_DEAR_IMGUI_PATH}/LICENSE.txt" DESTINATION ${LICENSE_INSTALL_PATH} RENAME imgui-license.txt)
  95. -if (DILIGENT_ENABLE_DRACO AND (NOT TARGET draco) AND (NOT TARGET draco_static))
  96. - message("Fetching Draco repository - this may take a few moments...")
  97. - include(FetchContent)
  98. - FetchContent_Declare(
  99. - draco
  100. - GIT_REPOSITORY https://github.com/google/draco
  101. - GIT_TAG 1.5.6
  102. - )
  103. - FetchContent_MakeAvailable(draco)
  104. - set_directory_root_folder(${draco_SOURCE_DIR} DiligentTools/ThirdParty/draco)
  105. +if (DILIGENT_ENABLE_DRACO)
  106. + pkg_check_modules(draco REQUIRED draco)
  107. +endif()
  108. +
  109. +if(DILIGENT_USE_RAPIDJSON)
  110. + pkg_check_modules(rapidjson REQUIRED RapidJSON)
  111. endif()
  112. -if(DILIGENT_INSTALL_TOOLS)
  113. +if(0)
  114. install(TARGETS ${THIRD_PARTY_TARGETS}
  115. ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}/${DILIGENT_TOOLS_DIR}/$<CONFIG>"
  116. LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}/${DILIGENT_TOOLS_DIR}/$<CONFIG>"