File tree Expand file tree Collapse file tree 11 files changed +47
-20
lines changed Expand file tree Collapse file tree 11 files changed +47
-20
lines changed Original file line number Diff line number Diff line change @@ -247,6 +247,8 @@ else()
247247 include_directories (SYSTEM ${MLIR_TABLEGEN_OUTPUT_DIR} )
248248endif ()
249249
250+ option (FLANG_INCLUDE_RUNTIME "Build the runtime in-tree (deprecated; to be replaced with LLVM_ENABLE_RUNTIMES=flang-rt)" ON )
251+
250252set (FLANG_TOOLS_INSTALL_DIR "${CMAKE_INSTALL_BINDIR} " CACHE PATH
251253 "Path for binary subdirectory (defaults to '${CMAKE_INSTALL_BINDIR} ')" )
252254mark_as_advanced (FLANG_TOOLS_INSTALL_DIR)
@@ -487,7 +489,9 @@ if (FLANG_BUILD_TOOLS)
487489 add_subdirectory (tools)
488490endif ()
489491
490- add_subdirectory (runtime)
492+ if (FLANG_INCLUDE_RUNTIME)
493+ add_subdirectory (runtime)
494+ endif ()
491495
492496if (LLVM_INCLUDE_EXAMPLES)
493497 add_subdirectory (examples)
Original file line number Diff line number Diff line change 1- add_subdirectory (ExternalHelloWorld)
1+ if (FLANG_INCLUDE_RUNTIME)
2+ add_subdirectory (ExternalHelloWorld)
3+ endif ()
24add_subdirectory (PrintFlangFunctionNames)
35add_subdirectory (FlangOmpReport)
46add_subdirectory (FeatureList)
Original file line number Diff line number Diff line change @@ -71,9 +71,13 @@ set(FLANG_TEST_DEPENDS
7171 llvm-objdump
7272 llvm-readobj
7373 split-file
74- FortranRuntime
7574 FortranDecimal
7675)
76+
77+ if (FLANG_INCLUDE_RUNTIME)
78+ list (APPEND FLANG_TEST_DEPENDS FortranRuntime)
79+ endif ()
80+
7781if (LLVM_ENABLE_PLUGINS AND NOT WIN32 )
7882 list (APPEND FLANG_TEST_DEPENDS Bye)
7983endif ()
Original file line number Diff line number Diff line change 11! UNSUPPORTED: system-windows
2+ ! REQUIRES: flang-rt
23! RUN: split-file %s %t
34! RUN: chmod +x %t/runtest.sh
45! RUN: %t/runtest.sh %t %t/ffile.f90 %t/cfile.c %flang | FileCheck %s
Original file line number Diff line number Diff line change 11! UNSUPPORTED: system-windows
2+ ! REQUIRES: flang-rt
23! Verify that flang can correctly build executables.
34
45! RUN: %flang %s -o %t
Original file line number Diff line number Diff line change @@ -3,7 +3,7 @@ This test makes sure that flang's runtime does not depend on the C++ runtime
33library. It tries to link this simple file against libFortranRuntime.a with
44a C compiler.
55
6- REQUIRES: c-compiler
6+ REQUIRES: c-compiler, flang-rt
77
88RUN: %if system-aix %{ export OBJECT_MODE=64 %}
99RUN: %cc -std=c99 %s -I%include %libruntime -lm \
Original file line number Diff line number Diff line change 163163 ToolSubst ("%not_todo_abort_cmd" , command = FindTool ("not" ), unresolved = "fatal" )
164164 )
165165
166+ if config .flang_include_runtime :
167+ config .available_features .add ("flang-rt" )
168+
166169# Define some variables to help us test that the flang runtime doesn't depend on
167170# the C++ runtime libraries. For this we need a C compiler. If for some reason
168171# we don't have one, we can just disable the test.
169- if config .cc :
172+ if config .flang_include_runtime and config . cc :
170173 libruntime = os .path .join (config .flang_lib_dir , "libFortranRuntime.a" )
171174 include = os .path .join (config .flang_src_dir , "include" )
172175
Original file line number Diff line number Diff line change 11@LIT_SITE_CFG_IN_HEADER@
22
33import sys
4+ import lit.util
45
56config.llvm_tools_dir = lit_config.substitute("@LLVM_TOOLS_DIR@")
67config.llvm_shlib_dir = lit_config.substitute(path(r"@SHLIBDIR@"))
3233 config.openmp_module_dir = None
3334config.flang_runtime_f128_math_lib = "@FLANG_RUNTIME_F128_MATH_LIB@"
3435config.have_ldbl_mant_dig_113 = "@HAVE_LDBL_MANT_DIG_113@"
36+ config.flang_include_runtime = lit.util.pythonize_bool("@FLANG_INCLUDE_RUNTIME@")
3537
3638import lit.llvm
3739lit.llvm.initialize(lit_config, config)
Original file line number Diff line number Diff line change @@ -109,7 +109,7 @@ if (NOT CMAKE_CROSSCOMPILING)
109109 set (compile_with "-fsyntax-only" )
110110 set (object_output "" )
111111 set (include_in_link FALSE )
112- if (${filename} IN_LIST MODULES_WITH_IMPLEMENTATION)
112+ if (${filename} IN_LIST MODULES_WITH_IMPLEMENTATION AND FLANG_INCLUDE_RUNTIME )
113113 set (object_output "${CMAKE_CURRENT_BINARY_DIR} /${filename}${CMAKE_CXX_OUTPUT_EXTENSION} " )
114114 set (compile_with -c -o ${object_output} )
115115 set (include_in_link TRUE )
Original file line number Diff line number Diff line change 1+ include (AddFlangOffloadRuntime)
2+
13if (FLANG_EXPERIMENTAL_CUDA_RUNTIME)
24 # If Fortran runtime is built as CUDA library, the linking
35 # of targets that link FortranRuntime must be done
@@ -11,6 +13,11 @@ add_custom_target(FlangUnitTests)
1113set_target_properties (FlangUnitTests PROPERTIES FOLDER "Flang/Tests" )
1214
1315function (add_flang_unittest_offload_properties target )
16+ # Do not apply runtime properties if not even compiling the runtime.
17+ if (NOT FLANG_INCLUDE_RUNTIME)
18+ return ()
19+ endif ()
20+
1421 # Set CUDA_RESOLVE_DEVICE_SYMBOLS.
1522 if (FLANG_EXPERIMENTAL_CUDA_RUNTIME)
1623 set_target_properties (${target}
@@ -75,5 +82,7 @@ add_subdirectory(Optimizer)
7582add_subdirectory (Common)
7683add_subdirectory (Decimal)
7784add_subdirectory (Evaluate)
78- add_subdirectory (Runtime)
85+ if (FLANG_INCLUDE_RUNTIME)
86+ add_subdirectory (Runtime)
87+ endif ()
7988add_subdirectory (Frontend)
You can’t perform that action at this time.
0 commit comments