Skip to content

Commit

Permalink
[CMake] Add LLVM_ENABLE_IDE option to better process sources for IDE's
Browse files Browse the repository at this point in the history
Summary:
Currently LLVM has no way to support configuring for IDE's like CLion. Like XCode and MSVC's IDE, CLion needs to see all of the headers and tablegen files in order to properly parse the sources.

This patch adds an `LLVM_ENABLE_IDE` option which can be used to configure for IDE's in general. It is used by `LLVMProcessSources.cmake` to determine if the extra source files should be added to the target.

Unfortunately because of the low level of `LLVMProcessSources.cmake`, I'm not sure where the `LLVM_ENABLE_IDE` option should live. I choose `HandleLLVMOptions.cmake` so that out-of-tree Clang builds would correctly configure the option by default.



Reviewers: beanz, mgorny, lebedev.ri

Reviewed By: beanz

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D40219

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@322349 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
EricWF committed Jan 12, 2018
1 parent 5a286a0 commit 97f96f6
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
7 changes: 7 additions & 0 deletions cmake/modules/HandleLLVMOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -849,6 +849,13 @@ else()
set(LLVM_ENABLE_PLUGINS ON)
endif()

set(LLVM_ENABLE_IDE_default OFF)
if (XCODE OR MSVC_IDE OR CMAKE_EXTRA_GENERATOR)
set(LLVM_ENABLE_IDE_default ON)
endif()
option(LLVM_ENABLE_IDE "Generate targets and process sources for use with an IDE"
${LLVM_ENABLE_IDE_default})

function(get_compile_definitions)
get_directory_property(top_dir_definitions DIRECTORY ${CMAKE_SOURCE_DIR} COMPILE_DEFINITIONS)
foreach(definition ${top_dir_definitions})
Expand Down
2 changes: 1 addition & 1 deletion cmake/modules/LLVMProcessSources.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ function(llvm_process_sources OUT_VAR)
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 )
if( LLVM_ENABLE_IDE )
# This adds .td and .h files to the Visual Studio solution:
add_td_sources(sources)
find_all_header_files(hdrs "${ARG_ADDITIONAL_HEADER_DIRS}")
Expand Down

0 comments on commit 97f96f6

Please sign in to comment.