[flang-commits] [flang] 2d6b9db - [flang] Use the Flang cmake-functions to add targets.

David Truby via flang-commits flang-commits at lists.llvm.org
Thu Apr 16 07:53:19 PDT 2020


Author: Mehdi Chinoune
Date: 2020-04-16T15:51:30+01:00
New Revision: 2d6b9dbfef55364fc762682cd8ab93045582944a

URL: https://github.com/llvm/llvm-project/commit/2d6b9dbfef55364fc762682cd8ab93045582944a
DIFF: https://github.com/llvm/llvm-project/commit/2d6b9dbfef55364fc762682cd8ab93045582944a.diff

LOG: [flang] Use the Flang cmake-functions to add targets.

Summary: It also removes the cycle-dependency between FortranSemantics and FortranEvaluate.

Reviewers: #flang, jdoerfert, sscalpone

Reviewed By: #flang, sscalpone

Subscribers: DavidTruby, schweitz, tskeith, mgorny, aartbik, llvm-commits

Tags: #flang, #llvm

Differential Revision: https://reviews.llvm.org/D78215

Added: 
    

Modified: 
    flang/cmake/modules/AddFlang.cmake
    flang/lib/Common/CMakeLists.txt
    flang/lib/Decimal/CMakeLists.txt
    flang/lib/Evaluate/CMakeLists.txt
    flang/lib/Lower/CMakeLists.txt
    flang/lib/Optimizer/Dialect/CMakeLists.txt
    flang/lib/Optimizer/Support/CMakeLists.txt
    flang/lib/Parser/CMakeLists.txt
    flang/lib/Semantics/CMakeLists.txt
    flang/runtime/CMakeLists.txt
    flang/tools/f18-parse-demo/CMakeLists.txt
    flang/tools/f18/CMakeLists.txt
    flang/tools/tco/CMakeLists.txt

Removed: 
    


################################################################################
diff  --git a/flang/cmake/modules/AddFlang.cmake b/flang/cmake/modules/AddFlang.cmake
index 84610a633a04..7fe8b7e9f406 100644
--- a/flang/cmake/modules/AddFlang.cmake
+++ b/flang/cmake/modules/AddFlang.cmake
@@ -109,7 +109,6 @@ macro(add_flang_tool name)
   endif()
 
   add_flang_executable(${name} ${ARGN})
-  add_dependencies(${name} flang-resource-headers)
 
   if (FLANG_BUILD_TOOLS)
     set(export_to_flangtargets)

diff  --git a/flang/lib/Common/CMakeLists.txt b/flang/lib/Common/CMakeLists.txt
index f1be58f0e6d0..7865eb582307 100644
--- a/flang/lib/Common/CMakeLists.txt
+++ b/flang/lib/Common/CMakeLists.txt
@@ -1,15 +1,10 @@
 
