Justin Bogner | fd6cfe9 | 2013-11-15 18:34:43 | [diff] [blame] | 1 | if (NOT LIBCXX_INSTALL_SUPPORT_HEADERS) |
| 2 | set(LIBCXX_SUPPORT_HEADER_PATTERN PATTERN "support" EXCLUDE) |
| 3 | endif() |
Eric Fiselier | f9f796e | 2015-10-13 22:12:02 | [diff] [blame] | 4 | |
Justin Bogner | acb64e8 | 2014-10-23 16:51:12 | [diff] [blame] | 5 | set(LIBCXX_HEADER_PATTERN |
Justin Bogner | fd6cfe9 | 2013-11-15 18:34:43 | [diff] [blame] | 6 | PATTERN "*" |
| 7 | PATTERN "CMakeLists.txt" EXCLUDE |
| 8 | PATTERN ".svn" EXCLUDE |
Eric Fiselier | f9f796e | 2015-10-13 22:12:02 | [diff] [blame] | 9 | PATTERN "__config_site.in" EXCLUDE |
Justin Bogner | fd6cfe9 | 2013-11-15 18:34:43 | [diff] [blame] | 10 | ${LIBCXX_SUPPORT_HEADER_PATTERN} |
Justin Bogner | acb64e8 | 2014-10-23 16:51:12 | [diff] [blame] | 11 | ) |
| 12 | |
| 13 | file(COPY . |
| 14 | DESTINATION "${CMAKE_BINARY_DIR}/include/c++/v1" |
| 15 | FILES_MATCHING |
| 16 | ${LIBCXX_HEADER_PATTERN} |
| 17 | ) |
| 18 | |
Eric Fiselier | bfd53cd | 2014-12-12 22:52:58 | [diff] [blame] | 19 | if (LIBCXX_INSTALL_HEADERS) |
| 20 | install(DIRECTORY . |
| 21 | DESTINATION include/c++/v1 |
Eric Fiselier | 7cb813f | 2015-08-19 17:41:53 | [diff] [blame] | 22 | COMPONENT libcxx |
Eric Fiselier | bfd53cd | 2014-12-12 22:52:58 | [diff] [blame] | 23 | FILES_MATCHING |
| 24 | ${LIBCXX_HEADER_PATTERN} |
| 25 | PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ |
Justin Bogner | fd6cfe9 | 2013-11-15 18:34:43 | [diff] [blame] | 26 | ) |
Eric Fiselier | f9f796e | 2015-10-13 22:12:02 | [diff] [blame] | 27 | |
| 28 | if (LIBCXX_NEEDS_SITE_CONFIG) |
| 29 | set(UNIX_CAT cat) |
| 30 | if (WIN32) |
| 31 | set(UNIX_CAT type) |
| 32 | endif() |
| 33 | # Generate and install a custom __config header. The new header is created |
| 34 | # by prepending __config_site to the current __config header. |
| 35 | add_custom_command(OUTPUT ${LIBCXX_BINARY_DIR}/__generated_config |
| 36 | COMMAND ${CMAKE_COMMAND} -E copy ${LIBCXX_BINARY_DIR}/__config_site ${LIBCXX_BINARY_DIR}/__generated_config |
| 37 | COMMAND ${UNIX_CAT} ${LIBCXX_SOURCE_DIR}/include/__config >> ${LIBCXX_BINARY_DIR}/__generated_config |
| 38 | DEPENDS ${LIBCXX_SOURCE_DIR}/include/__config |
| 39 | ${LIBCXX_BINARY_DIR}/__config_site |
| 40 | ) |
| 41 | # Add a target that executes the generation commands. |
| 42 | add_custom_target(generate_config_header ALL |
| 43 | DEPENDS ${LIBCXX_BINARY_DIR}/__generated_config) |
| 44 | # Install the generated header as __config. |
| 45 | install(FILES ${LIBCXX_BINARY_DIR}/__generated_config |
| 46 | DESTINATION include/c++/v1 |
| 47 | PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ |
| 48 | RENAME __config |
| 49 | COMPONENT libcxx) |
| 50 | endif() |
| 51 | |
Eric Fiselier | bfd53cd | 2014-12-12 22:52:58 | [diff] [blame] | 52 | endif() |