[flang] Fix CMake bug in the definition of flang-new

Recent patch that improved Flang's compatibility with respect to how LLVM
dynamic libraries should be linked (and specified in CMake recipes),
introduced a bug in the definition of `flang-new`:
  * https://reviews.llvm.org/D87893
More specifically, `add_flang_tool` does not support the
`LINK_COMPONENTS` CMake argument.  Instead, one should set
`LLVM_LINK_COMPONENTS` before calling `add_flang_tool`.

This patch reverts the change for `flang-new` from
https://reviews.llvm.org/D87893, and instead:
  * sets `LLVM_LINK_COMPONENTS`
  * calls `clang_target_link_libraries` to add Clang dependencies

Differential Revision: https://reviews.llvm.org/D89403
This commit is contained in:
Andrzej Warzynski
2020-10-14 17:40:29 +01:00
parent e9ac1869a8
commit 42e89ab2a6
2 changed files with 14 additions and 8 deletions

View File

@@ -82,6 +82,10 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
include(HandleLLVMOptions)
include(VersionFromVCS)
if(FLANG_BUILD_NEW_DRIVER)
include(AddClang)
endif()
if(LINK_WITH_FIR)
include(TableGen)
find_package(MLIR REQUIRED CONFIG)

View File

@@ -4,23 +4,25 @@
# Set your project compile flags.
link_directories(${LLVM_LIBRARY_DIR})
set( LLVM_LINK_COMPONENTS
${LLVM_TARGETS_TO_BUILD}
Option
Support
)
add_flang_tool(flang-new
driver.cpp
fc1_main.cpp
LINK_COMPONENTS
${LLVM_COMMON_COMPONENTS}
Support
Target
Option
)
# Link against LLVM and Clang libraries
target_link_libraries(flang-new
PRIVATE
flangFrontend
flangFrontendTool
)
clang_target_link_libraries(flang-new
PRIVATE
clangDriver
clangBasic
clangFrontend