-add_library(FortranCommon
+add_flang_library(FortranCommon
   Fortran.cpp
   Fortran-features.cpp
   default-kinds.cpp
   idioms.cpp
-)
-
-target_compile_features(FortranCommon PUBLIC cxx_std_17)
 
-install (TARGETS FortranCommon
-  ARCHIVE DESTINATION lib
-  LIBRARY DESTINATION lib
-  RUNTIME DESTINATION bin
+  LINK_COMPONENTS
+  Support
 )

diff  --git a/flang/lib/Decimal/CMakeLists.txt b/flang/lib/Decimal/CMakeLists.txt
index 92f87621fc05..18655f096f0d 100644
--- a/flang/lib/Decimal/CMakeLists.txt
+++ b/flang/lib/Decimal/CMakeLists.txt
@@ -1,13 +1,5 @@
 
-add_library(FortranDecimal
+add_flang_library(FortranDecimal
   binary-to-decimal.cpp
   decimal-to-binary.cpp
 )
-
-target_compile_features(FortranDecimal PUBLIC cxx_std_17)
-
-install (TARGETS FortranDecimal
-  ARCHIVE DESTINATION lib
-  LIBRARY DESTINATION lib
-  RUNTIME DESTINATION bin
-)

diff  --git a/flang/lib/Evaluate/CMakeLists.txt b/flang/lib/Evaluate/CMakeLists.txt
index a508bec10a63..8426995d948b 100644
--- a/flang/lib/Evaluate/CMakeLists.txt
+++ b/flang/lib/Evaluate/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-add_library(FortranEvaluate
+add_flang_library(FortranEvaluate
   call.cpp
   characteristics.cpp
   check-expression.cpp
@@ -25,23 +25,13 @@ add_library(FortranEvaluate
   tools.cpp
   type.cpp
   variable.cpp
-)
-
-target_compile_features(FortranEvaluate PUBLIC cxx_std_17)
 
-target_link_libraries(FortranEvaluate
+  LINK_LIBS
   FortranCommon
   FortranDecimal
-  FortranSemantics
   FortranParser
 )
 
-install (TARGETS FortranEvaluate
-  ARCHIVE DESTINATION lib
-  LIBRARY DESTINATION lib
-  RUNTIME DESTINATION bin
-)
-
 if (LIBPGMATH_DIR)
   # If pgmath library is found, it can be used for constant folding.
   find_library(LIBPGMATH pgmath PATHS ${LIBPGMATH_DIR})

diff  --git a/flang/lib/Lower/CMakeLists.txt b/flang/lib/Lower/CMakeLists.txt
index 87131cd9fa53..6cbcfc3b630e 100644
--- a/flang/lib/Lower/CMakeLists.txt
+++ b/flang/lib/Lower/CMakeLists.txt
@@ -1,13 +1,7 @@
-add_library(FortranLower
-  PFTBuilder.cpp
-)
 
-target_link_libraries(FortranLower
-  LLVMSupport
-)
+add_flang_library(FortranLower
+  PFTBuilder.cpp
 
-install (TARGETS FortranLower
-  ARCHIVE DESTINATION lib
-  LIBRARY DESTINATION lib
-  RUNTIME DESTINATION bin
+  LINK_COMPONENTS
+  Support
 )

diff  --git a/flang/lib/Optimizer/Dialect/CMakeLists.txt b/flang/lib/Optimizer/Dialect/CMakeLists.txt
index 711fc64c5a2a..462039ebf6a3 100644
--- a/flang/lib/Optimizer/Dialect/CMakeLists.txt
+++ b/flang/lib/Optimizer/Dialect/CMakeLists.txt
@@ -1,13 +1,14 @@
-add_llvm_library(FIRDialect
+add_flang_library(FIRDialect
   FIRAttr.cpp
   FIRDialect.cpp
   FIROps.cpp
   FIRType.cpp
-)
 
-add_dependencies(FIRDialect FIROpsIncGen)
+  DEPENDS
+  FIROpsIncGen
 
-target_link_libraries(FIRDialect
+  LINK_LIBS
+  FIRSupport
   MLIRTargetLLVMIR
   MLIRTargetLLVMIRModuleTranslation
   MLIREDSC
@@ -16,12 +17,9 @@ target_link_libraries(FIRDialect
   MLIRSupport
   MLIRStandardToLLVM
   MLIRTransforms
-  LLVMAsmParser
-  LLVMAsmPrinter
-  LLVMRemarks
-)
 
-install (TARGETS FIRDialect
-  ARCHIVE DESTINATION lib
-  LIBRARY DESTINATION lib
+  LINK_COMPONENTS
+  AsmParser
+  AsmPrinter
+  Remarks
 )

diff  --git a/flang/lib/Optimizer/Support/CMakeLists.txt b/flang/lib/Optimizer/Support/CMakeLists.txt
index 88a1fc78a5f6..d8e270f5e73e 100644
--- a/flang/lib/Optimizer/Support/CMakeLists.txt
+++ b/flang/lib/Optimizer/Support/CMakeLists.txt
@@ -1,10 +1,8 @@
-add_llvm_library(FIRSupport
-  KindMapping.cpp
-)
+get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
 
-target_link_libraries(FIRSupport FIRDialect)
+add_flang_library(FIRSupport
+  KindMapping.cpp
 
-install (TARGETS FIRSupport
-  ARCHIVE DESTINATION lib
-  LIBRARY DESTINATION lib
+  LINK_LIBS
+  ${dialect_libs}
 )

diff  --git a/flang/lib/Parser/CMakeLists.txt b/flang/lib/Parser/CMakeLists.txt
index 9dc6480a2e9d..cc691de35b48 100644
--- a/flang/lib/Parser/CMakeLists.txt
+++ b/flang/lib/Parser/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-add_library(FortranParser
+add_flang_library(FortranParser
   Fortran-parsers.cpp
   char-buffer.cpp
   char-block.cpp
@@ -23,17 +23,10 @@ add_library(FortranParser
   tools.cpp
   unparse.cpp
   user-state.cpp
-)
-
-target_compile_features(FortranParser PRIVATE cxx_std_17)
 
-target_link_libraries(FortranParser
+  LINK_LIBS
   FortranCommon
-  LLVMSupport
-)
 
-install (TARGETS FortranParser
-  ARCHIVE DESTINATION lib
-  LIBRARY DESTINATION lib
-  RUNTIME DESTINATION bin
+  LINK_COMPONENTS
+  Support
 )

diff  --git a/flang/lib/Semantics/CMakeLists.txt b/flang/lib/Semantics/CMakeLists.txt
index feedbab17860..04c9cf8b31fc 100644
--- a/flang/lib/Semantics/CMakeLists.txt
+++ b/flang/lib/Semantics/CMakeLists.txt
@@ -1,5 +1,5 @@
 
-add_library(FortranSemantics
+add_flang_library(FortranSemantics
   assignment.cpp
   attr.cpp
   canonicalize-do.cpp
@@ -35,18 +35,11 @@ add_library(FortranSemantics
   tools.cpp
   type.cpp
   unparse-with-symbols.cpp
-)
-
-target_compile_features(FortranSemantics PUBLIC cxx_std_17)
 
-target_link_libraries(FortranSemantics
+  LINK_LIBS
   FortranCommon
   FortranEvaluate
-  LLVMSupport
-)
 
-install (TARGETS FortranSemantics
-  ARCHIVE DESTINATION lib
-  LIBRARY DESTINATION lib
-  RUNTIME DESTINATION bin
+  LINK_COMPONENTS
+  Support
 )

diff  --git a/flang/runtime/CMakeLists.txt b/flang/runtime/CMakeLists.txt
index 9232d8095fc1..7da1a2128292 100644
--- a/flang/runtime/CMakeLists.txt
+++ b/flang/runtime/CMakeLists.txt
@@ -26,7 +26,7 @@ endif()
 
 configure_file(config.h.cmake config.h)
 
-add_library(FortranRuntime
+add_flang_library(FortranRuntime
   ISO_Fortran_binding.cpp
   allocatable.cpp
   buffer.cpp
@@ -53,12 +53,7 @@ add_library(FortranRuntime
   type-code.cpp
   unit.cpp
   unit-map.cpp
-)
-
-target_include_directories(FortranRuntime
-  PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
-)
 
-target_link_libraries(FortranRuntime
+  LINK_LIBS
   FortranDecimal
 )

diff  --git a/flang/tools/f18-parse-demo/CMakeLists.txt b/flang/tools/f18-parse-demo/CMakeLists.txt
index fc64a3f0d904..ab13d602542f 100644
--- a/flang/tools/f18-parse-demo/CMakeLists.txt
+++ b/flang/tools/f18-parse-demo/CMakeLists.txt
@@ -1,13 +1,9 @@
-add_llvm_tool(f18-parse-demo
+add_flang_tool(f18-parse-demo
   f18-parse-demo.cpp
   stub-evaluate.cpp
-  )
-set_property(TARGET f18-parse-demo PROPERTY CXX_STANDARD 17)
-target_compile_features(f18-parse-demo PRIVATE cxx_std_17)
+)
 
 target_link_libraries(f18-parse-demo
   PRIVATE
   FortranParser
   )
-
-#install(TARGETS f18-parse-demo DESTINATION bin)

diff  --git a/flang/tools/f18/CMakeLists.txt b/flang/tools/f18/CMakeLists.txt
index 8745f7c1caef..70e09ef55144 100644
--- a/flang/tools/f18/CMakeLists.txt
+++ b/flang/tools/f18/CMakeLists.txt
@@ -1,9 +1,7 @@
-add_llvm_tool(f18
+add_flang_tool(f18
   dump.cpp
   f18.cpp
 )
-set_property(TARGET f18 PROPERTY CXX_STANDARD 17)
-target_compile_features(f18 PRIVATE cxx_std_17)
 
 target_link_libraries(f18
   PRIVATE

diff  --git a/flang/tools/tco/CMakeLists.txt b/flang/tools/tco/CMakeLists.txt
index 33f410677705..451952ba5a3b 100644
--- a/flang/tools/tco/CMakeLists.txt
+++ b/flang/tools/tco/CMakeLists.txt
@@ -19,6 +19,5 @@ set(LIBS
   MLIRVectorToLLVM
 )
 
-add_llvm_tool(tco tco.cpp)
-llvm_update_compile_flags(tco)
+add_flang_tool(tco tco.cpp)
 target_link_libraries(tco PRIVATE ${LIBS})


        


More information about the flang-commits mailing list