diff options
Diffstat (limited to 'cmake/modules/LLVMProcessSources.cmake')
-rw-r--r-- | cmake/modules/LLVMProcessSources.cmake | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/cmake/modules/LLVMProcessSources.cmake b/cmake/modules/LLVMProcessSources.cmake index 64ebce8..ae1921b 100644 --- a/cmake/modules/LLVMProcessSources.cmake +++ b/cmake/modules/LLVMProcessSources.cmake @@ -28,26 +28,39 @@ macro(add_td_sources srcs) 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) -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) +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) + + 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 ) |