From 2e7805896a39a1c1c1b455571d75c62c8abe9a39 Mon Sep 17 00:00:00 2001
From: Lars Bilke <lars.bilke@ufz.de>
Date: Wed, 7 Aug 2019 10:27:46 +0200
Subject: [PATCH] [cmake] Use CONFIGURE_DEPENDS option in file(GLOB).

This automatically reruns CMake when new files are added.
---
 Applications/DataExplorer/DataExplorer.cmake              | 2 +-
 Applications/DataExplorer/DataView/CMakeLists.txt         | 2 +-
 .../DataExplorer/DataView/DiagramView/CMakeLists.txt      | 2 +-
 .../DataExplorer/DataView/StratView/CMakeLists.txt        | 2 +-
 Applications/DataExplorer/VtkVis/CMakeLists.txt           | 2 +-
 scripts/cmake/Functions.cmake                             | 8 ++++----
 6 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/Applications/DataExplorer/DataExplorer.cmake b/Applications/DataExplorer/DataExplorer.cmake
index 10de32e5976..6efad206252 100644
--- a/Applications/DataExplorer/DataExplorer.cmake
+++ b/Applications/DataExplorer/DataExplorer.cmake
@@ -16,7 +16,7 @@ include_directories(
 
 # Put moc files in a project folder
 source_group("Moc Files" REGULAR_EXPRESSION "moc_.*")
-file(GLOB UIS *.ui)
+file(GLOB UIS CONFIGURE_DEPENDS *.ui)
 source_group("UI Files" FILES ${UIS})
 
 # Application icon
diff --git a/Applications/DataExplorer/DataView/CMakeLists.txt b/Applications/DataExplorer/DataView/CMakeLists.txt
index 4a0daf108ad..06a747961a4 100644
--- a/Applications/DataExplorer/DataView/CMakeLists.txt
+++ b/Applications/DataExplorer/DataView/CMakeLists.txt
@@ -100,7 +100,7 @@ source_group("Dialog Header Files" REGULAR_EXPRESSION "[.]*Dialog.h")
 source_group("Dialog Source Files" REGULAR_EXPRESSION "[.]*Dialog.cpp")
 source_group("Data Model Header Files" REGULAR_EXPRESSION "[.]*Item.h|[.]*Model.h|[.]*View.h")
 source_group("Data Model Source Files" REGULAR_EXPRESSION "[.]*Item.cpp|[.]*Model.cpp|[.]*View.cpp")
-file(GLOB UIS *.ui)
+file(GLOB UIS CONFIGURE_DEPENDS *.ui)
 source_group("UI Files" FILES ${UIS})
 
 set(SOURCE_DIR_REL ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
diff --git a/Applications/DataExplorer/DataView/DiagramView/CMakeLists.txt b/Applications/DataExplorer/DataView/DiagramView/CMakeLists.txt
index 1cf6fa4490d..c9503d12f2e 100644
--- a/Applications/DataExplorer/DataView/DiagramView/CMakeLists.txt
+++ b/Applications/DataExplorer/DataView/DiagramView/CMakeLists.txt
@@ -30,7 +30,7 @@ include_directories(
     ${GUI_SOURCE_DIR_REL}/DataView
 )
 
-file(GLOB_RECURSE UIS *.ui)
+file(GLOB_RECURSE UIS CONFIGURE_DEPENDS *.ui)
 source_group("UI Files" FILES ${UIS})
 
 add_library(QtDiagramView
diff --git a/Applications/DataExplorer/DataView/StratView/CMakeLists.txt b/Applications/DataExplorer/DataView/StratView/CMakeLists.txt
index 69be33c00f4..b17d9286bc7 100644
--- a/Applications/DataExplorer/DataView/StratView/CMakeLists.txt
+++ b/Applications/DataExplorer/DataView/StratView/CMakeLists.txt
@@ -22,7 +22,7 @@ include_directories(
     ${GUI_SOURCE_DIR_REL}/Base
 )
 
-file(GLOB_RECURSE UI_FILES *.ui)
+file(GLOB_RECURSE UI_FILES CONFIGURE_DEPENDS *.ui)
 source_group("UI Files" FILES ${UI_FILES})
 
 add_library(QtStratView
diff --git a/Applications/DataExplorer/VtkVis/CMakeLists.txt b/Applications/DataExplorer/VtkVis/CMakeLists.txt
index 839a590fe0f..d8bb0b9b8e3 100644
--- a/Applications/DataExplorer/VtkVis/CMakeLists.txt
+++ b/Applications/DataExplorer/VtkVis/CMakeLists.txt
@@ -105,7 +105,7 @@ source_group("Filter Header Files" REGULAR_EXPRESSION "[.]*Filter.h")
 source_group("Filter Source Files" REGULAR_EXPRESSION "[.]*Filter.cpp")
 source_group("Source Header Files" REGULAR_EXPRESSION "[.]*Source.h")
 source_group("Source Source Files" REGULAR_EXPRESSION "[.]*Source.cpp")
-file(GLOB_RECURSE UIS *.ui)
+file(GLOB_RECURSE UIS CONFIGURE_DEPENDS *.ui)
 source_group("UI Files" FILES ${UIS})
 
 set(SOURCE_DIR_REL ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
diff --git a/scripts/cmake/Functions.cmake b/scripts/cmake/Functions.cmake
index c09da9094f6..575dde5567a 100644
--- a/scripts/cmake/Functions.cmake
+++ b/scripts/cmake/Functions.cmake
@@ -14,9 +14,9 @@ macro(GET_SOURCE_FILES SOURCE_FILES)
     endif()
 
     # Get all files in the directory
-    file(GLOB GET_SOURCE_FILES_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${DIR}/*.h)
-    file(GLOB GET_SOURCE_FILES_TEMPLATES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${DIR}/*.tpp)
-    file(GLOB GET_SOURCE_FILES_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${DIR}/*.cpp)
+    file(GLOB GET_SOURCE_FILES_HEADERS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS ${DIR}/*.h)
+    file(GLOB GET_SOURCE_FILES_TEMPLATES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS ${DIR}/*.tpp)
+    file(GLOB GET_SOURCE_FILES_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS ${DIR}/*.cpp)
 
     set(${SOURCE_FILES} ${GET_SOURCE_FILES_HEADERS} ${GET_SOURCE_FILES_TEMPLATES} ${GET_SOURCE_FILES_SOURCES})
     list(LENGTH ${SOURCE_FILES} NUM_FILES)
@@ -77,4 +77,4 @@ function(add_autogen_include target)
         target_include_directories(${target} PUBLIC
             ${CMAKE_CURRENT_BINARY_DIR}/${target}_autogen/include)
     endif()
-endfunction()
\ No newline at end of file
+endfunction()
-- 
GitLab