Skip to content

Commit b75a3c9

Browse files
committed
[flang] Allow configuring building the flang runtime standalone
This allows building the flang runtime and libFortranDecimal standalone, without setting up the full llvm build, by pointing cmake to these directories. This is the other one out of two essential steps for building the flang runtimes for a foreign target, i.e. setting up cross compiling with flang. Differential Revision: https://reviews.llvm.org/D130352
1 parent 96a3b78 commit b75a3c9

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed

flang/lib/Decimal/CMakeLists.txt

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,40 @@
1+
if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
2+
cmake_minimum_required(VERSION 3.13.4)
3+
4+
project(FortranDecimal C CXX)
5+
6+
set(CMAKE_CXX_STANDARD 17)
7+
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
8+
set(CMAKE_CXX_EXTENSIONS OFF)
9+
10+
set(FLANG_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../..")
11+
12+
set(LLVM_COMMON_CMAKE_UTILS "${FLANG_SOURCE_DIR}/../cmake")
13+
set(LLVM_CMAKE_UTILS "${FLANG_SOURCE_DIR}/../llvm/cmake")
14+
15+
# Add path for custom modules
16+
list(INSERT CMAKE_MODULE_PATH 0
17+
"${FLANG_SOURCE_DIR}/cmake"
18+
"${FLANG_SOURCE_DIR}/cmake/modules"
19+
"${LLVM_COMMON_CMAKE_UTILS}"
20+
"${LLVM_COMMON_CMAKE_UTILS}/Modules"
21+
"${LLVM_CMAKE_UTILS}"
22+
"${LLVM_CMAKE_UTILS}/modules"
23+
)
24+
25+
include(AddLLVM)
26+
include(AddFlang)
27+
28+
include(TestBigEndian)
29+
test_big_endian(IS_BIGENDIAN)
30+
if (IS_BIGENDIAN)
31+
add_compile_definitions(FLANG_BIG_ENDIAN=1)
32+
else ()
33+
add_compile_definitions(FLANG_LITTLE_ENDIAN=1)
34+
endif ()
35+
include_directories(BEFORE
36+
${FLANG_SOURCE_DIR}/include)
37+
endif()
138

239
add_flang_library(FortranDecimal INSTALL_WITH_TOOLCHAIN
340
binary-to-decimal.cpp

flang/runtime/CMakeLists.txt

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,44 @@
66
#
77
#===------------------------------------------------------------------------===#
88

9+
if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
10+
cmake_minimum_required(VERSION 3.13.4)
11+
12+
project(FlangRuntime C CXX)
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")
22+
23+
# Add path for custom modules
24+
list(INSERT CMAKE_MODULE_PATH 0
25+
"${FLANG_SOURCE_DIR}/cmake"
26+
"${FLANG_SOURCE_DIR}/cmake/modules"
27+
"${LLVM_COMMON_CMAKE_UTILS}"
28+
"${LLVM_COMMON_CMAKE_UTILS}/Modules"
29+
"${LLVM_CMAKE_UTILS}"
30+
"${LLVM_CMAKE_UTILS}/modules"
31+
)
32+
33+
include(AddLLVM)
34+
include(AddFlang)
35+
36+
include(TestBigEndian)
37+
test_big_endian(IS_BIGENDIAN)
38+
if (IS_BIGENDIAN)
39+
add_compile_definitions(FLANG_BIG_ENDIAN=1)
40+
else ()
41+
add_compile_definitions(FLANG_LITTLE_ENDIAN=1)
42+
endif ()
43+
include_directories(BEFORE
44+
${FLANG_SOURCE_DIR}/include)
45+
endif()
46+
947
include(CheckCXXSymbolExists)
1048
include(CheckCXXSourceCompiles)
1149
check_cxx_symbol_exists(strerror string.h HAVE_STRERROR)

0 commit comments

Comments
 (0)