Skip to content

Commit 7a2d6bd

Browse files
[Build] Update compile definitions for WASI target
`U_TIMEZONE` must not be defined and dynamic loading features must be disabled for WASI target.
1 parent a36358f commit 7a2d6bd

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

CMakeLists.txt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -57,20 +57,22 @@ if(CMAKE_SYSTEM_NAME STREQUAL Windows)
5757
$<$<COMPILE_LANGUAGE:C,CXX>:U_TIMEZONE=_timezone>
5858
$<$<COMPILE_LANGUAGE:C,CXX>:_CRT_SECURE_NO_DEPRECATE>
5959
$<$<COMPILE_LANGUAGE:C,CXX>:U_PLATFORM_USES_ONLY_WIN32_API>)
60-
else()
61-
add_compile_definitions(
62-
$<$<COMPILE_LANGUAGE:C,CXX>:U_TIMEZONE=timezone>)
63-
endif()
64-
# WASI specific settings
65-
if(CMAKE_SYSTEM_NAME STREQUAL WASI)
60+
elseif(CMAKE_SYSTEM_NAME STREQUAL WASI)
61+
# WASI specific settings
6662
add_compile_definitions(
6763
$<$<COMPILE_LANGUAGE:C,CXX>:U_HAVE_TZSET=0>
6864
$<$<COMPILE_LANGUAGE:C,CXX>:U_HAVE_TZNAME=0>
6965
$<$<COMPILE_LANGUAGE:C,CXX>:U_HAVE_TIMEZONE=0>
66+
$<$<COMPILE_LANGUAGE:C,CXX>:HAVE_DLFCN_H=0>
67+
$<$<COMPILE_LANGUAGE:C,CXX>:HAVE_DLOPEN=0>
68+
$<$<COMPILE_LANGUAGE:C,CXX>:U_ENABLE_DYLOAD=0>
7069
$<$<COMPILE_LANGUAGE:C,CXX>:_WASI_EMULATED_SIGNAL>
7170
$<$<COMPILE_LANGUAGE:C,CXX>:_WASI_EMULATED_MMAN>)
7271
add_link_options("-Lwasi-emulated-signal")
7372
add_link_options("-Lwasi-emulated-mman")
73+
else()
74+
add_compile_definitions(
75+
$<$<COMPILE_LANGUAGE:C,CXX>:U_TIMEZONE=timezone>)
7476
endif()
7577

7678
if(BUILD_SHARED_LIBS)

Package.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ var buildSettings: [CXXSetting] = [
3838
.define("U_COMMON_IMPLEMENTATION"),
3939
.define("U_I18N_IMPLEMENTATION"),
4040
.define("U_IO_IMPLEMENTATION"),
41+
.define("HAVE_DLFCN_H", to: "0", .when(platforms: [.wasi])),
42+
.define("HAVE_DLOPEN", to: "0", .when(platforms: [.wasi])),
43+
.define("U_ENABLE_DYLOAD", to: "0", .when(platforms: [.wasi])),
44+
4145
// Where data are stored
4246
.define("ICU_DATA_DIR", to: "\"/usr/share/icu/\""),
4347
.define("USE_PACKAGE_DATA", to: "1"),

0 commit comments

Comments
 (0)