Jean Perier | 7a6ab39 | 2021-10-01 06:58:52 | [diff] [blame] | 1 | #===-- runtime/CMakeLists.txt ----------------------------------------------===# |
| 2 | # |
| 3 | # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| 4 | # See https://llvm.org/LICENSE.txt for license information. |
| 5 | # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| 6 | # |
| 7 | #===------------------------------------------------------------------------===# |
peter klausler | 6261c09 | 2018-05-16 17:22:33 | [diff] [blame] | 8 | |
Martin Storsjö | b75a3c9 | 2022-07-19 21:47:02 | [diff] [blame] | 9 | if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) |
Mark de Wever | cbaa359 | 2023-05-24 16:12:32 | [diff] [blame] | 10 | cmake_minimum_required(VERSION 3.20.0) |
Martin Storsjö | b75a3c9 | 2022-07-19 21:47:02 | [diff] [blame] | 11 | |
David Spickett | ffc67bb | 2023-10-02 09:01:11 | [diff] [blame] | 12 | project(FlangRuntime C CXX) |
Martin Storsjö | b75a3c9 | 2022-07-19 21:47:02 | [diff] [blame] | 13 | |
| 14 | set(CMAKE_CXX_STANDARD 17) |
| 15 | set(CMAKE_CXX_STANDARD_REQUIRED TRUE) |
| 16 | set(CMAKE_CXX_EXTENSIONS OFF) |
| 17 | |
| 18 | set(FLANG_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..") |
| 19 | |
| 20 | set(LLVM_COMMON_CMAKE_UTILS "${FLANG_SOURCE_DIR}/../cmake") |
| 21 | set(LLVM_CMAKE_UTILS "${FLANG_SOURCE_DIR}/../llvm/cmake") |
Slava Zakharin | 55c88aa | 2023-04-24 18:09:57 | [diff] [blame] | 22 | set(CLANG_CMAKE_UTILS "${FLANG_SOURCE_DIR}/../clang/cmake") |
Martin Storsjö | b75a3c9 | 2022-07-19 21:47:02 | [diff] [blame] | 23 | |
| 24 | # Add path for custom modules |
| 25 | list(INSERT CMAKE_MODULE_PATH 0 |
| 26 | "${FLANG_SOURCE_DIR}/cmake" |
| 27 | "${FLANG_SOURCE_DIR}/cmake/modules" |
| 28 | "${LLVM_COMMON_CMAKE_UTILS}" |
| 29 | "${LLVM_COMMON_CMAKE_UTILS}/Modules" |
| 30 | "${LLVM_CMAKE_UTILS}" |
| 31 | "${LLVM_CMAKE_UTILS}/modules" |
Slava Zakharin | 55c88aa | 2023-04-24 18:09:57 | [diff] [blame] | 32 | "${CLANG_CMAKE_UTILS}/modules" |
Martin Storsjö | b75a3c9 | 2022-07-19 21:47:02 | [diff] [blame] | 33 | ) |
| 34 | |
Slava Zakharin | 55c88aa | 2023-04-24 18:09:57 | [diff] [blame] | 35 | include(AddClang) |
Martin Storsjö | b75a3c9 | 2022-07-19 21:47:02 | [diff] [blame] | 36 | include(AddLLVM) |
| 37 | include(AddFlang) |
Jonathon Penix | 7ce775f | 2023-01-11 17:08:13 | [diff] [blame] | 38 | include(HandleLLVMOptions) |
Martin Storsjö | b75a3c9 | 2022-07-19 21:47:02 | [diff] [blame] | 39 | |
| 40 | include(TestBigEndian) |
| 41 | test_big_endian(IS_BIGENDIAN) |
| 42 | if (IS_BIGENDIAN) |
| 43 | add_compile_definitions(FLANG_BIG_ENDIAN=1) |
| 44 | else () |
| 45 | add_compile_definitions(FLANG_LITTLE_ENDIAN=1) |
| 46 | endif () |
| 47 | include_directories(BEFORE |
| 48 | ${FLANG_SOURCE_DIR}/include) |
Slava Zakharin | a468d02 | 2024-02-20 20:33:08 | [diff] [blame] | 49 | |
| 50 | # The out of tree builds of the compiler and the Fortran runtime |
| 51 | # must use the same setting of FLANG_RUNTIME_F128_MATH_LIB |
| 52 | # to be composable. Failure to synchronize this setting may result |
| 53 | # in linking errors or fatal failures in F128 runtime functions. |
| 54 | set(FLANG_RUNTIME_F128_MATH_LIB "" CACHE STRING |
| 55 | "Specifies the target library used for implementing IEEE-754 128-bit float \ |
| 56 | math in F18 runtime, e.g. it might be libquadmath for targets where \ |
| 57 | REAL(16) is mapped to __float128, or libm for targets where REAL(16) \ |
| 58 | is mapped to long double, etc." |
| 59 | ) |
Martin Storsjö | b75a3c9 | 2022-07-19 21:47:02 | [diff] [blame] | 60 | endif() |
| 61 | |
Isuru Fernando | ea5efd1 | 2020-03-12 20:28:35 | [diff] [blame] | 62 | include(CheckCXXSymbolExists) |
| 63 | include(CheckCXXSourceCompiles) |
Isuru Fernando | ea5efd1 | 2020-03-12 20:28:35 | [diff] [blame] | 64 | check_cxx_symbol_exists(strerror_r string.h HAVE_STRERROR_R) |
| 65 | # Can't use symbol exists here as the function is overloaded in C++ |
| 66 | check_cxx_source_compiles( |
| 67 | "#include <string.h> |
| 68 | int main() { |
| 69 | char buf[4096]; |
| 70 | return strerror_s(buf, 4096, 0); |
| 71 | } |
| 72 | " |
| 73 | HAVE_DECL_STRERROR_S) |
| 74 | |
Slava Zakharin | 50d848d | 2024-03-05 21:36:48 | [diff] [blame] | 75 | # Check if 128-bit float computations can be done via long double. |
| 76 | check_cxx_source_compiles( |
| 77 | "#include <cfloat> |
| 78 | #if LDBL_MANT_DIG != 113 |
| 79 | #error LDBL_MANT_DIG != 113 |
| 80 | #endif |
| 81 | int main() { return 0; } |
| 82 | " |
| 83 | HAVE_LDBL_MANT_DIG_113) |
| 84 | |
David Truby | 15e734f | 2022-11-18 16:55:56 | [diff] [blame] | 85 | check_cxx_compiler_flag(-fno-lto FLANG_RUNTIME_HAS_FNO_LTO_FLAG) |
| 86 | if (FLANG_RUNTIME_HAS_FNO_LTO_FLAG) |
| 87 | set(NO_LTO_FLAGS "-fno-lto") |
| 88 | else() |
| 89 | set(NO_LTO_FLAGS "") |
| 90 | endif() |
| 91 | |
Isuru Fernando | ea5efd1 | 2020-03-12 20:28:35 | [diff] [blame] | 92 | configure_file(config.h.cmake config.h) |
Isuru Fernando | bb73d1b | 2020-06-08 19:13:58 | [diff] [blame] | 93 | # include_directories is used here instead of target_include_directories |
| 94 | # because add_flang_library creates multiple objects (STATIC/SHARED, OBJECT) |
| 95 | # with different names |
| 96 | include_directories(AFTER ${CMAKE_CURRENT_BINARY_DIR}) |
Isuru Fernando | ea5efd1 | 2020-03-12 20:28:35 | [diff] [blame] | 97 | |
David Truby | 15e734f | 2022-11-18 16:55:56 | [diff] [blame] | 98 | append(${NO_LTO_FLAGS} CMAKE_C_FLAGS) |
| 99 | append(${NO_LTO_FLAGS} CMAKE_CXX_FLAGS) |
| 100 | |
Shao-Ce SUN | 6637259 | 2023-02-13 09:41:35 | [diff] [blame] | 101 | # Disable libstdc++/libc++ assertions, even in an LLVM_ENABLE_ASSERTIONS build, |
| 102 | # to avoid an unwanted dependency on libstdc++/libc++.so. |
Jay Foad | 7783bba | 2023-02-02 12:18:41 | [diff] [blame] | 103 | add_definitions(-U_GLIBCXX_ASSERTIONS) |
Shao-Ce SUN | 6637259 | 2023-02-13 09:41:35 | [diff] [blame] | 104 | add_definitions(-U_LIBCPP_ENABLE_ASSERTIONS) |
Jay Foad | 7783bba | 2023-02-02 12:18:41 | [diff] [blame] | 105 | |
David Spickett | ffc67bb | 2023-10-02 09:01:11 | [diff] [blame] | 106 | add_subdirectory(FortranMain) |
Slava Zakharin | 50d848d | 2024-03-05 21:36:48 | [diff] [blame] | 107 | add_subdirectory(Float128Math) |
David Spickett | ffc67bb | 2023-10-02 09:01:11 | [diff] [blame] | 108 | |
Slava Zakharin | 3212051 | 2023-05-22 21:05:18 | [diff] [blame] | 109 | set(sources |
Alexis Perry | 352d347 | 2020-01-28 02:18:45 | [diff] [blame] | 110 | ISO_Fortran_binding.cpp |
peter klausler | 4d54bb7 | 2020-03-30 23:37:30 | [diff] [blame] | 111 | allocatable.cpp |
Jean Perier | 5226f8a | 2023-02-22 08:16:01 | [diff] [blame] | 112 | array-constructor.cpp |
peter klausler | 65f5290 | 2021-07-29 19:02:45 | [diff] [blame] | 113 | assign.cpp |
peter klausler | f7be251 | 2020-01-24 00:59:27 | [diff] [blame] | 114 | buffer.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 115 | character.cpp |
Diana Picus | 0c37529 | 2021-08-25 07:51:48 | [diff] [blame] | 116 | command.cpp |
David Truby | d983f5f | 2022-10-03 11:01:50 | [diff] [blame] | 117 | complex-powi.cpp |
peter klausler | e372e0f | 2021-03-31 16:14:08 | [diff] [blame] | 118 | complex-reduction.c |
peter klausler | 95696d5 | 2020-02-05 00:55:45 | [diff] [blame] | 119 | connection.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 120 | copy.cpp |
peter klausler | a48e416 | 2021-07-19 18:53:20 | [diff] [blame] | 121 | derived-api.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 122 | derived.cpp |
peter klausler | 43fadef | 2021-06-25 17:40:08 | [diff] [blame] | 123 | descriptor-io.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 124 | descriptor.cpp |
peter klausler | 50e0b29 | 2021-05-12 19:07:51 | [diff] [blame] | 125 | dot-product.cpp |
peter klausler | 3b63571 | 2020-02-13 22:41:56 | [diff] [blame] | 126 | edit-input.cpp |
| 127 | edit-output.cpp |
peter klausler | f7be251 | 2020-01-24 00:59:27 | [diff] [blame] | 128 | environment.cpp |
vdonaldson | 3aba926 | 2023-12-04 17:55:54 | [diff] [blame] | 129 | exceptions.cpp |
Yi Wu | e2b896a | 2024-01-10 10:02:48 | [diff] [blame] | 130 | execute.cpp |
Peter Klausler | 627a8ac | 2021-12-07 22:38:17 | [diff] [blame] | 131 | extensions.cpp |
Slava Zakharin | 00f3454 | 2024-03-21 22:12:31 | [diff] [blame] | 132 | external-unit.cpp |
peter klausler | beb5ac8 | 2021-04-22 21:23:45 | [diff] [blame] | 133 | extrema.cpp |
Alexis Perry | 352d347 | 2020-01-28 02:18:45 | [diff] [blame] | 134 | file.cpp |
peter klausler | beb5ac8 | 2021-04-22 21:23:45 | [diff] [blame] | 135 | findloc.cpp |
Alexis Perry | 352d347 | 2020-01-28 02:18:45 | [diff] [blame] | 136 | format.cpp |
Peter Steinfeld | 6cd417b | 2022-02-09 19:17:18 | [diff] [blame] | 137 | inquiry.cpp |
peter klausler | 95696d5 | 2020-02-05 00:55:45 | [diff] [blame] | 138 | internal-unit.cpp |
Alexis Perry | 352d347 | 2020-01-28 02:18:45 | [diff] [blame] | 139 | io-api.cpp |
| 140 | io-error.cpp |
| 141 | io-stmt.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 142 | iostat.cpp |
Alexis Perry | 352d347 | 2020-01-28 02:18:45 | [diff] [blame] | 143 | main.cpp |
Tom Eccles | 4ff8ba7 | 2023-03-17 09:26:39 | [diff] [blame] | 144 | matmul-transpose.cpp |
peter klausler | 5e1421b | 2021-05-17 21:06:44 | [diff] [blame] | 145 | matmul.cpp |
Alexis Perry | 352d347 | 2020-01-28 02:18:45 | [diff] [blame] | 146 | memory.cpp |
peter klausler | 78a39d2 | 2021-04-02 16:30:31 | [diff] [blame] | 147 | misc-intrinsic.cpp |
peter klausler | 6a1c3ef | 2021-05-05 18:37:49 | [diff] [blame] | 148 | namelist.cpp |
Peter Klausler | 7cf1608 | 2023-04-13 17:28:19 | [diff] [blame] | 149 | non-tbp-dio.cpp |
peter klausler | 5f6c5c6 | 2021-04-01 19:59:59 | [diff] [blame] | 150 | numeric.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 151 | pointer.cpp |
| 152 | product.cpp |
Slava Zakharin | 00f3454 | 2024-03-21 22:12:31 | [diff] [blame] | 153 | pseudo-unit.cpp |
Valentin Clement | 6116ff2 | 2021-12-07 20:19:34 | [diff] [blame] | 154 | ragged.cpp |
peter klausler | e111404 | 2021-04-07 20:14:14 | [diff] [blame] | 155 | random.cpp |
Peter Klausler | 3ada883 | 2024-03-26 16:21:16 | [diff] [blame] | 156 | reduce.cpp |
peter klausler | e372e0f | 2021-03-31 16:14:08 | [diff] [blame] | 157 | reduction.cpp |
peter klausler | 8df28f0 | 2020-11-10 23:13:02 | [diff] [blame] | 158 | stat.cpp |
Alexis Perry | 352d347 | 2020-01-28 02:18:45 | [diff] [blame] | 159 | stop.cpp |
peter klausler | beb5ac8 | 2021-04-22 21:23:45 | [diff] [blame] | 160 | sum.cpp |
Peter Klausler | 77ff6f7 | 2021-11-26 19:39:31 | [diff] [blame] | 161 | support.cpp |
Tom Eccles | c019372 | 2023-04-27 09:53:54 | [diff] [blame] | 162 | temporary-stack.cpp |
Alexis Perry | 352d347 | 2020-01-28 02:18:45 | [diff] [blame] | 163 | terminator.cpp |
Diana Picus | 57e8562 | 2021-06-09 08:19:43 | [diff] [blame] | 164 | time-intrinsic.cpp |
Alexis Perry | 352d347 | 2020-01-28 02:18:45 | [diff] [blame] | 165 | tools.cpp |
| 166 | transformational.cpp |
| 167 | type-code.cpp |
peter klausler | 79caf69 | 2021-06-17 20:13:19 | [diff] [blame] | 168 | type-info.cpp |
peter klausler | 3b63571 | 2020-02-13 22:41:56 | [diff] [blame] | 169 | unit-map.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 170 | unit.cpp |
Peter Klausler | bafbae2 | 2022-03-16 19:32:03 | [diff] [blame] | 171 | utf.cpp |
Slava Zakharin | 3212051 | 2023-05-22 21:05:18 | [diff] [blame] | 172 | ) |
peter klausler | a8fed82 | 2018-08-02 18:45:11 | [diff] [blame] | 173 | |
Slava Zakharin | b329da8 | 2024-04-05 21:46:24 | [diff] [blame] | 174 | include(AddFlangOffloadRuntime) |
Slava Zakharin | 3212051 | 2023-05-22 21:05:18 | [diff] [blame] | 175 | |
| 176 | # List of files that are buildable for all devices. |
| 177 | set(supported_files |
Slava Zakharin | 8b953fd | 2023-10-04 15:21:46 | [diff] [blame] | 178 | ISO_Fortran_binding.cpp |
Slava Zakharin | b4b23ff | 2023-12-20 19:52:51 | [diff] [blame] | 179 | allocatable.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 180 | array-constructor.cpp |
Slava Zakharin | 8b953fd | 2023-10-04 15:21:46 | [diff] [blame] | 181 | assign.cpp |
Slava Zakharin | 8ebf741 | 2024-03-25 23:01:25 | [diff] [blame] | 182 | buffer.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 183 | character.cpp |
Slava Zakharin | 8ebf741 | 2024-03-25 23:01:25 | [diff] [blame] | 184 | connection.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 185 | copy.cpp |
Slava Zakharin | b4b23ff | 2023-12-20 19:52:51 | [diff] [blame] | 186 | derived-api.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 187 | derived.cpp |
Slava Zakharin | 4bdec58 | 2023-09-27 15:20:17 | [diff] [blame] | 188 | descriptor.cpp |
Slava Zakharin | 8ebf741 | 2024-03-25 23:01:25 | [diff] [blame] | 189 | descriptor-io.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 190 | dot-product.cpp |
Slava Zakharin | 8ebf741 | 2024-03-25 23:01:25 | [diff] [blame] | 191 | edit-input.cpp |
| 192 | edit-output.cpp |
| 193 | environment.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 194 | extrema.cpp |
Slava Zakharin | 8ebf741 | 2024-03-25 23:01:25 | [diff] [blame] | 195 | external-unit.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 196 | findloc.cpp |
Slava Zakharin | 8ebf741 | 2024-03-25 23:01:25 | [diff] [blame] | 197 | format.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 198 | inquiry.cpp |
Slava Zakharin | 8ebf741 | 2024-03-25 23:01:25 | [diff] [blame] | 199 | internal-unit.cpp |
| 200 | io-api.cpp |
| 201 | io-error.cpp |
| 202 | io-stmt.cpp |
| 203 | iostat.cpp |
Slava Zakharin | b4b23ff | 2023-12-20 19:52:51 | [diff] [blame] | 204 | matmul-transpose.cpp |
| 205 | matmul.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 206 | memory.cpp |
| 207 | misc-intrinsic.cpp |
Slava Zakharin | 8ebf741 | 2024-03-25 23:01:25 | [diff] [blame] | 208 | namelist.cpp |
| 209 | non-tbp-dio.cpp |
Slava Zakharin | b4b23ff | 2023-12-20 19:52:51 | [diff] [blame] | 210 | numeric.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 211 | pointer.cpp |
| 212 | product.cpp |
Slava Zakharin | 8ebf741 | 2024-03-25 23:01:25 | [diff] [blame] | 213 | pseudo-unit.cpp |
Slava Zakharin | 76facde | 2023-12-28 21:50:43 | [diff] [blame] | 214 | ragged.cpp |
Slava Zakharin | 8b953fd | 2023-10-04 15:21:46 | [diff] [blame] | 215 | stat.cpp |
Slava Zakharin | b4b23ff | 2023-12-20 19:52:51 | [diff] [blame] | 216 | sum.cpp |
| 217 | support.cpp |
Slava Zakharin | 4bdec58 | 2023-09-27 15:20:17 | [diff] [blame] | 218 | terminator.cpp |
Slava Zakharin | 8b953fd | 2023-10-04 15:21:46 | [diff] [blame] | 219 | tools.cpp |
Slava Zakharin | 3212051 | 2023-05-22 21:05:18 | [diff] [blame] | 220 | transformational.cpp |
Slava Zakharin | 4bdec58 | 2023-09-27 15:20:17 | [diff] [blame] | 221 | type-code.cpp |
Slava Zakharin | 8b953fd | 2023-10-04 15:21:46 | [diff] [blame] | 222 | type-info.cpp |
Slava Zakharin | 8ebf741 | 2024-03-25 23:01:25 | [diff] [blame] | 223 | unit.cpp |
| 224 | utf.cpp |
Slava Zakharin | 3212051 | 2023-05-22 21:05:18 | [diff] [blame] | 225 | ) |
| 226 | |
Slava Zakharin | b329da8 | 2024-04-05 21:46:24 | [diff] [blame] | 227 | enable_cuda_compilation("${supported_files}") |
| 228 | enable_omp_offload_compilation("${supported_files}") |
Slava Zakharin | 3212051 | 2023-05-22 21:05:18 | [diff] [blame] | 229 | |
Slava Zakharin | 50d848d | 2024-03-05 21:36:48 | [diff] [blame] | 230 | if (NOT TARGET FortranFloat128Math) |
| 231 | # If FortranFloat128Math is not defined, then we are not building |
| 232 | # standalone FortranFloat128Math library. Instead, include |
| 233 | # the relevant sources into FortranRuntime itself. |
| 234 | # The information is provided via FortranFloat128MathILib |
| 235 | # interface library. |
| 236 | get_target_property(f128_sources |
| 237 | FortranFloat128MathILib INTERFACE_SOURCES |
| 238 | ) |
| 239 | if (f128_sources) |
| 240 | # The interface may define special macros for Float128Math files, |
| 241 | # so we need to propagate them. |
| 242 | get_target_property(f128_defs |
| 243 | FortranFloat128MathILib INTERFACE_COMPILE_DEFINITIONS |
| 244 | ) |
| 245 | set_property(SOURCE ${f128_sources} |
| 246 | APPEND PROPERTY COMPILE_DEFINITIONS |
| 247 | ${f128_defs} |
| 248 | ) |
| 249 | list(APPEND sources ${f128_sources}) |
| 250 | endif() |
| 251 | endif() |
| 252 | |
David Truby | cf1e342 | 2023-11-10 16:13:49 | [diff] [blame] | 253 | if (NOT DEFINED MSVC) |
| 254 | add_flang_library(FortranRuntime |
| 255 | ${sources} |
| 256 | LINK_LIBS |
| 257 | FortranDecimal |
Diana Picus | 467abac | 2022-08-11 09:21:40 | [diff] [blame] | 258 | |
David Truby | cf1e342 | 2023-11-10 16:13:49 | [diff] [blame] | 259 | INSTALL_WITH_TOOLCHAIN |
| 260 | ) |
| 261 | else() |
| 262 | add_flang_library(FortranRuntime |
| 263 | ${sources} |
| 264 | LINK_LIBS |
| 265 | FortranDecimal |
| 266 | ) |
| 267 | set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded) |
| 268 | add_flang_library(FortranRuntime.static ${sources} |
| 269 | LINK_LIBS |
| 270 | FortranDecimal.static |
| 271 | INSTALL_WITH_TOOLCHAIN) |
| 272 | set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDLL) |
| 273 | add_flang_library(FortranRuntime.dynamic ${sources} |
| 274 | LINK_LIBS |
| 275 | FortranDecimal.dynamic |
| 276 | INSTALL_WITH_TOOLCHAIN) |
| 277 | set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDebug) |
| 278 | add_flang_library(FortranRuntime.static_dbg ${sources} |
| 279 | LINK_LIBS |
| 280 | FortranDecimal.static_dbg |
| 281 | INSTALL_WITH_TOOLCHAIN) |
| 282 | set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreadedDebugDLL) |
| 283 | add_flang_library(FortranRuntime.dynamic_dbg ${sources} |
| 284 | LINK_LIBS |
| 285 | FortranDecimal.dynamic_dbg |
| 286 | INSTALL_WITH_TOOLCHAIN) |
David Truby | 1256d1d | 2023-11-14 14:22:43 | [diff] [blame] | 287 | add_dependencies(FortranRuntime FortranRuntime.static FortranRuntime.dynamic |
| 288 | FortranRuntime.static_dbg FortranRuntime.dynamic_dbg) |
David Truby | cf1e342 | 2023-11-10 16:13:49 | [diff] [blame] | 289 | endif() |