Skip to content

Commit 8c22189

Browse files
committed
rebase
1 parent d0158ea commit 8c22189

File tree

8 files changed

+62
-39
lines changed

8 files changed

+62
-39
lines changed

eng/Subsets.props

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

@@ -581,6 +581,11 @@
581581
<ProjectToBuild Include="$(MonoProjectRoot)\wasm\workloads.proj" Category="mono" />
582582
</ItemGroup>
583583

584+
<!-- Libraries native set -->
585+
<ItemGroup Condition="$(_subset.Contains('+libs.native+'))">
586+
<ProjectToBuild Include="$(SharedNativeRoot)libs\build-native.proj" Category="libs" />
587+
</ItemGroup>
588+
584589
<!-- Host sets -->
585590
<ItemGroup Condition="$(_subset.Contains('+host.native+'))">
586591
<CorehostProjectToBuild Include="$(SharedNativeRoot)corehost\corehost.proj" />
@@ -598,10 +603,6 @@
598603
</ItemGroup>
599604

600605
<!-- Libraries sets -->
601-
<ItemGroup Condition="$(_subset.Contains('+libs.native+'))">
602-
<ProjectToBuild Include="$(SharedNativeRoot)libs\build-native.proj" Category="libs" />
603-
</ItemGroup>
604-
605606
<ItemGroup Condition="$(_subset.Contains('+libs.sfx+'))">
606607
<ProjectToBuild Include="$(LibrariesProjectRoot)sfx.proj"
607608
Category="libs"

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+
set(CORERUN_LIBS_ONLY 1)
90+
if(CLR_CMAKE_TARGET_BROWSER)
91+
# WASM-TODO set GEN_PINVOKE to 1 once we generate them. static entrypoint.c prevents C linker from trimming, when IL trimming trims PInvokes
92+
set(GEN_PINVOKE 0)
93+
set(BUILD_LIBS_NATIVE_BROWSER 1)
94+
set(STATIC_LIB_DESTINATION ${CMAKE_BINARY_DIR}/libs-native)
95+
endif()
9996
add_subdirectory(${CLR_SRC_NATIVE_DIR}/libs libs-native)
10097
endif()
10198

src/native/corehost/browserhost/CMakeLists.txt

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ target_link_libraries(BrowserHost-Static PRIVATE
3333
)
3434

3535
install(TARGETS BrowserHost-Static DESTINATION corehost COMPONENT runtime)
36-
install(TARGETS BrowserHost-Static DESTINATION ${STATIC_LIB_DESTINATION} COMPONENT libs)
36+
install(TARGETS BrowserHost-Static DESTINATION ${SHARED_LIB_DESTINATION} COMPONENT libs)
3737
install(TARGETS BrowserHost-Static DESTINATION sharedFramework COMPONENT runtime)
3838

3939
# the executable
@@ -53,30 +53,44 @@ add_executable(browserhost ${BROWSERHOST_SOURCES})
5353
set_target_properties(browserhost PROPERTIES OUTPUT_NAME dotnet.native)
5454
set(CMAKE_EXECUTABLE_SUFFIX ".js")
5555

56+
57+
58+
set(SHARED_LIB_DESTINATION
59+
${CLR_ARTIFACTS_BIN_DIR}/native/net${CMAKE_NET_CORE_APP_CURRENT_VERSION}-browser-${CMAKE_BUILD_LIBRARIES_CONFIGURATION}-wasm/sharedFramework)
60+
set(SHARED_CLR_DESTINATION
61+
${CLR_ARTIFACTS_BIN_DIR}/coreclr/browser.wasm.${CMAKE_BUILD_RUNTIME_CONFIGURATION}/sharedFramework)
62+
63+
# these dependencies assume that you built `libs.native+clr.runtime` subsets first
5664
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
65+
${SHARED_CLR_DESTINATION}/libcoreclr_static.a
66+
${SHARED_CLR_DESTINATION}/libclrinterpreter.a
67+
${SHARED_CLR_DESTINATION}/libnativeresourcestring.a
68+
${SHARED_CLR_DESTINATION}/libgcinfo_unix_wasm.a
69+
${SHARED_CLR_DESTINATION}/libcoreclrminipal.a
70+
${SHARED_CLR_DESTINATION}/libcoreclrpal.a
71+
${SHARED_CLR_DESTINATION}/libminipal.a
72+
${SHARED_LIB_DESTINATION}/libSystem.Native.Browser.a
73+
${SHARED_LIB_DESTINATION}/libSystem.Runtime.InteropServices.JavaScript.Native.a
74+
${SHARED_LIB_DESTINATION}/libSystem.Native.a
75+
${SHARED_LIB_DESTINATION}/libSystem.Globalization.Native.a
76+
${CMAKE_ICU_DIR}/lib/libicuuc.a
77+
${CMAKE_ICU_DIR}/lib/libicui18n.a
78+
${CMAKE_ICU_DIR}/lib/libicudata.a
79+
${SHARED_LIB_DESTINATION}/libSystem.IO.Compression.Native.a
80+
${SHARED_LIB_DESTINATION}/libz.a
6781
# WASM-TODO respect $(InvariantTimezone)
68-
# System.Native.TimeZoneData.Invariant
69-
System.Native.TimeZoneData
82+
# libSystem.Native.TimeZoneData.Invariant.a
83+
${SHARED_LIB_DESTINATION}/libSystem.Native.TimeZoneData.a
7084
)
7185

7286
set(JS_SYSTEM_NATIVE_BROWSER
73-
"${STATIC_LIB_DESTINATION}/libSystem.Native.Browser.js")
87+
"${SHARED_LIB_DESTINATION}/libSystem.Native.Browser.js")
7488
set(JS_SYSTEM_BROWSER_UTILS
75-
"${STATIC_LIB_DESTINATION}/libSystem.Browser.Utils.js")
89+
"${SHARED_LIB_DESTINATION}/libSystem.Browser.Utils.js")
7690
set(JS_SYSTEM_RUNTIME_INTEROPSERVICES_JAVASCRIPT_NATIVE
77-
"${STATIC_LIB_DESTINATION}/libSystem.Runtime.InteropServices.JavaScript.Native.js")
91+
"${SHARED_LIB_DESTINATION}/libSystem.Runtime.InteropServices.JavaScript.Native.js")
7892
set(JS_BROWSER_HOST
79-
"${STATIC_LIB_DESTINATION}/libBrowserHost.js")
93+
"${SHARED_LIB_DESTINATION}/libBrowserHost.js")
8094
set(JS_SYSTEM_NATIVE_BROWSER_EXPOST
8195
"${CMAKE_CURRENT_SOURCE_DIR}/../../libs/System.Native.Browser/libSystem.Native.Browser.extpost.js")
8296

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/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)