Skip to content
CMakeLists.txt 39 KiB
Newer Older
Reid Kleckner's avatar
Reid Kleckner committed

# This must be at the end of the LLVM root CMakeLists file because it must run
# after all targets are created.
if(LLVM_DISTRIBUTION_COMPONENTS)
  if(CMAKE_CONFIGURATION_TYPES)
    message(FATAL_ERROR "LLVM_DISTRIBUTION_COMPONENTS cannot be specified with multi-configuration generators (i.e. Xcode or Visual Studio)")
  endif()

  add_custom_target(distribution)
  add_custom_target(install-distribution)
  add_custom_target(install-distribution-stripped)
  foreach(target ${LLVM_DISTRIBUTION_COMPONENTS} ${LLVM_RUNTIME_DISTRIBUTION_COMPONENTS})
Reid Kleckner's avatar
Reid Kleckner committed
    if(TARGET ${target})
      add_dependencies(distribution ${target})
    else()
      message(SEND_ERROR "Specified distribution component '${target}' doesn't have a target")
Reid Kleckner's avatar
Reid Kleckner committed
    endif()

    if(TARGET install-${target})
      add_dependencies(install-distribution install-${target})
    else()
      message(SEND_ERROR "Specified distribution component '${target}' doesn't have an install target")
Reid Kleckner's avatar
Reid Kleckner committed
    endif()

    if(TARGET install-${target}-stripped)
      add_dependencies(install-distribution-stripped install-${target}-stripped)
    else()
      message(SEND_ERROR "Specified distribution component '${target}' doesn't have an install-stripped target."
                         " Its installation target creation should be changed to use add_llvm_install_targets,"
                         " or you should manually create the 'install-${target}-stripped' target.")
    endif()
Reid Kleckner's avatar
Reid Kleckner committed
  endforeach()
endif()

# This allows us to deploy the Universal CRT DLLs by passing -DCMAKE_INSTALL_UCRT_LIBRARIES=ON to CMake
if (MSVC AND CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows" AND CMAKE_INSTALL_UCRT_LIBRARIES)