blob: e16dc8b4de63d0a0e003050912147ab3c3e675ea [file] [log] [blame]
Justin Bognerfd6cfe92013-11-15 18:34:431if (NOT LIBCXX_INSTALL_SUPPORT_HEADERS)
2 set(LIBCXX_SUPPORT_HEADER_PATTERN PATTERN "support" EXCLUDE)
3endif()
Eric Fiselierf9f796e2015-10-13 22:12:024
Justin Bogneracb64e82014-10-23 16:51:125set(LIBCXX_HEADER_PATTERN
Justin Bognerfd6cfe92013-11-15 18:34:436 PATTERN "*"
7 PATTERN "CMakeLists.txt" EXCLUDE
8 PATTERN ".svn" EXCLUDE
Eric Fiselierf9f796e2015-10-13 22:12:029 PATTERN "__config_site.in" EXCLUDE
Justin Bognerfd6cfe92013-11-15 18:34:4310 ${LIBCXX_SUPPORT_HEADER_PATTERN}
Justin Bogneracb64e82014-10-23 16:51:1211 )
12
13file(COPY .
14 DESTINATION "${CMAKE_BINARY_DIR}/include/c++/v1"
15 FILES_MATCHING
16 ${LIBCXX_HEADER_PATTERN}
17 )
18
Eric Fiselierbfd53cd2014-12-12 22:52:5819if (LIBCXX_INSTALL_HEADERS)
20 install(DIRECTORY .
21 DESTINATION include/c++/v1
Eric Fiselier7cb813f2015-08-19 17:41:5322 COMPONENT libcxx
Eric Fiselierbfd53cd2014-12-12 22:52:5823 FILES_MATCHING
24 ${LIBCXX_HEADER_PATTERN}
25 PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
Justin Bognerfd6cfe92013-11-15 18:34:4326 )
Eric Fiselierf9f796e2015-10-13 22:12:0227
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 Fiselierbfd53cd2014-12-12 22:52:5852endif()