diff --git a/CMakeLists.txt b/CMakeLists.txt index a0d0aa7cb4..bb86788b06 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -131,7 +131,10 @@ function(link_to_source base_name) set(target "${CMAKE_CURRENT_SOURCE_DIR}/${base_name}") endif() - if (NOT EXISTS ${link}) + # Linking to non-existent file is not desirable. At best you will have a + # dangling link, but when building in tree, this can create a symbolic link + # to itself. + if (EXISTS ${target} AND NOT EXISTS ${link}) if (CMAKE_HOST_UNIX) set(command ln -s ${target} ${link}) else() diff --git a/ChangeLog.d/fix_cmake_gen_files b/ChangeLog.d/fix_cmake_gen_files new file mode 100644 index 0000000000..3b2c09992b --- /dev/null +++ b/ChangeLog.d/fix_cmake_gen_files @@ -0,0 +1,3 @@ +Bugfix + * Fix an issue in releases with GEN_FILES turned off whereby missing + generated files could be turned into symlinks to themselves.