Skip to content

Commit 27cb240

Browse files
committed
Update CMake files
1 parent 4bc1bbe commit 27cb240

File tree

6 files changed

+48
-24
lines changed

6 files changed

+48
-24
lines changed

CMakeLists.txt

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,20 @@ cmake_minimum_required(VERSION 2.8)
1919
# In order to bootstrap the runtime library we need to skip
2020
# CMake's Fortran tests
2121
SET(CMAKE_Fortran_COMPILER_WORKS 1)
22+
SET(CMAKE_Fortran_ABI_COMPILED 0)
23+
SET(CMAKE_Fortran_COMPILER_SUPPORTS_F90 1)
24+
SET(CMAKE_Fortran_PREPROCESS_SOURCE
25+
"<CMAKE_Fortran_COMPILER> -cpp <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> -o <PREPROCESSED_SOURCE>")
26+
SET(CMAKE_Fortran_MODDIR_FLAG "-module ")
2227

23-
if( NOT DEFINED TARGET_ARCHITECTURE )
24-
execute_process(COMMAND uname -m OUTPUT_STRIP_TRAILING_WHITESPACE
25-
OUTPUT_VARIABLE TARGET_ARCHITECTURE)
28+
# If we are not building as a part of LLVM, build Flang as an
29+
# standalone project, using LLVM as an external library:
30+
if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
31+
project(Flang)
2632
endif()
2733

28-
if( NOT DEFINED TARGET_OS )
29-
execute_process(COMMAND uname -s OUTPUT_STRIP_TRAILING_WHITESPACE
30-
OUTPUT_VARIABLE TARGET_OS)
31-
endif()
34+
set(TARGET_OS ${CMAKE_HOST_SYSTEM_NAME} CACHE STRING "Target OS")
35+
set(TARGET_ARCHITECTURE ${CMAKE_HOST_SYSTEM_PROCESSOR} CACHE STRING "Target Architecture")
3236

3337
if( ${TARGET_OS} STREQUAL "Linux" )
3438
set(OS "LINUX")
@@ -54,11 +58,6 @@ else()
5458
return()
5559
endif()
5660

57-
# The cmake documentation states that these are set. They are not so we
58-
# set them here
59-
set(CMAKE_HOST_SYSTEM_NAME ${TARGET_OS})
60-
set(CMAKE_HOST_SYSTEM_PROCESSOR ${TARGET_ARCHITECTURE})
61-
6261
# If we are not building as a part of LLVM, build Flang as an
6362
# standalone project, using LLVM as an external library:
6463
if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )

runtime/CMakeLists.txt

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,31 @@ set (RUNTIME_SHARED_DIR ${CMAKE_CURRENT_SOURCE_DIR}/shared)
1919
add_definitions(
2020
-DMAXCPUS=256
2121
-DMAXCPUSL=8
22-
-DMAXCPUSR=8
23-
-DTARGET_LINUX
24-
-DTARGET_LLVM
25-
-DLINUX
22+
-DMAXCPUSR=8
23+
-DTARGET_LLVM
2624
-DPGF90
2725
-DPGFLANG
2826
-DNATIVE_FPCVT
2927
-DPGI_LITTLE_ENDIAN
3028
-DINLINE_MEMOPS
3129
)
3230

