|
@@ -208,6 +208,14 @@ else()
|
|
)
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
|
|
|
|
+# In some build configuraitons (like boostrapping clang), we need to be able to
|
|
|
|
+# install the libcxx headers before CMake configuraiton for libcxx runs. Making
|
|
|
|
+# the name of this target configurable allows LLVM/runtimes/CMakeLists.txt to
|
|
|
|
+# add this subdirectory to the LLVM build to put libcxx's headers in place
|
|
|
|
+# before libcxx's build configuration is run.
|
|
|
|
+if (NOT CXX_HEADER_TARGET)
|
|
|
|
+ set(CXX_HEADER_TARGET cxx-headers)
|
|
|
|
+endif()
|
|
if(NOT LIBCXX_USING_INSTALLED_LLVM AND LIBCXX_HEADER_DIR)
|
|
if(NOT LIBCXX_USING_INSTALLED_LLVM AND LIBCXX_HEADER_DIR)
|
|
set(output_dir ${LIBCXX_HEADER_DIR}/include/c++/v1)
|
|
set(output_dir ${LIBCXX_HEADER_DIR}/include/c++/v1)
|
|
|
|
|
|
@@ -233,18 +241,18 @@ if(NOT LIBCXX_USING_INSTALLED_LLVM AND LIBCXX_HEADER_DIR)
|
|
list(APPEND out_files ${dst})
|
|
list(APPEND out_files ${dst})
|
|
endif()
|
|
endif()
|
|
|
|
|
|
- add_custom_target(cxx-headers ALL DEPENDS ${out_files} ${LIBCXX_CXX_ABI_HEADER_TARGET})
|
|
|
|
|
|
+ add_custom_target(${CXX_HEADER_TARGET} ALL DEPENDS ${out_files} ${LIBCXX_CXX_ABI_HEADER_TARGET})
|
|
else()
|
|
else()
|
|
- add_custom_target(cxx-headers)
|
|
|
|
|
|
+ add_custom_target(${CXX_HEADER_TARGET})
|
|
endif()
|
|
endif()
|
|
-set_target_properties(cxx-headers PROPERTIES FOLDER "Misc")
|
|
|
|
|
|
+set_target_properties(${CXX_HEADER_TARGET} PROPERTIES FOLDER "Misc")
|
|
|
|
|
|
if (LIBCXX_INSTALL_HEADERS)
|
|
if (LIBCXX_INSTALL_HEADERS)
|
|
foreach(file ${files})
|
|
foreach(file ${files})
|
|
get_filename_component(dir ${file} DIRECTORY)
|
|
get_filename_component(dir ${file} DIRECTORY)
|
|
install(FILES ${file}
|
|
install(FILES ${file}
|
|
DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dir}
|
|
DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1/${dir}
|
|
- COMPONENT cxx-headers
|
|
|
|
|
|
+ COMPONENT ${CXX_HEADER_TARGET}
|
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
|
)
|
|
)
|
|
endforeach()
|
|
endforeach()
|
|
@@ -255,19 +263,19 @@ if (LIBCXX_INSTALL_HEADERS)
|
|
DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1
|
|
DESTINATION ${LIBCXX_INSTALL_HEADER_PREFIX}include/c++/v1
|
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
|
RENAME __config
|
|
RENAME __config
|
|
- COMPONENT cxx-headers)
|
|
|
|
|
|
+ COMPONENT ${CXX_HEADER_TARGET})
|
|
endif()
|
|
endif()
|
|
|
|
|
|
if (NOT CMAKE_CONFIGURATION_TYPES)
|
|
if (NOT CMAKE_CONFIGURATION_TYPES)
|
|
- add_custom_target(install-cxx-headers
|
|
|
|
- DEPENDS cxx-headers ${generated_config_deps}
|
|
|
|
|
|
+ add_custom_target(install-${CXX_HEADER_TARGET}
|
|
|
|
+ DEPENDS ${CXX_HEADER_TARGET} ${generated_config_deps}
|
|
COMMAND "${CMAKE_COMMAND}"
|
|
COMMAND "${CMAKE_COMMAND}"
|
|
- -DCMAKE_INSTALL_COMPONENT=cxx-headers
|
|
|
|
|
|
+ -DCMAKE_INSTALL_COMPONENT=${CXX_HEADER_TARGET}
|
|
-P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
|
|
-P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
|
|
# Stripping is a no-op for headers
|
|
# Stripping is a no-op for headers
|
|
- add_custom_target(install-cxx-headers-stripped DEPENDS install-cxx-headers)
|
|
|
|
|
|
+ add_custom_target(install-${CXX_HEADER_TARGET}-stripped DEPENDS install-${CXX_HEADER_TARGET})
|
|
|
|
|
|
- add_custom_target(install-libcxx-headers DEPENDS install-cxx-headers)
|
|
|
|
- add_custom_target(install-libcxx-headers-stripped DEPENDS install-cxx-headers-stripped)
|
|
|
|
|
|
+ add_custom_target(install-libcxx-headers DEPENDS install-${CXX_HEADER_TARGET})
|
|
|
|
+ add_custom_target(install-libcxx-headers-stripped DEPENDS install-${CXX_HEADER_TARGET}-stripped)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
endif()
|