Skip to content

Commit 8c6d20c

Browse files
authored
[browser] build browserhost in host.native subset (#120298)
1 parent 3fe8518 commit 8c6d20c

File tree

10 files changed

+98
-63
lines changed

10 files changed

+98
-63
lines changed

eng/Subsets.props

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
<DefaultCoreClrSubsets Condition="'$(TargetRid)' == 'linux-armel'">clr.native+clr.corelib+clr.tools+clr.nativecorelib+clr.packages+clr.nativeaotlibs+clr.crossarchtools</DefaultCoreClrSubsets>
112112
<DefaultCoreClrSubsets Condition="'$(TargetsAndroid)' == 'true'">clr.native+clr.corelib+clr.tools+clr.nativecorelib+clr.packages+clr.nativeaotlibs+clr.crossarchtools</DefaultCoreClrSubsets>
113113
<DefaultCoreClrSubsets Condition="'$(TargetsAppleMobile)' == 'true'">clr.native+clr.corelib+clr.tools+clr.nativecorelib+clr.packages+clr.nativeaotlibs+clr.crossarchtools</DefaultCoreClrSubsets>
114-
<DefaultCoreClrSubsets Condition="'$(TargetsBrowser)' == 'true'">mono.emsdk+clr.native+clr.corelib+clr.tools+clr.packages+clr.crossarchtools</DefaultCoreClrSubsets>
114+
<DefaultCoreClrSubsets Condition="'$(TargetsBrowser)' == 'true'">mono.emsdk+clr.native+clr.corelib+clr.tools+clr.packages+clr.crossarchtools+host.native</DefaultCoreClrSubsets>
115115
<!-- Even on platforms that do not support the CoreCLR runtime, we still want to build ilasm/ildasm. -->
116116
<DefaultCoreClrSubsets Condition="'$(RuntimeFlavor)' != 'CoreCLR'">clr.iltools+clr.packages</DefaultCoreClrSubsets>
117117

@@ -591,22 +591,6 @@
591591
<ProjectToBuild Include="$(MonoProjectRoot)\wasm\workloads.proj" Category="mono" />
592592
</ItemGroup>
593593

594-
<!-- Host sets -->
595-
<ItemGroup Condition="$(_subset.Contains('+host.native+'))">
596-
<CorehostProjectToBuild Include="$(SharedNativeRoot)corehost\corehost.proj" />
597-
<ProjectToBuild Include="@(CorehostProjectToBuild)" AdditionalProperties="$(TargetCxxLibraryProperties)" Category="host" />
598-
</ItemGroup>
599-
600-
<ItemGroup Condition="$(_subset.Contains('+host.tools+'))">
601-
<ManagedProjectToBuild Include="$(InstallerProjectRoot)managed\**\*.csproj" />
602-
<ProjectToBuild Include="@(ManagedProjectToBuild)" BuildInParallel="true" Category="host" />
603-
</ItemGroup>
604-
605-
<ItemGroup Condition="$(_subset.Contains('+host.pkg+'))">
606-
<PkgprojProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\host-packages.proj" />
607-
<ProjectToBuild Include="@(PkgprojProjectToBuild)" Category="host" />
608-
</ItemGroup>
609-
610594
<!-- Libraries sets -->
611595
<ItemGroup Condition="$(_subset.Contains('+libs.native+'))">
612596
<ProjectToBuild Include="$(SharedNativeRoot)libs\build-native.proj" Category="libs" />
@@ -633,6 +617,23 @@
633617
<ProjectToBuild Include="$(WasiProjectRoot)wasi.proj" Category="mono" />
634618
</ItemGroup>
635619

620+
<!-- Host sets -->
621+
<ItemGroup Condition="$(_subset.Contains('+host.native+'))">
622+
<CorehostProjectToBuild Include="$(SharedNativeRoot)corehost\corehost.proj" />
623+
<ProjectToBuild Include="@(CorehostProjectToBuild)" AdditionalProperties="$(TargetCxxLibraryProperties)" Category="host" />
624+
</ItemGroup>
625+
626+
<ItemGroup Condition="$(_subset.Contains('+host.tools+'))">
627+
<ManagedProjectToBuild Include="$(InstallerProjectRoot)managed\**\*.csproj" />
628+
<ProjectToBuild Include="@(ManagedProjectToBuild)" BuildInParallel="true" Category="host" />
629+
</ItemGroup>
630+
631+
<ItemGroup Condition="$(_subset.Contains('+host.pkg+'))">
632+
<PkgprojProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\host-packages.proj" />
633+
<ProjectToBuild Include="@(PkgprojProjectToBuild)" Category="host" />
634+
</ItemGroup>
635+
636+
<!-- Libraries test sets -->
636637
<ItemGroup Condition="$(_subset.Contains('+libs.pretest+'))">
637638
<ProjectToBuild Include="$(LibrariesProjectRoot)pretest.proj" Category="libs" />
638639
</ItemGroup>

eng/liveBuilds.targets

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,14 @@
1818
<MonoArtifactsPath Condition="'$(MonoArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', 'mono', '$(TargetOS).$(TargetArchitecture).$(MonoConfiguration)'))</MonoArtifactsPath>
1919
<LibrariesArtifactsPath Condition="'$(LibrariesArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts'))</LibrariesArtifactsPath>
2020
<LibrariesAllConfigurationsArtifactsPath Condition="'$(LibrariesAllConfigurationsArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts'))</LibrariesAllConfigurationsArtifactsPath>
21+
<HostArtifactsPath Condition="'$(HostArtifactsPath)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts', 'bin', '$(TargetOS)-$(TargetArchitecture).$(HostConfiguration)'))</HostArtifactsPath>
2122
</PropertyGroup>
2223

2324
<!-- Set up artifact subpaths. -->
2425
<PropertyGroup>
2526
<CoreCLRSharedFrameworkDir>$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'sharedFramework'))</CoreCLRSharedFrameworkDir>
27+
<LibrariesSharedFrameworkDir>$([MSBuild]::NormalizeDirectory('$(LibrariesNativeArtifactsPath)','sharedFramework'))</LibrariesSharedFrameworkDir>
28+
<HostSharedFrameworkDir>$([MSBuild]::NormalizeDirectory('$(HostArtifactsPath)','sharedFramework'))</HostSharedFrameworkDir>
2629
<CoreCLRCoreHostDir>$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'corehost'))</CoreCLRCoreHostDir>
2730
<CoreCLRILCompilerDir>$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', 'ilc-published'))</CoreCLRILCompilerDir>
2831
<CoreCLRCrossILCompilerDir>$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)', '$(BuildArchitecture)', 'ilc'))</CoreCLRCrossILCompilerDir>
@@ -88,6 +91,8 @@
8891
value is different after CoreCLRArtifactsPath is normalized.
8992
-->
9093
<CoreCLRSharedFrameworkDir>$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)','sharedFramework'))</CoreCLRSharedFrameworkDir>
94+
<LibrariesSharedFrameworkDir>$([MSBuild]::NormalizeDirectory('$(LibrariesNativeArtifactsPath)','sharedFramework'))</LibrariesSharedFrameworkDir>
95+
<HostSharedFrameworkDir>$([MSBuild]::NormalizeDirectory('$(HostArtifactsPath)','sharedFramework'))</HostSharedFrameworkDir>
9196
<CoreCLRSharedFrameworkPdbDir>$([MSBuild]::NormalizeDirectory('$(CoreCLRSharedFrameworkDir)','PDB'))</CoreCLRSharedFrameworkPdbDir>
9297
<CoreCLRCrossTargetComponentDir
9398
Condition="'$(CoreCLRCrossTargetComponentDirName)' != ''">$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)','$(CoreCLRCrossTargetComponentDirName)','sharedFramework'))</CoreCLRCrossTargetComponentDir>
@@ -218,15 +223,22 @@
218223

