Skip to content

Commit

Permalink
[CMake] Only generate Components.cmake if components are specified
Browse files Browse the repository at this point in the history
Generating the Components import file is useless if there are no components coming in from the runtimes configuration, so we should skip generation in that case.

This also should fix the configuration error that Renato reported on llvm-dev.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279893 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
Chris Bieneman committed Aug 27, 2016
1 parent fd6bad6 commit 4ec9567
Showing 1 changed file with 20 additions and 18 deletions.
38 changes: 20 additions & 18 deletions runtimes/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -90,25 +90,27 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
endif()

get_property(SUB_COMPONENTS GLOBAL PROPERTY SUB_COMPONENTS)
list(REMOVE_DUPLICATES SUB_COMPONENTS)
foreach(component ${SUB_COMPONENTS})
if(NOT TARGET ${component})
message(SEND_ERROR "Missing target for runtime component ${component}!")
continue()
endif()
if(LLVM_INCLUDE_TESTS AND NOT TARGET check-${component})
message(SEND_ERROR "Missing check target for runtime component ${component}!")
continue()
endif()

if(TARGET install-${component})
list(APPEND SUB_INSTALL_TARGETS install-${component})
endif()
endforeach()
if(SUB_COMPONENTS)
list(REMOVE_DUPLICATES SUB_COMPONENTS)
foreach(component ${SUB_COMPONENTS})
if(NOT TARGET ${component})
message(SEND_ERROR "Missing target for runtime component ${component}!")
continue()
endif()
if(LLVM_INCLUDE_TESTS AND NOT TARGET check-${component})
message(SEND_ERROR "Missing check target for runtime component ${component}!")
continue()
endif()

if(TARGET install-${component})
list(APPEND SUB_INSTALL_TARGETS install-${component})
endif()
endforeach()

configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/Components.cmake.in
${LLVM_BINARY_DIR}/runtimes/Components.cmake)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/Components.cmake.in
${LLVM_BINARY_DIR}/runtimes/Components.cmake)
endif()

else() # if this is included from LLVM's CMake
include(${LLVM_BINARY_DIR}/runtimes/Components.cmake OPTIONAL)
Expand Down

0 comments on commit 4ec9567

Please sign in to comment.