[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