xref: /openbsd-src/gnu/llvm/libcxxabi/include/CMakeLists.txt (revision 8f1d572453a8bab44a2fe956e25efc4124e87e82)
1set(files
2  __cxxabi_config.h
3  cxxabi.h
4  )
5
6foreach(f ${files})
7  set(src "${CMAKE_CURRENT_SOURCE_DIR}/${f}")
8  set(dst "${LIBCXXABI_GENERATED_INCLUDE_DIR}/${f}")
9  add_custom_command(OUTPUT ${dst}
10    DEPENDS ${src}
11    COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
12    COMMENT "Copying CXXABI header ${f}")
13  list(APPEND _all_includes "${dst}")
14endforeach()
15
16add_custom_target(generate-cxxabi-headers ALL DEPENDS ${_all_includes})
17
18add_library(cxxabi-headers INTERFACE)
19add_dependencies(cxxabi-headers generate-cxxabi-headers)
20target_include_directories(cxxabi-headers INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
21
22if (LIBCXXABI_INSTALL_HEADERS)
23  foreach(file ${files})
24    get_filename_component(dir ${file} DIRECTORY)
25    install(FILES ${file}
26      DESTINATION ${LIBCXXABI_INSTALL_INCLUDE_DIR}/${dir}
27      COMPONENT cxxabi-headers
28      PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
29    )
30  endforeach()
31
32  add_custom_target(install-cxxabi-headers
33                    DEPENDS cxxabi-headers
34                    COMMAND "${CMAKE_COMMAND}"
35                            -DCMAKE_INSTALL_COMPONENT=cxxabi-headers
36                            -P "${CMAKE_BINARY_DIR}/cmake_install.cmake")
37  # Stripping is a no-op for headers
38  add_custom_target(install-cxxabi-headers-stripped DEPENDS install-cxxabi-headers)
39endif()
40