53 lines
1.7 KiB
CMake
53 lines
1.7 KiB
CMake
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}
|
|
)
|
|
|
|
file(COPY .
|
|
DESTINATION "${CMAKE_BINARY_DIR}/include/c++/v1"
|
|
FILES_MATCHING
|
|
${LIBCXX_HEADER_PATTERN}
|
|
)
|
|
|
|
if (LIBCXX_INSTALL_HEADERS)
|
|
install(DIRECTORY .
|
|
DESTINATION include/c++/v1
|
|
COMPONENT libcxx
|
|
FILES_MATCHING
|
|
${LIBCXX_HEADER_PATTERN}
|
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
|
)
|
|
|
|
if (LIBCXX_NEEDS_SITE_CONFIG)
|
|
set(UNIX_CAT cat)
|
|
if (WIN32)
|
|
set(UNIX_CAT type)
|
|
endif()
|
|
# 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 ${CMAKE_COMMAND} -E copy ${LIBCXX_BINARY_DIR}/__config_site ${LIBCXX_BINARY_DIR}/__generated_config
|
|
COMMAND ${UNIX_CAT} ${LIBCXX_SOURCE_DIR}/include/__config >> ${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)
|
|
# Install the generated header as __config.
|
|
install(FILES ${LIBCXX_BINARY_DIR}/__generated_config
|
|
DESTINATION include/c++/v1
|
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
|
|
RENAME __config
|
|
COMPONENT libcxx)
|
|
endif()
|
|
|
|
endif()
|