@@ -40,7 +40,7 @@ if(TARGET_ARCH_NAME STREQUAL "arm")
40
40
set (TOOLCHAIN "arm-linux-gnueabihf" )
41
41
endif ()
42
42
if (TIZEN)
43
- set (TIZEN_TOOLCHAIN "armv7hl-tizen-linux-gnueabihf/9.2.0 " )
43
+ set (TIZEN_TOOLCHAIN "armv7hl-tizen-linux-gnueabihf" )
44
44
endif ()
45
45
elseif (TARGET_ARCH_NAME STREQUAL "arm64" )
46
46
set (CMAKE_SYSTEM_PROCESSOR aarch64)
@@ -49,7 +49,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "arm64")
49
49
elseif (LINUX)
50
50
set (TOOLCHAIN "aarch64-linux-gnu" )
51
51
if (TIZEN)
52
- set (TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu/9.2.0 " )
52
+ set (TIZEN_TOOLCHAIN "aarch64-tizen-linux-gnu" )
53
53
endif ()
54
54
elseif (FREEBSD)
55
55
set (triple "aarch64-unknown-freebsd12" )
@@ -58,7 +58,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "armel")
58
58
set (CMAKE_SYSTEM_PROCESSOR armv7l)
59
59
set (TOOLCHAIN "arm-linux-gnueabi" )
60
60
if (TIZEN)
61
- set (TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi/9.2.0 " )
61
+ set (TIZEN_TOOLCHAIN "armv7l-tizen-linux-gnueabi" )
62
62
endif ()
63
63
elseif (TARGET_ARCH_NAME STREQUAL "armv6" )
64
64
set (CMAKE_SYSTEM_PROCESSOR armv6l)
@@ -67,6 +67,13 @@ elseif(TARGET_ARCH_NAME STREQUAL "armv6")
67
67
else ()
68
68
set (TOOLCHAIN "arm-linux-gnueabihf" )
69
69
endif ()
70
+ elseif (TARGET_ARCH_NAME STREQUAL "loongarch64" )
71
+ set (CMAKE_SYSTEM_PROCESSOR "loongarch64" )
72
+ if (EXISTS ${CROSS_ROOTFS} /usr/lib/gcc/loongarch64-alpine-linux-musl)
73
+ set (TOOLCHAIN "loongarch64-alpine-linux-musl" )
74
+ else ()
75
+ set (TOOLCHAIN "loongarch64-linux-gnu" )
76
+ endif ()
70
77
elseif (TARGET_ARCH_NAME STREQUAL "ppc64le" )
71
78
set (CMAKE_SYSTEM_PROCESSOR ppc64le)
72
79
if (EXISTS ${CROSS_ROOTFS} /usr/lib/gcc/powerpc64le-alpine-linux-musl)
@@ -81,7 +88,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "riscv64")
81
88
else ()
82
89
set (TOOLCHAIN "riscv64-linux-gnu" )
83
90
if (TIZEN)
84
- set (TIZEN_TOOLCHAIN "riscv64-tizen-linux-gnu/13.1.0 " )
91
+ set (TIZEN_TOOLCHAIN "riscv64-tizen-linux-gnu" )
85
92
endif ()
86
93
endif ()
87
94
elseif (TARGET_ARCH_NAME STREQUAL "s390x" )
@@ -98,7 +105,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "x64")
98
105
elseif (LINUX)
99
106
set (TOOLCHAIN "x86_64-linux-gnu" )
100
107
if (TIZEN)
101
- set (TIZEN_TOOLCHAIN "x86_64-tizen-linux-gnu/9.2.0 " )
108
+ set (TIZEN_TOOLCHAIN "x86_64-tizen-linux-gnu" )
102
109
endif ()
103
110
elseif (FREEBSD)
104
111
set (triple "x86_64-unknown-freebsd12" )
@@ -115,10 +122,10 @@ elseif(TARGET_ARCH_NAME STREQUAL "x86")
115
122
set (TOOLCHAIN "i686-linux-gnu" )
116
123
endif ()
117
124
if (TIZEN)
118
- set (TIZEN_TOOLCHAIN "i586-tizen-linux-gnu/9.2.0 " )
125
+ set (TIZEN_TOOLCHAIN "i586-tizen-linux-gnu" )
119
126
endif ()
120
127
else ()
121
- message (FATAL_ERROR "Arch is ${TARGET_ARCH_NAME} . Only arm, arm64, armel, armv6, ppc64le, riscv64, s390x, x64 and x86 are supported!" )
128
+ message (FATAL_ERROR "Arch is ${TARGET_ARCH_NAME} . Only arm, arm64, armel, armv6, loongarch64, ppc64le, riscv64, s390x, x64 and x86 are supported!" )
122
129
endif ()
123
130
124
131
if (DEFINED ENV{TOOLCHAIN})
@@ -127,32 +134,46 @@ endif()
127
134
128
135
# Specify include paths
129
136
if (TIZEN)
130
- if (TARGET_ARCH_NAME STREQUAL "arm" )
131
- include_directories (SYSTEM ${CROSS_ROOTFS} /usr/lib/gcc/${TIZEN_TOOLCHAIN} /include /c++/)
132
- include_directories (SYSTEM ${CROSS_ROOTFS} /usr/lib/gcc/${TIZEN_TOOLCHAIN} /include /c++/armv7hl-tizen-linux-gnueabihf)
133
- endif ()
134
- if (TARGET_ARCH_NAME STREQUAL "armel" )
135
- include_directories (SYSTEM ${CROSS_ROOTFS} /usr/lib/gcc/${TIZEN_TOOLCHAIN} /include /c++/)
136
- include_directories (SYSTEM ${CROSS_ROOTFS} /usr/lib/gcc/${TIZEN_TOOLCHAIN} /include /c++/armv7l-tizen-linux-gnueabi)
137
- endif ()
138
- if (TARGET_ARCH_NAME STREQUAL "arm64" )
139
- include_directories (SYSTEM ${CROSS_ROOTFS} /usr/lib64/gcc/${TIZEN_TOOLCHAIN} /include /c++/)
140
- include_directories (SYSTEM ${CROSS_ROOTFS} /usr/lib64/gcc/${TIZEN_TOOLCHAIN} /include /c++/aarch64-tizen-linux-gnu)
141
- endif ()
142
- if (TARGET_ARCH_NAME STREQUAL "x86" )
143
- include_directories (SYSTEM ${CROSS_ROOTFS} /usr/lib/gcc/${TIZEN_TOOLCHAIN} /include /c++/)
144
- include_directories (SYSTEM ${CROSS_ROOTFS} /usr/lib/gcc/${TIZEN_TOOLCHAIN} /include /c++/i586-tizen-linux-gnu)
145
- endif ()
146
- if (TARGET_ARCH_NAME STREQUAL "x64" )
147
- include_directories (SYSTEM ${CROSS_ROOTFS} /usr/lib64/gcc/${TIZEN_TOOLCHAIN} /include /c++/)
148
- include_directories (SYSTEM ${CROSS_ROOTFS} /usr/lib64/gcc/${TIZEN_TOOLCHAIN} /include /c++/x86_64-tizen-linux-gnu)
149
- endif ()
150
- if (TARGET_ARCH_NAME STREQUAL "riscv64" )
151
- include_directories (SYSTEM ${CROSS_ROOTFS} /usr/lib64/gcc/${TIZEN_TOOLCHAIN} /include /c++/)
152
- include_directories (SYSTEM ${CROSS_ROOTFS} /usr/lib64/gcc/${TIZEN_TOOLCHAIN} /include /c++/riscv64-tizen-linux-gnu)
137
+ function (find_toolchain_dir prefix )
138
+ # Dynamically find the version subdirectory
139
+ file (GLOB DIRECTORIES "${prefix} /*" )
140
+ list (GET DIRECTORIES 0 FIRST_MATCH)
141
+ get_filename_component (TOOLCHAIN_VERSION ${FIRST_MATCH} NAME )
142
+
143
+ set (TIZEN_TOOLCHAIN_PATH "${prefix} /${TOOLCHAIN_VERSION} " PARENT_SCOPE)
144
+ endfunction ()
145
+
146
+ if (TARGET_ARCH_NAME MATCHES "^(arm|armel|x86)$" )
147
+ find_toolchain_dir("${CROSS_ROOTFS} /usr/lib/gcc/${TIZEN_TOOLCHAIN} " )
148
+ else ()
149
+ find_toolchain_dir("${CROSS_ROOTFS} /usr/lib64/gcc/${TIZEN_TOOLCHAIN} " )
153
150
endif ()
151
+
152
+ message (STATUS "TIZEN_TOOLCHAIN_PATH set to: ${TIZEN_TOOLCHAIN_PATH} " )
153
+
154
+ include_directories (SYSTEM ${TIZEN_TOOLCHAIN_PATH} /include /c++)
155
+ include_directories (SYSTEM ${TIZEN_TOOLCHAIN_PATH} /include /c++/${TIZEN_TOOLCHAIN} )
154
156
endif ()
155
157
158
+ function (locate_toolchain_exec exec var)
159
+ set (TOOLSET_PREFIX ${TOOLCHAIN} -)
160
+ string (TOUPPER ${exec} EXEC_UPPERCASE)
161
+ if (NOT "$ENV{CLR_${EXEC_UPPERCASE} }" STREQUAL "" )
162
+ set (${var} "$ENV{CLR_${EXEC_UPPERCASE} }" PARENT_SCOPE)
163
+ return ()
164
+ endif ()
165
+
166
+ find_program (EXEC_LOCATION_${exec}
167
+ NAMES
168
+ "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION} "
169
+ "${TOOLSET_PREFIX}${exec} " )
170
+
171
+ if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec} -NOTFOUND" )
172
+ message (FATAL_ERROR "Unable to find toolchain executable. Name: ${exec} , Prefix: ${TOOLSET_PREFIX} ." )
173
+ endif ()
174
+ set (${var} ${EXEC_LOCATION_${exec} } PARENT_SCOPE)
175
+ endfunction ()
176
+
156
177
if (ANDROID)
157
178
if (TARGET_ARCH_NAME STREQUAL "arm" )
158
179
set (ANDROID_ABI armeabi-v7a)
@@ -183,66 +204,24 @@ elseif(FREEBSD)
183
204
set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=lld" )
184
205
elseif (ILLUMOS)
185
206
set (CMAKE_SYSROOT "${CROSS_ROOTFS} " )
207
+ set (CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS} " )
208
+ set (CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp" )
209
+ set (CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp" )
186
210
187
211
include_directories (SYSTEM ${CROSS_ROOTFS} /include )
188
212
189
- set (TOOLSET_PREFIX ${TOOLCHAIN} -)
190
- function (locate_toolchain_exec exec var)
191
- string (TOUPPER ${exec} EXEC_UPPERCASE)
192
- if (NOT "$ENV{CLR_${EXEC_UPPERCASE} }" STREQUAL "" )
193
- set (${var} "$ENV{CLR_${EXEC_UPPERCASE} }" PARENT_SCOPE)
194
- return ()
195
- endif ()
196
-
197
- find_program (EXEC_LOCATION_${exec}
198
- NAMES
199
- "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION} "
200
- "${TOOLSET_PREFIX}${exec} " )
201
-
202
- if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec} -NOTFOUND" )
203
- message (FATAL_ERROR "Unable to find toolchain executable. Name: ${exec} , Prefix: ${TOOLSET_PREFIX} ." )
204
- endif ()
205
- set (${var} ${EXEC_LOCATION_${exec} } PARENT_SCOPE)
206
- endfunction ()
207
-
208
- set (CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS} " )
209
-
210
213
locate_toolchain_exec(gcc CMAKE_C_COMPILER)
211
214
locate_toolchain_exec(g++ CMAKE_CXX_COMPILER)
212
-
213
- set (CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp" )
214
- set (CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp" )
215
215
elseif (HAIKU)
216
216
set (CMAKE_SYSROOT "${CROSS_ROOTFS} " )
217
217
set (CMAKE_PROGRAM_PATH "${CMAKE_PROGRAM_PATH} ;${CROSS_ROOTFS} /cross-tools-x86_64/bin" )
218
-
219
- set (TOOLSET_PREFIX ${TOOLCHAIN} -)
220
- function (locate_toolchain_exec exec var)
221
- string (TOUPPER ${exec} EXEC_UPPERCASE)
222
- if (NOT "$ENV{CLR_${EXEC_UPPERCASE} }" STREQUAL "" )
223
- set (${var} "$ENV{CLR_${EXEC_UPPERCASE} }" PARENT_SCOPE)
224
- return ()
225
- endif ()
226
-
227
- find_program (EXEC_LOCATION_${exec}
228
- NAMES
229
- "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION} "
230
- "${TOOLSET_PREFIX}${exec} " )
231
-
232
- if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec} -NOTFOUND" )
233
- message (FATAL_ERROR "Unable to find toolchain executable. Name: ${exec} , Prefix: ${TOOLSET_PREFIX} ." )
234
- endif ()
235
- set (${var} ${EXEC_LOCATION_${exec} } PARENT_SCOPE)
236
- endfunction ()
237
-
238
218
set (CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS} " )
219
+ set (CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp" )
220
+ set (CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp" )
239
221
240
222
locate_toolchain_exec(gcc CMAKE_C_COMPILER)
241
223
locate_toolchain_exec(g++ CMAKE_CXX_COMPILER)
242
224
243
- set (CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp" )
244
- set (CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp" )
245
-
246
225
# let CMake set up the correct search paths
247
226
include (Platform/Haiku)
248
227
else ()
@@ -272,21 +251,21 @@ endif()
272
251
273
252
if (TARGET_ARCH_NAME MATCHES "^(arm|armel)$" )
274
253
if (TIZEN)
275
- add_toolchain_linker_flag("-B${CROSS_ROOTFS} /usr/lib/gcc/ ${TIZEN_TOOLCHAIN } " )
254
+ add_toolchain_linker_flag("-B${TIZEN_TOOLCHAIN_PATH } " )
276
255
add_toolchain_linker_flag("-L${CROSS_ROOTFS} /lib" )
277
256
add_toolchain_linker_flag("-L${CROSS_ROOTFS} /usr/lib" )
278
- add_toolchain_linker_flag("-L${CROSS_ROOTFS} /usr/lib/gcc/ ${TIZEN_TOOLCHAIN } " )
257
+ add_toolchain_linker_flag("-L${TIZEN_TOOLCHAIN_PATH } " )
279
258
endif ()
280
259
elseif (TARGET_ARCH_NAME MATCHES "^(arm64|x64|riscv64)$" )
281
260
if (TIZEN)
282
- add_toolchain_linker_flag("-B${CROSS_ROOTFS} /usr/lib64/gcc/ ${TIZEN_TOOLCHAIN } " )
261
+ add_toolchain_linker_flag("-B${TIZEN_TOOLCHAIN_PATH } " )
283
262
add_toolchain_linker_flag("-L${CROSS_ROOTFS} /lib64" )
284
263
add_toolchain_linker_flag("-L${CROSS_ROOTFS} /usr/lib64" )
285
- add_toolchain_linker_flag("-L${CROSS_ROOTFS} /usr/lib64/gcc/ ${TIZEN_TOOLCHAIN } " )
264
+ add_toolchain_linker_flag("-L${TIZEN_TOOLCHAIN_PATH } " )
286
265
287
266
add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS} /lib64" )
288
267
add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS} /usr/lib64" )
289
- add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS} /usr/lib64/gcc/ ${TIZEN_TOOLCHAIN } " )
268
+ add_toolchain_linker_flag("-Wl,--rpath-link=${TIZEN_TOOLCHAIN_PATH } " )
290
269
endif ()
291
270
elseif (TARGET_ARCH_NAME STREQUAL "s390x" )
292
271
add_toolchain_linker_flag("--target=${TOOLCHAIN} " )
@@ -297,10 +276,10 @@ elseif(TARGET_ARCH_NAME STREQUAL "x86")
297
276
endif ()
298
277
add_toolchain_linker_flag(-m32)
299
278
if (TIZEN)
300
- add_toolchain_linker_flag("-B${CROSS_ROOTFS} /usr/lib/gcc/ ${TIZEN_TOOLCHAIN } " )
279
+ add_toolchain_linker_flag("-B${TIZEN_TOOLCHAIN_PATH } " )
301
280
add_toolchain_linker_flag("-L${CROSS_ROOTFS} /lib" )
302
281
add_toolchain_linker_flag("-L${CROSS_ROOTFS} /usr/lib" )
303
- add_toolchain_linker_flag("-L${CROSS_ROOTFS} /usr/lib/gcc/ ${TIZEN_TOOLCHAIN } " )
282
+ add_toolchain_linker_flag("-L${TIZEN_TOOLCHAIN_PATH } " )
304
283
endif ()
305
284
elseif (ILLUMOS)
306
285
add_toolchain_linker_flag("-L${CROSS_ROOTFS} /lib/amd64" )
@@ -312,7 +291,7 @@ endif()
312
291
313
292
# Specify compile options
314
293
315
- if ((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|ppc64le|riscv64|s390x|x64|x86)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS OR HAIKU)
294
+ if ((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|loongarch64| ppc64le|riscv64|s390x|x64|x86)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS OR HAIKU)
316
295
set (CMAKE_C_COMPILER_TARGET ${TOOLCHAIN} )
317
296
set (CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN} )
318
297
set (CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN} )
0 commit comments