From fdf63182182c6f7bad0d7f71de89c9611e1f54d4 Mon Sep 17 00:00:00 2001
From: Ian McInerney <ian.s.mcinerney@ieee.org>
Date: Thu, 28 Jan 2021 00:23:17 +0000
Subject: [PATCH] Ensure cmake commands depend on the cmake file they use

Without this dependency, the build stage won't rerun
if the CMake file changes on disk.
---
 CMakeModules/Functions.cmake        | 1 +
 Documentation/docset/CMakeLists.txt | 1 +
 common/CMakeLists.txt               | 1 +
 resources/CMakeLists.txt            | 1 +
 4 files changed, 4 insertions(+)

diff --git a/CMakeModules/Functions.cmake b/CMakeModules/Functions.cmake
index aaf6ca9964..7de1f709ad 100644
--- a/CMakeModules/Functions.cmake
+++ b/CMakeModules/Functions.cmake
@@ -88,6 +88,7 @@ function( generate_lemon_grammar TGT GRAMMAR_DIR CONSUMING_FILE GRAMMAR_FILE )
         COMMENT "Running Lemon on ${GRAMMAR_FILE} to generate ${GRAMMAR_DIR}/${GRAMMAR_BASE}.c"
         DEPENDS lemon
                 ${CMAKE_CURRENT_SOURCE_DIR}/${GRAMMAR_FILE}
+                ${CMAKE_MODULE_PATH}/BuildSteps/LemonParserGenerator.cmake
         WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${GRAMMAR_DIR}
     )
 
diff --git a/Documentation/docset/CMakeLists.txt b/Documentation/docset/CMakeLists.txt
index b6f1d84298..51e99b62c6 100644
--- a/Documentation/docset/CMakeLists.txt
+++ b/Documentation/docset/CMakeLists.txt
@@ -67,6 +67,7 @@ if(DOXYGEN_FOUND AND DOXYTAG2ZEALDB AND SED)
         WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/
         OUTPUT ${DOCSET_DOXYFILE}
         DEPENDS ${CMAKE_BINARY_DIR}/kicad_build_version.h
+                ${CMAKE_MODULE_PATH}/BuildSteps/CreateDocsetDoxyfile.cmake
         COMMENT "Modifying doxyfile for docset creation"
         )
 
diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt
index 00308c80f3..527c49fdd5 100644
--- a/common/CMakeLists.txt
+++ b/common/CMakeLists.txt
@@ -149,6 +149,7 @@ add_custom_target(
         -P ${CMAKE_MODULE_PATH}/BuildSteps/WriteVersionHeader.cmake
     WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
     BYPRODUCTS ${CMAKE_BINARY_DIR}/kicad_build_version.h
+    DEPENDS ${CMAKE_MODULE_PATH}/BuildSteps/WriteVersionHeader.cmake
     COMMENT "Generating version string header"
     )
 
diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt
index 7c345ea8f4..d5406f27d6 100644
--- a/resources/CMakeLists.txt
+++ b/resources/CMakeLists.txt
@@ -13,6 +13,7 @@ elseif( UNIX )
             -DBUILD_PATH=${PROJECT_BINARY_DIR}
             -DCMAKE_MODULE_PATH=${PROJECT_SOURCE_DIR}/CMakeModules
             -P ${CMAKE_MODULE_PATH}/BuildSteps/WritePlatformMetadata_linux.cmake
+        DEPENDS ${CMAKE_MODULE_PATH}/BuildSteps/WritePlatformMetadata_linux.cmake
         COMMENT "Configuring Linux appdata"
         )