cmake-3.9.0 generated makefile doesn't build dependencies in the expected order
SiceCMakeLists.txt Since openSUSE:Factory updated to cmake-3.9.0 from cmake-3.8.2 the package rosegarden failed to build due to: /usr/bin/cmake -H/data/packages/BUILD/rosegarden-17.04 -B/data/packages/BUILD/rosegarden-17.04/build --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /data/packages/BUILD/rosegarden-17.04/build/CMakeFiles /data/packages/BUILD/rosegarden-17.04/build/CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[1]: Entering directory '/data/packages/BUILD/rosegarden-17.04/build' make -f src/CMakeFiles/rosegardenprivate_autogen.dir/build.make src/CMakeFiles/rosegardenprivate_autogen.dir/depend make[2]: Entering directory '/data/packages/BUILD/rosegarden-17.04/build' cd /data/packages/BUILD/rosegarden-17.04/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /data/packages/BUILD/rosegarden-17.04 /data/packages/BUILD/rosegarden-17.04/src /data/packages/BUILD/rosegarden-17.04/build /data/packages/BUILD/rosegarden-17.04/build/src /data/packages/BUILD/rosegarden-17.04/build/src/CMakeFiles/rosegardenprivate_autogen.dir/DependInfo.cmake make[2]: Leaving directory '/data/packages/BUILD/rosegarden-17.04/build' make -f src/CMakeFiles/rosegardenprivate_autogen.dir/build.make src/CMakeFiles/rosegardenprivate_autogen.dir/build make[2]: Entering directory '/data/packages/BUILD/rosegarden-17.04/build' make[2]: *** No rule to make target 'src/svnversion.h', needed by 'src/CMakeFiles/rosegardenprivate_autogen'. Stop. make[2]: Leaving directory '/data/packages/BUILD/rosegarden-17.04/build' CMakeFiles/Makefile2:1135: recipe for target 'src/CMakeFiles/rosegardenprivate_autogen.dir/all' failed
If make is invoked with -j2 or more the build still fails but because src/svnversion.h is actually built the next make attempt succeeds. I've tried moving rules around in the above attached CMakeLists.txt, from the src/ directory but nothing seems to help. I've worked around this by invoking make svnheader prior to the main make in the spec file. Attaching the top level CMakeLists.txt.CMakeLists.txt