@@ -154,6 +154,10 @@ if(NOT AOT_TARGET_TRIPLE STREQUAL "")
154154 elseif (AOT_TARGET_TRIPLE STREQUAL "wasm32-unknown-wasi" )
155155 set (TARGET_SYSTEM_NAME "wasi" )
156156 set (TARGET_ARCH "wasm" )
157+ elseif (AOT_TARGET_TRIPLE STREQUAL "wasm32-unknown-wasi-threads" )
158+ set (TARGET_SYSTEM_NAME "wasi" )
159+ set (TARGET_SYSTEM_VARIANT "threads" )
160+ set (TARGET_ARCH "wasm" )
157161 elseif (AOT_TARGET_TRIPLE STREQUAL "x86_64-none-linux-android" )
158162 set (TARGET_SYSTEM_NAME "android" )
159163 set (TARGET_ARCH "x86_64" )
@@ -181,11 +185,17 @@ endif()
181185# HOST OS CHECKS
182186######################################
183187
188+ if ("${triple} " STREQUAL "wasm32-wasi-threads" )
189+ set (CMAKE_SYSTEM_VARIANT "threads" )
190+ endif ()
191+
184192message ("CMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME} " )
185193message ("CMAKE_SYSTEM_VARIANT=${CMAKE_SYSTEM_VARIANT} " )
186194
187195set (CLR_CMAKE_HOST_OS ${CMAKE_SYSTEM_NAME} )
188- string (TOLOWER ${CLR_CMAKE_HOST_OS} CLR_CMAKE_HOST_OS)
196+ set (CLR_CMAKE_HOST_VARIANT ${CMAKE_SYSTEM_VARIANT} )
197+ string (TOLOWER "${CLR_CMAKE_HOST_OS} " CLR_CMAKE_HOST_OS)
198+ string (TOLOWER "${CLR_CMAKE_HOST_VARIANT} " CLR_CMAKE_HOST_VARIANT)
189199
190200# TODO: check if we can enable this on more platforms
191201# set(MONO_KEYWORD_THREAD "__thread")
@@ -196,7 +206,7 @@ if(CLR_CMAKE_HOST_OS STREQUAL "darwin")
196206 set (HOST_OSX 1)
197207 set (PTHREAD_POINTER_ID 1)
198208 set (USE_MACH_SEMA 1)
199- if (CMAKE_SYSTEM_VARIANT STREQUAL "maccatalyst" )
209+ if (CLR_CMAKE_HOST_VARIANT STREQUAL "maccatalyst" )
200210 set (HOST_MACCAT 1)
201211 endif ()
202212elseif (CLR_CMAKE_HOST_OS STREQUAL "ios" OR CLR_CMAKE_HOST_OS STREQUAL "tvos" )
@@ -312,14 +322,15 @@ endif()
312322
313323if (NOT TARGET_SYSTEM_NAME)
314324 set (TARGET_SYSTEM_NAME "${CLR_CMAKE_HOST_OS} " )
325+ set (TARGET_SYSTEM_VARIANT "${CLR_CMAKE_HOST_VARIANT} " )
315326endif ()
316327
317328if (TARGET_SYSTEM_NAME STREQUAL "darwin" )
318329 set (TARGET_UNIX 1)
319330 set (TARGET_MACH 1)
320331 set (TARGET_OSX 1)
321332 set (TARGET_DARWIN 1)
322- if (CMAKE_SYSTEM_VARIANT STREQUAL "maccatalyst" )
333+ if (TARGET_SYSTEM_VARIANT STREQUAL "maccatalyst" )
323334 set (TARGET_MACCAT 1)
324335 endif ()
325336elseif (TARGET_SYSTEM_NAME STREQUAL "ios" OR TARGET_SYSTEM_NAME STREQUAL "tvos" )
@@ -353,7 +364,9 @@ elseif(TARGET_SYSTEM_NAME STREQUAL "emscripten")
353364 endif ()
354365elseif (TARGET_SYSTEM_NAME STREQUAL "wasi" )
355366 set (TARGET_WASI 1)
356- set (DISABLE_THREADS 1)
367+ if (NOT (TARGET_SYSTEM_VARIANT STREQUAL "threads" ))
368+ set (DISABLE_THREADS 1)
369+ endif ()
357370 if (CMAKE_BUILD_TYPE STREQUAL "Release" )
358371 add_compile_options (-Os)
359372 endif ()
0 commit comments