[CMake] Only generate Components.cmake if components are specified
authorChris Bieneman <beanz@apple.com>
Sat, 27 Aug 2016 00:19:51 +0000 (00:19 +0000)
committerChris Bieneman <beanz@apple.com>
Sat, 27 Aug 2016 00:19:51 +0000 (00:19 +0000)
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.

llvm-svn: 279893

llvm/runtimes/CMakeLists.txt

index 139f603..4d07476 100644 (file)
@@ -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)