Incorrect dependency tracking when using Ninja build tool
Description
While doing a quick "does every version compile?" run, I noticed that in versions without source changes the header file containing the version string would get rebuilt, but the programs not relinked afterwards. This might be a bug in Ninja or in the way we specify dependencies.
…
Executing: ninja -C Build
ninja: Entering directory `Build'
[0/1] Re-running CMake...
-- KiCad install dir: </usr/local>
-- Check for installed GLEW -- found
-- Found Boost: /usr/include (found suitable version "1.67.0", minimum required is "1.59.0")
-- Check for installed Python Interpreter -- found
-- Python module install path: lib/python3/dist-packages
-- Found Phoenix 4.0.7/gtk3 (wxWidgets 3.0.4)
-- Found wxWidgets: -L/usr/lib/powerpc64le-linux-gnu;-pthread;;;-lwx_gtk3u_gl-3.0;-lwx_gtk3u_aui-3.0;-lwx_gtk3u_adv-3.0;-lwx_gtk3u_html-3.0;-lwx_gtk3u_core-3.0;-lwx_baseu_net-3.0;-lwx_baseu-3.0;-lwx_baseu_xml-3.0;-lwx_gtk3u_stc-3.0 (found suitable version "3.0.4", minimum required is "3.0.4")
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- WARNING: Doxygen not found - doxygen-docs (Source Docs) target not created
-- Creating linux metadata
-- Using Git to determine build version string.
-- S3DSG version: 2.0.0
-- Found Boost: /usr/include (found version "1.67.0") found components: unit_test_framework filesystem system
-- Found wxWidgets: -L/usr/lib/powerpc64le-linux-gnu;-pthread;;;-lwx_gtk3u_gl-3.0;-lwx_gtk3u_aui-3.0;-lwx_gtk3u_adv-3.0;-lwx_gtk3u_html-3.0;-lwx_gtk3u_core-3.0;-lwx_baseu_net-3.0;-lwx_baseu-3.0;-lwx_baseu_xml-3.0;-lwx_gtk3u_stc-3.0 (found suitable version "3.0.4", minimum required is "3.0.0")
-- Found Boost: /usr/include (found version "1.67.0") found components: unit_test_framework
-- Configuring done
-- Generating done
-- Build files have been written to: /home/geier/OSS/kicad/Build
[1/38] Generating version string header
-- Found Git: /usr/lib/git-core/git (found version "2.25.1")
-- Using Git to determine build version string.
-- Writing /home/geier/OSS/kicad/Build/kicad_build_version.h file with version: (5.99.0-1312-g25d7c0cae)
[38/38] Linking CXX executable qa/pcbnew/qa_pcbnew
Executing: ninja -C Build
ninja: Entering directory `Build'
[1/1] Generating version string header
-- Found Git: /usr/lib/git-core/git (found version "2.25.1")
-- Using Git to determine build version string.
-- Writing /home/geier/OSS/kicad/Build/kicad_build_version.h file with version: (5.99.0-1313-g6250476ab)
Executing: ninja -C Build
ninja: Entering directory `Build'
[1/28] Generating version string header
-- Found Git: /usr/lib/git-core/git (found version "2.25.1")
-- Using Git to determine build version string.
-- Writing /home/geier/OSS/kicad/Build/kicad_build_version.h file with version: (5.99.0-1314-g148823822)
[28/28] Linking CXX executable qa/pcbnew/qa_pcbnew
Executing: ninja -C Build
ninja: Entering directory `Build'
[0/1] Re-running CMake...
-- KiCad install dir: </usr/local>
…
Steps to reproduce
git checkout e1af9df83
cmake -G Ninja …
git rebase -x ninja 4a3cd7741