LLVMProcessSources.cmake: Improve PARTIAL_SOURCES_INTENDED.

The last non-partial-specified target can collect and check source files.

Case A:
  llvm_add_library(foo PARTIAL_SOURCES_INTENDED ...)
  llvm_add_library(bar PARTIAL_SOURCES_INTENDED ...)
  llvm_add_library(baz ...)

  baz checks source files in foo, bar, and baz.

Case B:
  llvm_add_library(hoge PARTIAL_SOURCES_INTENDED ...)
  llvm_add_library(fuga PARTIAL_SOURCES_INTENDED ...)
  llvm_add_library(piyo PARTIAL_SOURCES_INTENDED ...)
  llvm_check_source_file_list() # Explicitly checks sources in hoge, fuga, and piyo.

Differential Revision: https://reviews.llvm.org/D142256
This commit is contained in:
NAKAMURA Takumi 2021-05-18 00:01:30 +09:00
parent 19128792e2
commit 36adb82c25

View File

@ -59,9 +59,7 @@ endfunction(find_all_header_files)
function(llvm_process_sources OUT_VAR)
cmake_parse_arguments(ARG "PARTIAL_SOURCES_INTENDED" "" "ADDITIONAL_HEADERS;ADDITIONAL_HEADER_DIRS" ${ARGN})
set(sources ${ARG_UNPARSED_ARGUMENTS})
if (NOT ARG_PARTIAL_SOURCES_INTENDED)
llvm_check_source_file_list(${sources})
endif()
llvm_check_source_file_list(${sources})
# This adds .td and .h files to the Visual Studio solution:
add_td_sources(sources)
@ -90,6 +88,12 @@ function(llvm_check_source_file_list)
file(GLOB globbed *.c *.cpp)
endif()
set_property(DIRECTORY APPEND PROPERTY LLVM_SOURCE_FILES ${listed})
if (ARG_PARTIAL_SOURCES_INTENDED) # llvm_process_source's scope
return()
endif()
get_directory_property(listed LLVM_SOURCE_FILES)
foreach(g ${globbed})
get_filename_component(fn ${g} NAME)
if(ARG_SOURCE_DIR)