1file(GLOB public_headers ${LLDB_SOURCE_DIR}/include/lldb/API/*.h)
2file(GLOB root_public_headers ${LLDB_SOURCE_DIR}/include/lldb/lldb-*.h)
3file(GLOB root_private_headers ${LLDB_SOURCE_DIR}/include/lldb/lldb-private*.h)
4list(REMOVE_ITEM root_public_headers ${root_private_headers})
5foreach(header
6    ${public_headers}
7    ${root_public_headers}
8    ${LLDB_SOURCE_DIR}/include/lldb/Utility/SharingPtr.h)
9  get_filename_component(basename ${header} NAME)
10  add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/FrameworkHeaders/${basename}
11                     DEPENDS ${header}
12                     COMMAND ${CMAKE_COMMAND} -E copy ${header} ${CMAKE_CURRENT_BINARY_DIR}/FrameworkHeaders/${basename})
13  list(APPEND framework_headers ${CMAKE_CURRENT_BINARY_DIR}/FrameworkHeaders/${basename})
14endforeach()
15
16add_custom_target(lldb-framework-headers DEPENDS ${framework_headers})
17
18add_custom_command(TARGET lldb-framework POST_BUILD
19  COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_BINARY_DIR}/FrameworkHeaders $<TARGET_FILE_DIR:liblldb>/Headers
20  COMMAND ${LLDB_SOURCE_DIR}/scripts/framework-header-fix.sh $<TARGET_FILE_DIR:liblldb>/Headers ${LLDB_VERSION}
21)
22
23if (NOT IOS)
24  if (NOT LLDB_BUILT_STANDALONE)
25    add_dependencies(lldb-framework clang-headers)
26  endif()
27  add_custom_command(TARGET lldb-framework POST_BUILD
28    COMMAND ${CMAKE_COMMAND} -E create_symlink Versions/Current/Headers ${LLDB_FRAMEWORK_DIR}/LLDB.framework/Headers
29    COMMAND ${CMAKE_COMMAND} -E create_symlink ${LLDB_FRAMEWORK_VERSION} ${LLDB_FRAMEWORK_DIR}/LLDB.framework/Versions/Current
30    COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}/clang/${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH} $<TARGET_FILE_DIR:liblldb>/Resources/Clang
31  )
32endif()
33
34add_dependencies(lldb-framework
35  lldb-framework-headers
36  lldb-suite)
37
38add_custom_target(install-lldb-framework)
39add_custom_target(install-lldb-framework-stripped)
40