]> granicus.if.org Git - llvm/commitdiff
[llvm] [cmake] Add additional headers only if they exist
authorMichal Gorny <mgorny@gentoo.org>
Thu, 4 Apr 2019 14:21:38 +0000 (14:21 +0000)
committerMichal Gorny <mgorny@gentoo.org>
Thu, 4 Apr 2019 14:21:38 +0000 (14:21 +0000)
Modify the add_header_files_for_glob() function to only add files
that do exist, rather than all matches of the glob.  This fixes CMake
error when one of the include directories (which happen to include
/usr/include) contain broken symlinks.

Differential Revision: https://reviews.llvm.org/D59632

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357701 91177308-0d34-0410-b5e6-96231b3b80d8

cmake/modules/LLVMProcessSources.cmake

index 7cbd2863500cf1ef606db7b16c474580f51d3147..d0be0e8b3ba3dbe2e606b3d7d5eda71db0d2c4de 100644 (file)
@@ -30,7 +30,15 @@ endmacro(add_td_sources)
 
 function(add_header_files_for_glob hdrs_out glob)
   file(GLOB hds ${glob})
-  set(${hdrs_out} ${hds} PARENT_SCOPE)
+  set(filtered)
+  foreach(file ${hds})
+    # Explicit existence check is necessary to filter dangling symlinks
+    # out.  See https://bugs.gentoo.org/674662.
+    if(EXISTS ${file})
+      list(APPEND filtered ${file})
+    endif()
+  endforeach()
+  set(${hdrs_out} ${filtered} PARENT_SCOPE)
 endfunction(add_header_files_for_glob)
 
 function(find_all_header_files hdrs_out additional_headerdirs)