1include(AddFileDependencies)
2
3
4macro(add_td_sources srcs)
5  file(GLOB tds *.td)
6  if( tds )
7    source_group("TableGen descriptions" FILES ${tds})
8    set_source_files_properties(${tds} PROPERTIES HEADER_FILE_ONLY ON)
9    list(APPEND ${srcs} ${tds})
10  endif()
11endmacro(add_td_sources)
12
13
14macro(add_header_files srcs)
15  file(GLOB hds *.h)
16  if( hds )
17    set_source_files_properties(${hds} PROPERTIES HEADER_FILE_ONLY ON)
18    list(APPEND ${srcs} ${hds})
19  endif()
20endmacro(add_header_files)
21
22
23function(llvm_process_sources OUT_VAR)
24  set( sources ${ARGN} )
25  # Create file dependencies on the tablegenned files, if any.  Seems
26  # that this is not strictly needed, as dependencies of the .cpp
27  # sources on the tablegenned .inc files are detected and handled,
28  # but just in case...
29  foreach( s ${sources} )
30    set( f ${CMAKE_CURRENT_SOURCE_DIR}/${s} )
31    add_file_dependencies( ${f} ${TABLEGEN_OUTPUT} )
32  endforeach(s)
33  if( MSVC_IDE )
34    # This adds .td and .h files to the Visual Studio solution:
35    add_td_sources(sources)
36    add_header_files(sources)
37  endif()
38  set( ${OUT_VAR} ${sources} PARENT_SCOPE )
39endfunction(llvm_process_sources)
40