@@ -30,7 +30,7 @@ if(${OPENMP_STANDALONE_BUILD})
30
30
# If adding a new architecture, take a look at cmake/LibompGetArchitecture.cmake
31
31
libomp_get_architecture (LIBOMP_DETECTED_ARCH )
32
32
set (LIBOMP_ARCH ${LIBOMP_DETECTED_ARCH} CACHE STRING
33
- "The architecture to build for (x86_64/i386/arm/ppc64/ppc64le/aarch64/mic/mips/mips64/riscv64/loongarch64/ve/s390x)." )
33
+ "The architecture to build for (x86_64/i386/arm/ppc64/ppc64le/aarch64/mic/mips/mips64/riscv64/loongarch64/ve/s390x/wasm32 )." )
34
34
# Should assertions be enabled? They are on by default.
35
35
set (LIBOMP_ENABLE_ASSERTIONS TRUE CACHE BOOL
36
36
"enable assertions?" )
@@ -67,6 +67,8 @@ else() # Part of LLVM build
67
67
set (LIBOMP_ARCH ve )
68
68
elseif (LIBOMP_NATIVE_ARCH MATCHES "s390x" )
69
69
set (LIBOMP_ARCH s390x )
70
+ elseif (LIBOMP_NATIVE_ARCH MATCHES "wasm" )
71
+ set (LIBOMP_ARCH wasm32 )
70
72
else ()
71
73
# last ditch effort
72
74
libomp_get_architecture (LIBOMP_ARCH )
@@ -87,7 +89,7 @@ if(LIBOMP_ARCH STREQUAL "aarch64")
87
89
endif ()
88
90
endif ()
89
91
90
- libomp_check_variable (LIBOMP_ARCH 32e x86_64 32 i386 arm ppc64 ppc64le aarch64 aarch64_a64fx mic mips mips64 riscv64 loongarch64 ve s390x )
92
+ libomp_check_variable (LIBOMP_ARCH 32e x86_64 32 i386 arm ppc64 ppc64le aarch64 aarch64_a64fx mic mips mips64 riscv64 loongarch64 ve s390x wasm32 )
91
93
92
94
set (LIBOMP_LIB_TYPE normal CACHE STRING
93
95
"Performance,Profiling,Stubs library (normal/profile/stubs)" )
@@ -168,6 +170,7 @@ set(RISCV64 FALSE)
168
170
set (LOONGARCH64 FALSE )
169
171
set (VE FALSE )
170
172
set (S390X FALSE )
173
+ set (WASM FALSE )
171
174
if ("${LIBOMP_ARCH} " STREQUAL "i386" OR "${LIBOMP_ARCH} " STREQUAL "32" ) # IA-32 architecture
172
175
set (IA32 TRUE )
173
176
elseif ("${LIBOMP_ARCH} " STREQUAL "x86_64" OR "${LIBOMP_ARCH} " STREQUAL "32e" ) # Intel(R) 64 architecture
@@ -198,6 +201,8 @@ elseif("${LIBOMP_ARCH}" STREQUAL "ve") # VE architecture
198
201
set (VE TRUE )
199
202
elseif ("${LIBOMP_ARCH} " STREQUAL "s390x" ) # S390x (Z) architecture
200
203
set (S390X TRUE )
204
+ elseif ("${LIBOMP_ARCH} " STREQUAL "wasm32" ) # WebAssembly architecture
205
+ set (WASM TRUE )
201
206
endif ()
202
207
203
208
# Set some flags based on build_type
@@ -306,6 +311,11 @@ endif()
306
311
set (LIBOMP_ENABLE_SHARED TRUE CACHE BOOL
307
312
"Shared library instead of static library?" )
308
313
314
+ if (WASM )
315
+ libomp_warning_say ("The WebAssembly build currently only supports static libraries; forcing LIBOMP_ENABLE_SHARED to false" )
316
+ set (LIBOMP_ENABLE_SHARED FALSE )
317
+ endif ()
318
+
309
319
if (WIN32 AND NOT LIBOMP_ENABLE_SHARED )
310
320
libomp_error_say ("Static libraries requested but not available on Windows" )
311
321
endif ()
0 commit comments