219224
<LibrariesRuntimeFiles Condition="'$(TargetOS)' == 'browser' and '$(RuntimeFlavor)' == 'CoreCLR'"
220225
Include="
221-
$(CoreCLRCoreHostDir)package.json;
222-
$(CoreCLRCoreHostDir)dotnet.native.js;
223-
$(CoreCLRCoreHostDir)dotnet.native.wasm;
224-
$(CoreCLRSharedFrameworkDir)dotnet.d.ts;
225-
$(CoreCLRSharedFrameworkDir)dotnet.js;
226-
$(CoreCLRSharedFrameworkDir)dotnet.js.map;
227-
$(CoreCLRSharedFrameworkDir)dotnet.runtime.js;
228-
$(CoreCLRSharedFrameworkDir)dotnet.runtime.js.map;
229-
$(CoreCLRSharedFrameworkDir)*.dat;"
226+
$(CoreCLRSharedFrameworkDir)libclrinterpreter.a;
227+
$(CoreCLRSharedFrameworkDir)libcoreclr_static.a;
228+
$(CoreCLRSharedFrameworkDir)libcoreclrminipal.a;
229+
$(CoreCLRSharedFrameworkDir)libcoreclrpal.a;
230+
$(CoreCLRSharedFrameworkDir)libgcinfo_unix_wasm.a;
231+
$(CoreCLRSharedFrameworkDir)libnativeresourcestring.a;
232+
$(LibrariesSharedFrameworkDir)package.json;
233+
$(LibrariesSharedFrameworkDir)dotnet.d.ts;
234+
$(LibrariesSharedFrameworkDir)*.map;
235+
$(LibrariesSharedFrameworkDir)*.js;
236+
$(LibrariesSharedFrameworkDir)*.a;
237+
$(LibrariesSharedFrameworkDir)*.dat;
238+
$(HostSharedFrameworkDir)libBrowserHost.a;
239+
$(HostSharedFrameworkDir)dotnet.native.js;
240+
$(HostSharedFrameworkDir)dotnet.native.wasm;
241+
"
230242
IsNative="true" />
231243

