[CMake] llvm_process_sources: Introduce a parameter, ADDITIONAL_HEADERS.
authorNAKAMURA Takumi <geek4civic@gmail.com>
Mon, 20 Jan 2014 10:20:23 +0000 (10:20 +0000)
committerNAKAMURA Takumi <geek4civic@gmail.com>
Mon, 20 Jan 2014 10:20:23 +0000 (10:20 +0000)
ADDITIONAL_HEADERS is intended to add header files for IDEs as hint.

For example:
  add_llvm_library(LLVMSupport
    Host.cpp
    ADDITIONAL_HEADERS
      Unix/Host.inc
      Windows/Host.inc
    )

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

cmake/modules/LLVMProcessSources.cmake
lib/Support/CMakeLists.txt

index 2cef6cfc3a30ec8e1f5aa265021c65e84fbe493a..4ad97575071c8266fd66d10090404a16f5dc09e0 100644 (file)
@@ -38,7 +38,8 @@ endmacro(add_header_files)
 
 
 function(llvm_process_sources OUT_VAR)
-  set( sources ${ARGN} )
+  cmake_parse_arguments(ARG "" "" "ADDITIONAL_HEADERS" ${ARGN})
+  set(sources ${ARG_UNPARSED_ARGUMENTS})
   llvm_check_source_file_list( ${sources} )
   # Create file dependencies on the tablegenned files, if any.  Seems
   # that this is not strictly needed, as dependencies of the .cpp
@@ -50,9 +51,10 @@ function(llvm_process_sources OUT_VAR)
   endforeach(s)
   if( MSVC_IDE OR XCODE )
     # This adds .td and .h files to the Visual Studio solution:
-    # FIXME: Shall we handle *.def here?
     add_td_sources(sources)
     add_header_files(sources)
+    set_source_files_properties(${ARG_ADDITIONAL_HEADERS} PROPERTIES HEADER_FILE_ONLY ON)
+    list(APPEND sources ${ARG_ADDITIONAL_HEADERS})
   endif()
 
   # Set common compiler options:
index dcc4b52491922ba5c658da04f8a6016e71ba35c5..a6ebb12e51a7255c3616341459ceeffb3a7876dc 100644 (file)
@@ -89,6 +89,8 @@ add_llvm_library(LLVMSupport
   TimeValue.cpp
   Valgrind.cpp
   Watchdog.cpp
+
+  ADDITIONAL_HEADERS
   Unix/Host.inc
   Unix/Memory.inc
   Unix/Mutex.inc