From 377349ca4bfad3bfdd0905d3635dd98cca7b2ee1 Mon Sep 17 00:00:00 2001 From: Nicolas Mellado Date: Tue, 9 Feb 2021 15:19:33 +0100 Subject: [PATCH] Add dependencies between external targets --- external/CMakeLists.txt | 2 ++ external/Core/CMakeLists.txt | 8 ++++++-- external/Engine/CMakeLists.txt | 8 +++++++- external/IO/CMakeLists.txt | 4 ++++ 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/external/CMakeLists.txt b/external/CMakeLists.txt index 87c1ce9d12c..bffb5d66508 100644 --- a/external/CMakeLists.txt +++ b/external/CMakeLists.txt @@ -75,6 +75,8 @@ else() add_subdirectory(Core) # add Engine dependencies add_subdirectory(Engine) + # set dependencies between external targets + add_dependencies(EngineExternals CoreExternals) # add IO dependencies, all activated by default by this cmake script option( RADIUM_IO_ASSIMP "Provide loaders based on Assimp library" ON ) option( RADIUM_IO_TINYPLY "Provide loaders based on TinyPly library" ON ) diff --git a/external/Core/CMakeLists.txt b/external/Core/CMakeLists.txt index 573509960f4..0dd2e5fecb8 100644 --- a/external/Core/CMakeLists.txt +++ b/external/Core/CMakeLists.txt @@ -13,6 +13,8 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) string(REPLACE ";" "" indent_string "${CMAKE_MESSAGE_INDENT}") set(indent_string "${indent_string}--") +add_custom_target( CoreExternals ) + if (NOT DEFINED Eigen3_DIR) CheckExternalsPrerequisite() StatusMessage("" "eigen3" "remote git") @@ -29,9 +31,9 @@ if (NOT DEFINED Eigen3_DIR) -DBUILD_TESTING=OFF "-DCMAKE_MESSAGE_INDENT=${indent_string}\;" ) + add_dependencies( CoreExternals Eigen3 ) else () StatusMessage("" "eigen3" ${Eigen3_DIR}) - add_custom_target(Eigen3) endif () @@ -53,6 +55,7 @@ if (NOT DEFINED OpenMesh_DIR) -DBUILD_APPS=OFF "-DCMAKE_MESSAGE_INDENT=${indent_string}\;" ) + add_dependencies( CoreExternals OpenMesh ) else() StatusMessage("" "OpenMesh" ${OpenMesh_DIR}) endif() @@ -73,6 +76,7 @@ if (NOT DEFINED cpplocate_DIR OR NOT cpplocate_DIR) -DOPTION_BUILD_DOCS=OFF -DCMAKE_MESSAGE_INDENT=${indent_string}\; ) + add_dependencies( CoreExternals cpplocate ) else() StatusMessage("" "cpplocate" ${cpplocate_DIR}) -endif() +endif() \ No newline at end of file diff --git a/external/Engine/CMakeLists.txt b/external/Engine/CMakeLists.txt index c9d5460c029..6ef8350455d 100644 --- a/external/Engine/CMakeLists.txt +++ b/external/Engine/CMakeLists.txt @@ -17,6 +17,8 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) string(REPLACE ";" "" indent_string "${CMAKE_MESSAGE_INDENT}") set(indent_string "${indent_string}--") +add_custom_target( EngineExternals ) + if (NOT DEFINED glm_DIR) CheckExternalsPrerequisite() StatusMessage("[EngineExternal]" "glm" "remote git") @@ -35,6 +37,7 @@ if (NOT DEFINED glm_DIR) ) set(glm_DIR ${CMAKE_INSTALL_PREFIX}/lib/cmake/glm) + add_dependencies( EngineExternals glm ) else() #because other might depends on it, but it's already done, define a dummy target add_custom_target(glm) @@ -62,6 +65,7 @@ if (NOT DEFINED glbinding_DIR) ) set(glbinding_DIR ${CMAKE_INSTALL_PREFIX}/share/glbinding) + add_dependencies( EngineExternals glbinding ) else() add_custom_target(glbinding) StatusMessage("" "glbinding" "${glbinding_DIR}") @@ -83,7 +87,7 @@ if (NOT DEFINED globjects_DIR) GIT_PROGRESS TRUE PATCH_COMMAND git reset --hard && git apply -v --ignore-whitespace "${CMAKE_CURRENT_LIST_DIR}/patches/globjects.patch" INSTALL_DIR "${CMAKE_INSTALL_PREFIX}" - DEPENDS glbinding glm Eigen3 + DEPENDS glbinding glm CMAKE_ARGS ${RADIUM_EXTERNAL_CMAKE_OPTIONS} -DOPTION_BUILD_DOCS=OFF @@ -96,6 +100,7 @@ if (NOT DEFINED globjects_DIR) ) set(globjects_DIR ${CMAKE_INSTALL_PREFIX}/share/globjects) + add_dependencies( EngineExternals globjects ) else() StatusMessage("" "globjects" "${globjects_DIR}") endif() @@ -114,6 +119,7 @@ if (NOT DEFINED stb_DIR) COMMAND ${CMAKE_COMMAND} -E copy_if_different /stb_image_write.h ${CMAKE_INSTALL_PREFIX}/include/stb/ INSTALL_COMMAND "" ) + add_dependencies( EngineExternals stb ) else() StatusMessage("" "stb" "${stb_DIR}") message(STATUS "Installing stb_image.h to ${CMAKE_INSTALL_PREFIX}/include") diff --git a/external/IO/CMakeLists.txt b/external/IO/CMakeLists.txt index 019107a5119..9b8a8160b91 100644 --- a/external/IO/CMakeLists.txt +++ b/external/IO/CMakeLists.txt @@ -17,6 +17,8 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) string(REPLACE ";" "" indent_string "${CMAKE_MESSAGE_INDENT}") set(indent_string "${indent_string}--") +add_custom_target( IOExternals ) + if (RADIUM_IO_ASSIMP) if (NOT DEFINED assimp_DIR) CheckExternalsPrerequisite() @@ -39,6 +41,7 @@ if (RADIUM_IO_ASSIMP) -DASSIMP_NO_EXPORT=True "-DCMAKE_MESSAGE_INDENT=${indent_string}\;" ) + add_dependencies( IOExternals assimp ) else() StatusMessage("" "assimp" "${assimp_DIR}") endif() @@ -60,6 +63,7 @@ if(RADIUM_IO_TINYPLY) -DSHARED_LIB=TRUE "-DCMAKE_MESSAGE_INDENT=${indent_string}\;" ) + add_dependencies( IOExternals tinyply ) else() StatusMessage("[IOExternal]" "tinyply" "${tinyply_DIR}") endif()