232244
<LibrariesRuntimeFiles Condition="'$(TargetOS)' == 'browser' and '$(RuntimeFlavor)' == 'Mono'"

eng/native.props

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@
1717
<NativeCMakeArg Condition="'$(_TzdDir)' != ''" Include="-cmakeargs &quot;-DCMAKE_TZD_DIR=$(_TzdDir)&quot;" />
1818
<NativeCMakeArg Include="-cmakeargs &quot;-DCMAKE_PRODUCT_VERSION=$(ProductVersion)&quot;" />
1919
<NativeCMakeArg Include="-cmakeargs &quot;-DCMAKE_CONTINUOUS_INTEGRATION_BUILD=$(ContinuousIntegrationBuild)&quot;" />
20+
<NativeCMakeArg Include="-cmakeargs &quot;-DCMAKE_NET_CORE_APP_CURRENT_VERSION=$(NetCoreAppCurrentVersion)&quot;" />
21+
<NativeCMakeArg Include="-cmakeargs &quot;-DCMAKE_BUILD_LIBRARIES_CONFIGURATION=$(LibrariesConfiguration)&quot;" />
22+
<NativeCMakeArg Include="-cmakeargs &quot;-DCMAKE_BUILD_RUNTIME_CONFIGURATION=$(RuntimeConfiguration)&quot;" />
23+
<NativeCMakeArg Condition="'$(TargetsBrowser)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'" Include="-cmakeargs &quot;-DBUILD_LIBS_NATIVE_BROWSER=1&quot;" />
2024
</ItemGroup>
2125

2226
</Project>

