[CMake] Add fallbacks for copying clang-resource-headers to LLDB.framework in standalone builds

llvm-svn: 363271
This commit is contained in:
Stefan Granitz 2019-06-13 15:07:56 +00:00
parent 93f96b2be9
commit 8f30e322ab
1 changed files with 25 additions and 3 deletions

View File

@ -84,11 +84,33 @@ add_custom_command(TARGET lldb-framework-headers POST_BUILD
)
# Copy vendor-specific headers from clang (without staging).
if(NOT IOS AND NOT LLDB_BUILT_STANDALONE)
add_dependencies(lldb-framework clang-resource-headers)
if(NOT IOS)
if (TARGET clang-resource-headers)
add_dependencies(lldb-framework clang-resource-headers)
set(clang_resource_headers_dir $<TARGET_PROPERTY:clang-resource-headers,RUNTIME_OUTPUT_DIRECTORY>)
else()
# In standalone builds try the best possible guess
if(Clang_DIR)
set(clang_lib_dir ${Clang_DIR}/../..)
elseif(LLVM_DIR)
set(clang_lib_dir ${LLVM_DIR}/../..)
elseif(LLVM_LIBRARY_DIRS)
set(clang_lib_dir ${LLVM_LIBRARY_DIRS})
elseif(LLVM_BUILD_LIBRARY_DIR)
set(clang_lib_dir ${LLVM_BUILD_LIBRARY_DIR})
elseif(LLVM_BINARY_DIR)
set(clang_lib_dir ${LLVM_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX})
endif()
set(clang_version ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH})
set(clang_resource_headers_dir ${clang_lib_dir}/clang/${clang_version}/include)
if(NOT EXISTS ${clang_resource_headers_dir})
message(WARNING "Expected directory for clang-resource headers not found: ${clang_resource_headers_dir}")
endif()
endif()
add_custom_command(TARGET lldb-framework POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
$<TARGET_PROPERTY:clang-resource-headers,RUNTIME_OUTPUT_DIRECTORY>
${clang_resource_headers_dir}
$<TARGET_FILE_DIR:liblldb>/Resources/Clang/include
COMMENT "LLDB.framework: copy clang vendor-specific headers"
)