# Infrastructure to build flang driver entry point. Flang driver depends on
# LLVM libraries.

# 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

  DEPENDS
  # These libraries are used in the linker invocation generated by the driver
  # (i.e. when constructing the linker job). Without them the driver would be
  # unable to generate executables.
  FortranRuntime
  FortranDecimal
  Fortran_main
)

target_link_libraries(flang-new
  PRIVATE
  flangFrontend
  flangFrontendTool
)

clang_target_link_libraries(flang-new
  PRIVATE
  clangDriver
  clangBasic
)

option(FLANG_PLUGIN_SUPPORT "Build Flang with plugin support." ON)

# Enable support for plugins, which need access to symbols from flang-new
if(FLANG_PLUGIN_SUPPORT)
  export_executable_symbols_for_plugins(flang-new)
endif()

install(TARGETS flang-new DESTINATION "${CMAKE_INSTALL_BINDIR}")