eng/native/configurepaths.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ get_filename_component(CLR_REPO_ROOT_DIR ${CMAKE_CURRENT_LIST_DIR}/../.. ABSOLUT
22
set(CLR_ENG_NATIVE_DIR ${CMAKE_CURRENT_LIST_DIR})
33
get_filename_component(CLR_SRC_NATIVE_DIR ${CMAKE_CURRENT_LIST_DIR}/../../src/native ABSOLUTE)
44
set (CLR_ARTIFACTS_OBJ_DIR "${CLR_REPO_ROOT_DIR}/artifacts/obj")
5+
set (CLR_ARTIFACTS_BIN_DIR "${CLR_REPO_ROOT_DIR}/artifacts/bin")
56
set (CLR_SOURCELINK_FILE_PATH "${CLR_ARTIFACTS_OBJ_DIR}/native.sourcelink.json")
67
set(VERSION_HEADER_PATH "${CLR_ARTIFACTS_OBJ_DIR}/_version.h")
78
set(VERSION_FILE_PATH "${CLR_ARTIFACTS_OBJ_DIR}/_version.c")

src/coreclr/CMakeLists.txt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,6 @@ if(NOT CLR_CROSS_COMPONENTS_BUILD AND NOT CLR_CMAKE_TARGET_MACCATALYST AND NOT C
7272
set(CLR_SINGLE_FILE_HOST_ONLY 1)
7373
add_subdirectory(${CLR_SRC_NATIVE_DIR}/corehost/apphost/static Corehost.Static)
7474
add_dependencies(runtime singlefilehost)
75-
else()
76-
if(CLR_CMAKE_TARGET_BROWSER)
77-
# WASM-TODO set GEN_PINVOKE to 1 once we generate them. static entrypoint.c prevents C linker from trimming, when IL trimming trims PInvokes
78-
set(GEN_PINVOKE 0)
79-
# WASM-TODO should we start using System.Native.Browser and System.Runtime.InteropServices.JavaScript.Native also for Mono ?
80-
set(BUILD_LIBS_NATIVE_BROWSER 1)
81-
set(STATIC_LIB_DESTINATION ${CMAKE_BINARY_DIR}/libs-native)
82-
add_subdirectory(${CLR_SRC_NATIVE_DIR}/corehost corehost)
83-
add_dependencies(runtime browserhost)
84-
endif()
8575
endif()
8676

8777
#-------------------------
@@ -96,6 +86,13 @@ endif()
9686
#-------------------------------
9787
if(NOT CLR_CROSS_COMPONENTS_BUILD)
9888
set(STATIC_LIBS_ONLY 1)
89+
if(CLR_CMAKE_TARGET_BROWSER)
90+
# WASM-TODO set GEN_PINVOKE to 1 once we generate them. static entrypoint.c prevents C linker from trimming, when IL trimming trims PInvokes
91+
set(GEN_PINVOKE 0)
92+
set(BUILD_LIBS_NATIVE_BROWSER 1)
93+
set(STATIC_LIB_DESTINATION ${CMAKE_BINARY_DIR}/libs-native)
94+
set(CORERUN_LIBS_ONLY 1)
95+
endif()
9996
add_subdirectory(${CLR_SRC_NATIVE_DIR}/libs libs-native)
10097
endif()
10198

src/native/corehost/browserhost/CMakeLists.txt

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ target_link_libraries(BrowserHost-Static PRIVATE
3232
hostmisc
3333
)
3434

35-
install(TARGETS BrowserHost-Static DESTINATION corehost COMPONENT runtime)
36-
install(TARGETS BrowserHost-Static DESTINATION ${STATIC_LIB_DESTINATION} COMPONENT libs)
3735
install(TARGETS BrowserHost-Static DESTINATION sharedFramework COMPONENT runtime)
3836

3937
# the executable
@@ -53,30 +51,44 @@ add_executable(browserhost ${BROWSERHOST_SOURCES})
5351
set_target_properties(browserhost PROPERTIES OUTPUT_NAME dotnet.native)
5452
set(CMAKE_EXECUTABLE_SUFFIX ".js")
5553

54+
55+
56+
set(SHARED_LIB_DESTINATION
57+
${CLR_ARTIFACTS_BIN_DIR}/native/net${CMAKE_NET_CORE_APP_CURRENT_VERSION}-browser-${CMAKE_BUILD_LIBRARIES_CONFIGURATION}-wasm/sharedFramework)
58+
set(SHARED_CLR_DESTINATION
59+
${CLR_ARTIFACTS_BIN_DIR}/coreclr/browser.wasm.${CMAKE_BUILD_RUNTIME_CONFIGURATION}/sharedFramework)
60+
61+
# these dependencies assume that you built `libs.native+clr.runtime` subsets first
5662
LIST(APPEND NATIVE_LIBS
57-
hostmisc
58-
clrinterpreter
59-
coreclr_static
60-
System.Native.Browser-Static
61-
System.Runtime.InteropServices.JavaScript.Native-Static
62-
System.Native-Static
63-
System.Globalization.Native-Static
64-
System.IO.Compression.Native-Static
65-
nativeresourcestring
66-
gcinfo
63+
${SHARED_CLR_DESTINATION}/libcoreclr_static.a
64+
${SHARED_CLR_DESTINATION}/libclrinterpreter.a
65+
${SHARED_CLR_DESTINATION}/libnativeresourcestring.a
66+
${SHARED_CLR_DESTINATION}/libgcinfo_unix_wasm.a
67+
${SHARED_CLR_DESTINATION}/libcoreclrminipal.a
68+
${SHARED_CLR_DESTINATION}/libcoreclrpal.a
69+
${SHARED_CLR_DESTINATION}/libminipal.a
70+
${SHARED_LIB_DESTINATION}/libSystem.Native.Browser.a
71+
${SHARED_LIB_DESTINATION}/libSystem.Runtime.InteropServices.JavaScript.Native.a
72+
${SHARED_LIB_DESTINATION}/libSystem.Native.a
73+
${SHARED_LIB_DESTINATION}/libSystem.Globalization.Native.a
74+
${CMAKE_ICU_DIR}/lib/libicuuc.a
75+
${CMAKE_ICU_DIR}/lib/libicui18n.a
76+
${CMAKE_ICU_DIR}/lib/libicudata.a
77+
${SHARED_LIB_DESTINATION}/libSystem.IO.Compression.Native.a
78+
${SHARED_LIB_DESTINATION}/libz.a
6779
# WASM-TODO respect $(InvariantTimezone)
68-
# System.Native.TimeZoneData.Invariant
69-
System.Native.TimeZoneData
80+
# libSystem.Native.TimeZoneData.Invariant.a
81+
${SHARED_LIB_DESTINATION}/libSystem.Native.TimeZoneData.a
7082
)
7183

7284
set(JS_SYSTEM_NATIVE_BROWSER
73-
"${STATIC_LIB_DESTINATION}/libSystem.Native.Browser.js")
85+
"${SHARED_LIB_DESTINATION}/libSystem.Native.Browser.js")
7486
set(JS_SYSTEM_BROWSER_UTILS
75-
"${STATIC_LIB_DESTINATION}/libSystem.Browser.Utils.js")
87+
"${SHARED_LIB_DESTINATION}/libSystem.Browser.Utils.js")
7688
set(JS_SYSTEM_RUNTIME_INTEROPSERVICES_JAVASCRIPT_NATIVE
77-
"${STATIC_LIB_DESTINATION}/libSystem.Runtime.InteropServices.JavaScript.Native.js")
89+
"${SHARED_LIB_DESTINATION}/libSystem.Runtime.InteropServices.JavaScript.Native.js")
7890
set(JS_BROWSER_HOST
79-
"${STATIC_LIB_DESTINATION}/libBrowserHost.js")
91+
"${SHARED_LIB_DESTINATION}/libBrowserHost.js")
8092
set(JS_SYSTEM_NATIVE_BROWSER_EXPOST
8193
"${CMAKE_CURRENT_SOURCE_DIR}/../../libs/System.Native.Browser/libSystem.Native.Browser.extpost.js")
8294

