This revision was automatically updated to reflect the committed changes. Closed by commit rGa809720102fa: [lldb][NFCI] Change logic to find clang resource dir in standalone builds (authored by bulbazord).
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D156270/new/ https://reviews.llvm.org/D156270 Files: lldb/cmake/modules/LLDBConfig.cmake lldb/cmake/modules/LLDBStandalone.cmake Index: lldb/cmake/modules/LLDBStandalone.cmake =================================================================== --- lldb/cmake/modules/LLDBStandalone.cmake +++ lldb/cmake/modules/LLDBStandalone.cmake @@ -128,3 +128,16 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}) + +# If LLDB is building against a prebuilt Clang, then the Clang resource +# directory that LLDB is using for its embedded Clang instance needs to point to +# the resource directory of the used Clang installation. +if (NOT TARGET clang-resource-headers) + include(GetClangResourceDir) + get_clang_resource_dir(LLDB_EXTERNAL_CLANG_RESOURCE_DIR + PREFIX "${Clang_DIR}/../../../") + + if (NOT EXISTS ${LLDB_EXTERNAL_CLANG_RESOURCE_DIR}) + message(FATAL_ERROR "Expected directory for clang-resource-headers not found: ${LLDB_EXTERNAL_CLANG_RESOURCE_DIR}") + endif() +endif() Index: lldb/cmake/modules/LLDBConfig.cmake =================================================================== --- lldb/cmake/modules/LLDBConfig.cmake +++ lldb/cmake/modules/LLDBConfig.cmake @@ -282,30 +282,6 @@ endif() endif() - -# If LLDB is building against a prebuilt Clang, then the Clang resource -# directory that LLDB is using for its embedded Clang instance needs to point -# to the resource directory of the used Clang installation. -if (NOT TARGET clang-resource-headers) - set(LLDB_CLANG_RESOURCE_DIR_NAME "${LLVM_VERSION_MAJOR}") - # Iterate over the possible places where the external resource directory - # could be and pick the first that exists. - foreach(CANDIDATE "${Clang_DIR}/../.." "${LLVM_DIR}" "${LLVM_LIBRARY_DIRS}" - "${LLVM_BUILD_LIBRARY_DIR}" - "${LLVM_LIBRARY_DIR}") - # Build the resource directory path by appending 'clang/<version number>'. - set(CANDIDATE_RESOURCE_DIR "${CANDIDATE}/clang/${LLDB_CLANG_RESOURCE_DIR_NAME}") - if (IS_DIRECTORY "${CANDIDATE_RESOURCE_DIR}") - set(LLDB_EXTERNAL_CLANG_RESOURCE_DIR "${CANDIDATE_RESOURCE_DIR}") - break() - endif() - endforeach() - - if (NOT LLDB_EXTERNAL_CLANG_RESOURCE_DIR) - message(FATAL_ERROR "Expected directory for clang-resource headers not found: ${LLDB_EXTERNAL_CLANG_RESOURCE_DIR}") - endif() -endif() - # Find Apple-specific libraries or frameworks that may be needed. if (APPLE) if(NOT APPLE_EMBEDDED)
Index: lldb/cmake/modules/LLDBStandalone.cmake =================================================================== --- lldb/cmake/modules/LLDBStandalone.cmake +++ lldb/cmake/modules/LLDBStandalone.cmake @@ -128,3 +128,16 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LLVM_LIBDIR_SUFFIX}) + +# If LLDB is building against a prebuilt Clang, then the Clang resource +# directory that LLDB is using for its embedded Clang instance needs to point to +# the resource directory of the used Clang installation. +if (NOT TARGET clang-resource-headers) + include(GetClangResourceDir) + get_clang_resource_dir(LLDB_EXTERNAL_CLANG_RESOURCE_DIR + PREFIX "${Clang_DIR}/../../../") + + if (NOT EXISTS ${LLDB_EXTERNAL_CLANG_RESOURCE_DIR}) + message(FATAL_ERROR "Expected directory for clang-resource-headers not found: ${LLDB_EXTERNAL_CLANG_RESOURCE_DIR}") + endif() +endif() Index: lldb/cmake/modules/LLDBConfig.cmake =================================================================== --- lldb/cmake/modules/LLDBConfig.cmake +++ lldb/cmake/modules/LLDBConfig.cmake @@ -282,30 +282,6 @@ endif() endif() - -# If LLDB is building against a prebuilt Clang, then the Clang resource -# directory that LLDB is using for its embedded Clang instance needs to point -# to the resource directory of the used Clang installation. -if (NOT TARGET clang-resource-headers) - set(LLDB_CLANG_RESOURCE_DIR_NAME "${LLVM_VERSION_MAJOR}") - # Iterate over the possible places where the external resource directory - # could be and pick the first that exists. - foreach(CANDIDATE "${Clang_DIR}/../.." "${LLVM_DIR}" "${LLVM_LIBRARY_DIRS}" - "${LLVM_BUILD_LIBRARY_DIR}" - "${LLVM_LIBRARY_DIR}") - # Build the resource directory path by appending 'clang/<version number>'. - set(CANDIDATE_RESOURCE_DIR "${CANDIDATE}/clang/${LLDB_CLANG_RESOURCE_DIR_NAME}") - if (IS_DIRECTORY "${CANDIDATE_RESOURCE_DIR}") - set(LLDB_EXTERNAL_CLANG_RESOURCE_DIR "${CANDIDATE_RESOURCE_DIR}") - break() - endif() - endforeach() - - if (NOT LLDB_EXTERNAL_CLANG_RESOURCE_DIR) - message(FATAL_ERROR "Expected directory for clang-resource headers not found: ${LLDB_EXTERNAL_CLANG_RESOURCE_DIR}") - endif() -endif() - # Find Apple-specific libraries or frameworks that may be needed. if (APPLE) if(NOT APPLE_EMBEDDED)
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits