[PATCH] Teach llvm_add_library() to search arbitrary directories for includes.
Zachary Turner
zturner at google.com
Mon Feb 9 21:06:35 PST 2015
REPOSITORY
rL LLVM
http://reviews.llvm.org/D7460
Files:
llvm/trunk/cmake/modules/LLVMProcessSources.cmake
llvm/trunk/lib/Support/CMakeLists.txt
Index: llvm/trunk/lib/Support/CMakeLists.txt
===================================================================
--- llvm/trunk/lib/Support/CMakeLists.txt
+++ llvm/trunk/lib/Support/CMakeLists.txt
@@ -121,30 +121,9 @@
Valgrind.cpp
Watchdog.cpp
- ADDITIONAL_HEADERS
- Unix/Host.inc
- Unix/Memory.inc
- Unix/Mutex.inc
- Unix/Path.inc
- Unix/Process.inc
- Unix/Program.inc
- Unix/RWMutex.inc
- Unix/Signals.inc
- Unix/ThreadLocal.inc
- Unix/TimeValue.inc
- Unix/Watchdog.inc
- Windows/DynamicLibrary.inc
- Windows/Host.inc
- Windows/Memory.inc
- Windows/Mutex.inc
- Windows/Path.inc
- Windows/Process.inc
- Windows/Program.inc
- Windows/RWMutex.inc
- Windows/Signals.inc
- Windows/ThreadLocal.inc
- Windows/TimeValue.inc
- Windows/Watchdog.inc
+ ADDITIONAL_HEADER_DIRS
+ Unix
+ Windows
LINK_LIBS ${system_libs}
)
Index: llvm/trunk/cmake/modules/LLVMProcessSources.cmake
===================================================================
--- llvm/trunk/cmake/modules/LLVMProcessSources.cmake
+++ llvm/trunk/cmake/modules/LLVMProcessSources.cmake
@@ -28,26 +28,39 @@
endif()
endmacro(add_td_sources)
+function(add_header_files_for_glob hdrs_out glob)
+ file(GLOB hds ${glob})
+ set(${hdrs_out} ${hds} PARENT_SCOPE)
+endfunction(add_header_files_for_glob)
+
+function(find_all_header_files hdrs_out additional_headerdirs)
+ add_header_files_for_glob(hds *.h)
+ list(APPEND all_headers ${hds})
+
+ foreach(additional_dir ${additional_headerdirs})
+ add_header_files_for_glob(hds "${additional_dir}/*.h")
+ list(APPEND all_headers ${hds})
+ add_header_files_for_glob(hds "${additional_dir}/*.inc")
+ list(APPEND all_headers ${hds})
+ endforeach(additional_dir)
-macro(add_header_files srcs)
- file(GLOB hds *.h)
- if( hds )
- set_source_files_properties(${hds} PROPERTIES HEADER_FILE_ONLY ON)
- list(APPEND ${srcs} ${hds})
- endif()
-endmacro(add_header_files)
+ set( ${hdrs_out} ${all_headers} PARENT_SCOPE )
+endfunction(find_all_header_files)
function(llvm_process_sources OUT_VAR)
- cmake_parse_arguments(ARG "" "" "ADDITIONAL_HEADERS" ${ARGN})
+ cmake_parse_arguments(ARG "" "" "ADDITIONAL_HEADERS;ADDITIONAL_HEADER_DIRS" ${ARGN})
set(sources ${ARG_UNPARSED_ARGUMENTS})
llvm_check_source_file_list( ${sources} )
if( MSVC_IDE OR XCODE )
# This adds .td and .h files to the Visual Studio solution:
add_td_sources(sources)
- add_header_files(sources)
+ find_all_header_files(hdrs "${ARG_ADDITIONAL_HEADER_DIRS}")
+ if (hdrs)
+ set_source_files_properties(${hdrs} PROPERTIES HEADER_FILE_ONLY ON)
+ endif()
set_source_files_properties(${ARG_ADDITIONAL_HEADERS} PROPERTIES HEADER_FILE_ONLY ON)
- list(APPEND sources ${ARG_ADDITIONAL_HEADERS})
+ list(APPEND sources ${ARG_ADDITIONAL_HEADERS} ${hdrs})
endif()
set( ${OUT_VAR} ${sources} PARENT_SCOPE )
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D7460.19639.patch
Type: text/x-patch
Size: 2883 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150210/258e15df/attachment.bin>
More information about the llvm-commits
mailing list