31+
if( ${TARGET_OS} STREQUAL "Linux" )
32+
add_definitions(
33+
-DTARGET_LINUX
34+
-DLINUX
35+
)
36+
endif()
37+
3338
if( ${TARGET_ARCHITECTURE} STREQUAL "x86_64" )
3439
add_definitions(
3540
-DTARGET_X8664
36-
-DTARGET_LINUX_X8664
3741
)
42+
if( ${TARGET_OS} STREQUAL "Linux" )
43+
add_definitions(
44+
-DTARGET_LINUX_X8664
45+
)
46+
endif()
3847
elseif( ${TARGET_ARCHITECTURE} STREQUAL "aarch64" )
3948
add_definitions(
4049
-DTARGET_LLVM_ARM64

tools/flang1/flang1exe/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,10 +156,13 @@ target_compile_options(flang1
156156

157157
target_link_libraries(flang1
158158
flangArgParser
159-
${FLANG_LIB_DIR}/scutil.a
160-
-lm
159+
scutil
161160
)
162161

162+
if (NOT MSVC)
163+
target_link_libraries(flang1 m)
164+
endif()
165+
163166
# Install flang1 executable
164167
install(TARGETS flang1
165168
RUNTIME DESTINATION bin)

tools/flang1/utils/symtab/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ add_custom_command(
2222
${UTILS_SYMTAB_BIN_DIR}/symtabdf.h
2323
${UTILS_SYMTAB_BIN_DIR}/symnames.h
2424
${FLANG1_DOC_BIN_DIR}/symtab.rst
25-
COMMAND ${CMAKE_BINARY_DIR}/bin/fesymutil ${CMAKE_CURRENT_SOURCE_DIR}/symtab.n
25+
COMMAND fesymutil ${CMAKE_CURRENT_SOURCE_DIR}/symtab.n
2626
${CMAKE_CURRENT_SOURCE_DIR}/symtab.in.h
2727
-o -n ${UTILS_SYMTAB_BIN_DIR}/symtab.out.n
2828
${UTILS_SYMTAB_BIN_DIR}/symtab.h
@@ -50,7 +50,7 @@ add_custom_command(
5050
${UTILS_SYMTAB_BIN_DIR}/astdf.d
5151
${UTILS_SYMTAB_BIN_DIR}/ilmtp.h
5252
${FLANG1_DOC_BIN_DIR}/symini.rst
53-
COMMAND ${CMAKE_BINARY_DIR}/bin/fesymini ${UTILS_SYMTAB_DIR}/symini_ftn.n
53+
COMMAND fesymini ${UTILS_SYMTAB_DIR}/symini_ftn.n
5454
-o ${UTILS_SYMTAB_BIN_DIR}/syminidf.h
5555
${UTILS_SYMTAB_BIN_DIR}/pd.h
5656
${UTILS_SYMTAB_BIN_DIR}/ast.d

tools/flang2/flang2exe/CMakeLists.txt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,13 @@ target_compile_options(flang2
140140

141141
target_link_libraries(flang2
142142
flangArgParser
143-
${FLANG_LIB_DIR}/scutil.a
144-
-lm
143+
scutil
145144
)
146145

146+
if (NOT MSVC)
147+
target_link_libraries(flang2 m)
148+
endif()
149+
147150
add_dependencies(flang2
148151
gen_backend_error_headers # Error message headers
149152
gen_backend_symtab # Symbol table headers

tools/flang2/utils/upper/CMakeLists.txt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,20 @@ add_executable(upperl
2121
)
2222

2323
# Generate upper tables
24+
file(STRINGS "${UTILS_UPPER_DIR}/upperilm.in" UPPERILM_H_CONTENTS)
25+
list(SORT UPPERILM_H_CONTENTS)
26+
set(UPPERILM_H_CONTENTS_SORTED "")
27+
foreach(Line ${UPPERILM_H_CONTENTS})
28+
# Don't modify the line if it contains #local at the end.
29+
string(SUBSTRING "${Line}" 0 1 FIRST_CHAR)
30+
if(NOT "${FIRST_CHAR}" STREQUAL "#")
31+
set(UPPERILM_H_CONTENTS_SORTED "${UPPERILM_H_CONTENTS_SORTED}${Line}\n")
32+
endif()
33+
endforeach()
34+
file(WRITE ${UTILS_UPPER_BIN_DIR}/upperilm.sort "${UPPERILM_H_CONTENTS_SORTED}")
2435

2536
add_custom_command(
2637
OUTPUT ${UTILS_UPPER_BIN_DIR}/upperilm.h
27-
COMMAND LC_ALL=C sort ${UTILS_UPPER_DIR}/upperilm.in | grep -v "^ *\#" > ${UTILS_UPPER_BIN_DIR}/upperilm.sort
2838
COMMAND ${CMAKE_BINARY_DIR}/bin/upperl ${UTILS_UPPER_BIN_DIR}/upperilm.sort ${UTILS_UPPER_BIN_DIR}/upperilm.h
2939
DEPENDS upperl ${UTILS_UPPER_DIR}/upperilm.in
3040
)

0 commit comments

Comments
 (0)