@@ -130,7 +142,8 @@ target_link_libraries(browserhost PRIVATE
130142
)
131143

132144
install(TARGETS browserhost DESTINATION corehost COMPONENT runtime)
145+
install(TARGETS browserhost DESTINATION sharedFramework COMPONENT runtime)
133146
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dotnet.native.wasm DESTINATION corehost COMPONENT runtime)
134-
install(FILES ${CLR_SRC_NATIVE_DIR}/package.json DESTINATION corehost COMPONENT runtime)
147+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/dotnet.native.wasm DESTINATION sharedFramework COMPONENT runtime)
135148

136149
add_subdirectory(sample)

src/native/corehost/browserhost/sample/CMakeLists.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ set(SAMPLE_ASSETS
88
index.html
99
main.mjs
1010
dotnet.boot.js
11-
${STATIC_LIB_DESTINATION}/dotnet.js
12-
${STATIC_LIB_DESTINATION}/dotnet.js.map
13-
${STATIC_LIB_DESTINATION}/dotnet.d.ts
14-
${STATIC_LIB_DESTINATION}/dotnet.runtime.js
15-
${STATIC_LIB_DESTINATION}/dotnet.runtime.js.map
11+
${SHARED_LIB_DESTINATION}/dotnet.js
12+
${SHARED_LIB_DESTINATION}/dotnet.js.map
13+
${SHARED_LIB_DESTINATION}/dotnet.d.ts
14+
${SHARED_LIB_DESTINATION}/dotnet.runtime.js
15+
${SHARED_LIB_DESTINATION}/dotnet.runtime.js.map
1616

1717
# Bring your own DLLs and update the dotnet.boot.js to match
1818
# HelloWorld.dll

src/native/libs/CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,16 @@ else ()
113113
add_subdirectory(System.Globalization.Native)
114114
endif ()
115115

116-
add_subdirectory(System.IO.Compression.Native)
116+
if (NOT CORERUN_LIBS_ONLY)
117+
add_subdirectory(System.IO.Compression.Native)
118+
endif ()
117119

118120
# Only when Browser for CoreCLR
119121
if (CLR_CMAKE_TARGET_BROWSER AND BUILD_LIBS_NATIVE_BROWSER)
120122
add_subdirectory(System.Native.Browser)
121-
add_subdirectory(System.Runtime.InteropServices.JavaScript.Native)
123+
if (NOT CORERUN_LIBS_ONLY)
124+
add_subdirectory(System.Runtime.InteropServices.JavaScript.Native)
125+
endif ()
122126
endif ()
123127

124128
if (CLR_CMAKE_TARGET_UNIX OR CLR_CMAKE_TARGET_BROWSER OR CLR_CMAKE_TARGET_WASI)

src/native/libs/Common/JavaScript/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,4 +124,5 @@ add_custom_target(System.Native.Browser-NpmInstall
124124
DEPENDS ${NPM_INSTALL_OUTPUTS}
125125
)
126126

127-
install(FILES ${ROLLUP_OUTPUTS} DESTINATION sharedFramework COMPONENT runtime)
127+
install(FILES ${ROLLUP_OUTPUTS} DESTINATION sharedFramework COMPONENT runtime)
128+
install(FILES "${CLR_SRC_NATIVE_DIR}/package.json" DESTINATION sharedFramework COMPONENT runtime)

src/native/libs/System.Native/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ if (CLR_CMAKE_TARGET_ARCH_WASM AND DEFINED CMAKE_TZD_DIR)
159159
configure_file(pal_datetime_time_zone_data-config.h.in inc/pal_datetime_time_zone_data-config.h)
160160

161161
add_library(System.Native.TimeZoneData STATIC pal_datetime_time_zone_data.c)
162+
add_dependencies(System.Native-Static System.Native.TimeZoneData)
162163
target_compile_options(System.Native.TimeZoneData PRIVATE -Wno-overlength-strings)
163164
target_compile_definitions(System.Native.TimeZoneData PRIVATE TZ_DATA_ENABLED)
164165
target_include_directories(System.Native.TimeZoneData PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/inc")
@@ -167,6 +168,7 @@ if (CLR_CMAKE_TARGET_ARCH_WASM AND DEFINED CMAKE_TZD_DIR)
167168

168169
# Also add a stub to support InvariantTimezone.
169170
add_library(System.Native.TimeZoneData.Invariant STATIC pal_datetime_time_zone_data.c)
171+
add_dependencies(System.Native-Static System.Native.TimeZoneData.Invariant)
170172
install(TARGETS System.Native.TimeZoneData.Invariant DESTINATION ${STATIC_LIB_DESTINATION} COMPONENT libs)
171173
install(TARGETS System.Native.TimeZoneData.Invariant DESTINATION sharedFramework COMPONENT runtime)
172174
endif ()

0 commit comments

Comments
 (0)