1
1
# Compiler
2
2
3
- if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
4
- set (COMPILER_GCC 1)
5
- elseif (CMAKE_CXX_COMPILER_ID MATCHES "AppleClang" )
3
+ if (CMAKE_CXX_COMPILER_ID MATCHES "AppleClang" )
6
4
set (COMPILER_CLANG 1) # Safe to treat AppleClang as a regular Clang, in general.
7
5
elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
8
6
set (COMPILER_CLANG 1)
@@ -18,16 +16,8 @@ message (STATUS "Using compiler:\n${COMPILER_SELF_IDENTIFICATION}")
18
16
set (CLANG_MINIMUM_VERSION 15)
19
17
set (XCODE_MINIMUM_VERSION 12.0)
20
18
set (APPLE_CLANG_MINIMUM_VERSION 12.0.0)
21
- set (GCC_MINIMUM_VERSION 11)
22
19
23
- if (COMPILER_GCC)
24
- message (FATAL_ERROR "Compilation with GCC is unsupported. Please use Clang instead." )
25
-
26
- if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS ${GCC_MINIMUM_VERSION} AND NOT CMAKE_VERSION VERSION_LESS 2.8.9)
27
- message (FATAL_ERROR "Compilation with GCC version ${CMAKE_CXX_COMPILER_VERSION} is unsupported, the minimum required version is ${GCC_MINIMUM_VERSION} ." )
28
- endif ()
29
-
30
- elseif (COMPILER_CLANG)
20
+ if (COMPILER_CLANG)
31
21
if (CMAKE_CXX_COMPILER_ID MATCHES "AppleClang" )
32
22
# (Experimental!) Specify "-DALLOW_APPLECLANG=ON" when running CMake configuration step, if you want to experiment with using it.
33
23
if (NOT ALLOW_APPLECLANG AND NOT DEFINED ENV{ALLOW_APPLECLANG})
@@ -58,19 +48,14 @@ if (LINKER_NAME MATCHES "gold")
58
48
endif ()
59
49
60
50
if (NOT LINKER_NAME)
61
- if (COMPILER_GCC)
62
- find_program (LLD_PATH NAMES "ld.lld" )
63
- elseif (COMPILER_CLANG)
51
+ if (COMPILER_CLANG)
64
52
if (OS_LINUX)
65
53
find_program (LLD_PATH NAMES "ld.lld-${COMPILER_VERSION_MAJOR} " "lld-${COMPILER_VERSION_MAJOR} " "ld.lld" "lld" )
66
54
endif ()
67
55
endif ()
68
56
if (OS_LINUX)
69
57
if (LLD_PATH)
70
- if (COMPILER_GCC)
71
- # GCC driver requires one of supported linker names like "lld".
72
- set (LINKER_NAME "lld" )
73
- else ()
58
+ if (COMPILER_CLANG)
74
59
# Clang driver simply allows full linker path.
75
60
set (LINKER_NAME ${LLD_PATH} )
76
61
endif ()
@@ -89,8 +74,6 @@ if (LINKER_NAME)
89
74
configure_file ("${CMAKE_CURRENT_SOURCE_DIR} /cmake/ld.lld.in" "${LLD_WRAPPER} " @ONLY)
90
75
91
76
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --ld-path=${LLD_WRAPPER} " )
92
- else ()
93
- set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=${LINKER_NAME} " )
94
77
endif ()
95
78
96
79
endif ()
@@ -103,9 +86,7 @@ endif()
103
86
104
87
# Archiver
105
88
106
- if (COMPILER_GCC)
107
- find_program (LLVM_AR_PATH NAMES "llvm-ar" "llvm-ar-15" "llvm-ar-14" "llvm-ar-13" "llvm-ar-12" )
108
- else ()
89
+ if (COMPILER_CLANG)
109
90
find_program (LLVM_AR_PATH NAMES "llvm-ar-${COMPILER_VERSION_MAJOR} " "llvm-ar" )
110
91
endif ()
111
92
@@ -117,9 +98,7 @@ message(STATUS "Using archiver: ${CMAKE_AR}")
117
98
118
99
# Ranlib
119
100
120
- if (COMPILER_GCC)
121
- find_program (LLVM_RANLIB_PATH NAMES "llvm-ranlib" "llvm-ranlib-15" "llvm-ranlib-14" "llvm-ranlib-13" "llvm-ranlib-12" )
122
- else ()
101
+ if (COMPILER_CLANG)
123
102
find_program (LLVM_RANLIB_PATH NAMES "llvm-ranlib-${COMPILER_VERSION_MAJOR} " "llvm-ranlib" )
124
103
endif ()
125
104
@@ -131,9 +110,7 @@ message(STATUS "Using ranlib: ${CMAKE_RANLIB}")
131
110
132
111
# Install Name Tool
133
112
134
- if (COMPILER_GCC)
135
- find_program (LLVM_INSTALL_NAME_TOOL_PATH NAMES "llvm-install-name-tool" "llvm-install-name-tool-15" "llvm-install-name-tool-14" "llvm-install-name-tool-13" "llvm-install-name-tool-12" )
136
- else ()
113
+ if (COMPILER_CLANG)
137
114
find_program (LLVM_INSTALL_NAME_TOOL_PATH NAMES "llvm-install-name-tool-${COMPILER_VERSION_MAJOR} " "llvm-install-name-tool" )
138
115
endif ()
139
116
@@ -145,9 +122,7 @@ message(STATUS "Using install-name-tool: ${CMAKE_INSTALL_NAME_TOOL}")
145
122
146
123
# Objcopy
147
124
148
- if (COMPILER_GCC)
149
- find_program (OBJCOPY_PATH NAMES "llvm-objcopy" "llvm-objcopy-15" "llvm-objcopy-14" "llvm-objcopy-13" "llvm-objcopy-12" "objcopy" )
150
- else ()
125
+ if (COMPILER_CLANG)
151
126
find_program (OBJCOPY_PATH NAMES "llvm-objcopy-${COMPILER_VERSION_MAJOR} " "llvm-objcopy" "objcopy" )
152
127
endif ()
153
128
@@ -159,9 +134,7 @@ endif ()
159
134
160
135
# Strip
161
136
162
- if (COMPILER_GCC)
163
- find_program (STRIP_PATH NAMES "llvm-strip" "llvm-strip-15" "llvm-strip-14" "llvm-strip-13" "llvm-strip-12" "strip" )
164
- else ()
137
+ if (COMPILER_CLANG)
165
138
find_program (STRIP_PATH NAMES "llvm-strip-${COMPILER_VERSION_MAJOR} " "llvm-strip" "strip" )
166
139
endif ()
167
140
0 commit comments