|  | if (NOT LIBCXX_INSTALL_SUPPORT_HEADERS) | 
|  | set(LIBCXX_SUPPORT_HEADER_PATTERN PATTERN "support" EXCLUDE) | 
|  | endif() | 
|  |  | 
|  | set(LIBCXX_HEADER_PATTERN | 
|  | PATTERN "*" | 
|  | PATTERN "CMakeLists.txt" EXCLUDE | 
|  | PATTERN ".svn" EXCLUDE | 
|  | PATTERN "__config_site.in" EXCLUDE | 
|  | ${LIBCXX_SUPPORT_HEADER_PATTERN} | 
|  | ) | 
|  |  | 
|  | if(NOT LIBCXX_USING_INSTALLED_LLVM AND LLVM_BINARY_DIR) | 
|  | file(COPY . | 
|  | DESTINATION "${LLVM_BINARY_DIR}/include/c++/v1" | 
|  | FILES_MATCHING | 
|  | ${LIBCXX_HEADER_PATTERN} | 
|  | ) | 
|  | endif() | 
|  |  | 
|  | if (LIBCXX_INSTALL_HEADERS) | 
|  | install(DIRECTORY . | 
|  | DESTINATION ${LIBCXX_INSTALL_PREFIX}include/c++/v1 | 
|  | COMPONENT cxx-headers | 
|  | FILES_MATCHING | 
|  | ${LIBCXX_HEADER_PATTERN} | 
|  | PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ | 
|  | ) | 
|  |  | 
|  | if (LIBCXX_NEEDS_SITE_CONFIG) | 
|  | # Generate and install a custom __config header. The new header is created | 
|  | # by  prepending __config_site to the current __config header. | 
|  | add_custom_command(OUTPUT ${LIBCXX_BINARY_DIR}/__generated_config | 
|  | COMMAND ${PYTHON_EXECUTABLE} ${LIBCXX_SOURCE_DIR}/utils/cat_files.py | 
|  | ${LIBCXX_BINARY_DIR}/__config_site | 
|  | ${LIBCXX_SOURCE_DIR}/include/__config | 
|  | -o ${LIBCXX_BINARY_DIR}/__generated_config | 
|  | DEPENDS ${LIBCXX_SOURCE_DIR}/include/__config | 
|  | ${LIBCXX_BINARY_DIR}/__config_site | 
|  | ) | 
|  | # Add a target that executes the generation commands. | 
|  | add_custom_target(generate_config_header ALL | 
|  | DEPENDS ${LIBCXX_BINARY_DIR}/__generated_config) | 
|  | set(generated_config_deps generate_config_header) | 
|  | # Install the generated header as __config. | 
|  | install(FILES ${LIBCXX_BINARY_DIR}/__generated_config | 
|  | DESTINATION ${LIBCXX_INSTALL_PREFIX}include/c++/v1 | 
|  | PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ | 
|  | RENAME __config | 
|  | COMPONENT cxx-headers) | 
|  | endif() | 
|  |  | 
|  | if (NOT CMAKE_CONFIGURATION_TYPES) | 
|  | # this target is just needed as a placeholder for the distribution target | 
|  | add_custom_target(cxx-headers) | 
|  | add_custom_target(install-cxx-headers | 
|  | DEPENDS cxx-headers ${generated_config_deps} | 
|  | COMMAND "${CMAKE_COMMAND}" | 
|  | -DCMAKE_INSTALL_COMPONENT=cxx-headers | 
|  | -P "${CMAKE_BINARY_DIR}/cmake_install.cmake") | 
|  |  | 
|  | add_custom_target(libcxx-headers) | 
|  | add_custom_target(install-libcxx-headers DEPENDS install-cxx-headers) | 
|  | endif() | 
|  |  | 
|  | endif() |