Add build configuration to generate runtime packs for WebAssem… (#34936)
authorZoltan Varga <vargaz@gmail.com>
Fri, 24 Apr 2020 07:35:54 +0000 (03:35 -0400)
committerGitHub <noreply@github.com>
Fri, 24 Apr 2020 07:35:54 +0000 (09:35 +0200)
eng/Subsets.props
eng/codeOptimization.targets
eng/liveBuilds.targets
eng/pipelines/installer/jobs/base-job.yml
eng/pipelines/runtime-official.yml
eng/pipelines/runtime.yml
src/installer/Directory.Build.props
src/installer/pkg/projects/Directory.Build.targets
src/installer/pkg/projects/netcoreapp/Directory.Build.props

index 73eb239..2af68a9 100644 (file)
@@ -38,8 +38,7 @@
 
   <PropertyGroup>
     <DefaultSubsets>clr+mono+libs+installer</DefaultSubsets>
-    <DefaultSubsets Condition="'$(TargetsMobile)' == 'true'">mono+libs+installer</DefaultSubsets>
-    <DefaultSubsets Condition="'$(TargetOS)' == 'Browser'">mono+libs</DefaultSubsets>
+    <DefaultSubsets Condition="'$(TargetsMobile)' == 'true' or '$(TargetOS)' == 'Browser'">mono+libs+installer</DefaultSubsets>
   </PropertyGroup>
 
   <!-- Init _subset here in to allow RuntimeFlavor to be set as early as possible -->
index 6ed7e99..34f89c0 100644 (file)
@@ -9,7 +9,7 @@
            IBCMerge optimizations on Mac for now to unblock the offical build.
            See issue https://github.com/dotnet/runtime/issues/33303
       -->
-      <IsEligibleForNgenOptimization Condition="'$(TargetOS)' == 'OSX' or '$(TargetsMobile)' == 'true'">false</IsEligibleForNgenOptimization>
+      <IsEligibleForNgenOptimization Condition="'$(TargetOS)' == 'OSX' or '$(TargetsMobile)' == 'true' or '$(TargetOS)' == 'Browser'">false</IsEligibleForNgenOptimization>
   </PropertyGroup>
 
   <Target Name="SetApplyNgenOptimization"
index 9a01dc2..06136c1 100644 (file)
         <IsNative>true</IsNative>
       </RuntimeFiles>
 
-      <MonoCrossFiles Condition="'$(TargetsMobile)' == 'true'"
+      <MonoCrossFiles Condition="'$(TargetsMobile)' == 'true' or '$(TargetOS)' == 'Browser'"
         Include="$(MonoArtifactsPath)\cross\*.*" />
-      <MonoIncludeFiles Condition="'$(TargetsMobile)' == 'true'"
+      <MonoIncludeFiles Condition="'$(TargetsMobile)' == 'true' or '$(TargetOS)' == 'Browser'"
         Include="$(MonoArtifactsPath)\include\**\*.*" />
     </ItemGroup>
 
index 3397425..97c16e5 100644 (file)
@@ -130,7 +130,7 @@ jobs:
         $(CommonMSBuildArgs)
         $(OfficialBuildArg)
 
-  - ${{ if in(parameters.osGroup, 'iOS', 'tvOS', 'Android') }}:
+  - ${{ if in(parameters.osGroup, 'iOS', 'tvOS', 'Android', 'Browser') }}:
 
     - name: CommonMSBuildArgs
       value: >-
index a4c5ffc..bc010a5 100644 (file)
@@ -199,6 +199,7 @@ stages:
       - Android_arm64
       - Android_x64
       - Android_x86
+      - Browser_wasm
 
 - ${{ if eq(variables.isOfficialBuild, true) }}:
   - template: /eng/pipelines/official/stages/publish.yml
index faa4185..d8877fa 100644 (file)
@@ -399,6 +399,7 @@ jobs:
     - tvOS_arm64
     # - iOS_arm # https://github.com/dotnet/runtime/issues/34465
     - iOS_x64
+    - Browser_wasm
     jobParameters:
       liveRuntimeBuildConfig: release
 
@@ -511,6 +512,7 @@ jobs:
     - tvOS_arm64
     # - iOS_arm # https://github.com/dotnet/runtime/issues/34465
     - iOS_x64
+    - Browser_wasm
     jobParameters:
       liveRuntimeBuildConfig: release
       liveLibrariesBuildConfig: Release
index b7d6fa7..b27aac5 100644 (file)
@@ -96,6 +96,7 @@
     <OutputRid Condition="'$(TargetOS)' == 'iOS'">ios-$(TargetArchitecture)</OutputRid>
     <OutputRid Condition="'$(TargetOS)' == 'tvOS'">tvos-$(TargetArchitecture)</OutputRid>
     <OutputRid Condition="'$(TargetOS)' == 'Android'">android-$(TargetArchitecture)</OutputRid>
+    <OutputRid Condition="'$(TargetOS)' == 'Browser'">browser-$(TargetArchitecture)</OutputRid>
   </PropertyGroup>
 
   <PropertyGroup>
     <TargetsCentos>false</TargetsCentos>
     <TargetsOracle>false</TargetsOracle>
     <TargetsSles>false</TargetsSles>
+    <TargetsBrowser>false</TargetsBrowser>
   </PropertyGroup>
   <Choose>
     <When Condition="$(OutputRid.StartsWith('win'))">
         <TargetsMobile>true</TargetsMobile>
       </PropertyGroup>
     </When>
+    <When Condition="$(OutputRid.StartsWith('browser'))">
+      <PropertyGroup>
+        <TargetsBrowser>true</TargetsBrowser>
+        <TargetsUnix>true</TargetsUnix>
+      </PropertyGroup>
+    </When>
     <When Condition="$(OutputRid.StartsWith('debian'))">
       <PropertyGroup>
         <TargetsDebian>true</TargetsDebian>
     <CrossGenSymbolExtension>.map</CrossGenSymbolExtension>
     <CrossGenSymbolExtension Condition="'$(TargetOS)' == 'Windows_NT'">.ni.pdb</CrossGenSymbolExtension>
     <!-- OSX doesn't have crossgen symbols, yet -->
-    <CrossGenSymbolExtension Condition="'$(TargetOS)' == 'OSX' or '$(TargetsMobile)' == 'true'"></CrossGenSymbolExtension>
+    <CrossGenSymbolExtension Condition="'$(TargetOS)' == 'OSX' or '$(TargetsMobile)' == 'true' or '$(TargetsBrowser)' == 'true'"></CrossGenSymbolExtension>
   </PropertyGroup>
 
 </Project>
index 4e85dd7..8308119 100644 (file)
@@ -28,7 +28,7 @@
 
   <!-- Keep this isolated to desktop mono for now -->
   <Target Name="MobileGetBuildRidSpecificPackageProps"
-          Condition="'$(RuntimeFlavor)' == 'Mono' and '$(TargetsMobile)' != 'true'"
+          Condition="'$(RuntimeFlavor)' == 'Mono' and '$(TargetsMobile)' != 'true' and '$(TargetsBrowser)' != 'true'"
           AfterTargets="GetBuildRidSpecificPackageProps">
     <PropertyGroup>
       <RidSpecificPackProperties>BaseId=$(MSBuildProjectName)$(RuntimeSpecificFrameworkSuffix).Mono.$(PackageBuildRID);IdPrefix=</RidSpecificPackProperties>
index 859b4a5..32f632c 100644 (file)
@@ -12,6 +12,7 @@
     <CoreCLRTargetOS Condition="'$(TargetsiOS)' == 'true'">iOS</CoreCLRTargetOS>
     <CoreCLRTargetOS Condition="'$(TargetstvOS)' == 'true'">tvOS</CoreCLRTargetOS>
     <CoreCLRTargetOS Condition="'$(TargetsAndroid)' == 'true'">Android</CoreCLRTargetOS>
+    <CoreCLRTargetOS Condition="'$(TargetsBrowser)' == 'true'">Browser</CoreCLRTargetOS>
     <CoreCLRTargetOS Condition="'$(TargetsFreeBSD)' == 'true'">FreeBSD</CoreCLRTargetOS>
     <LibrariesTargetOS>$(CoreCLRTargetOS)</LibrariesTargetOS>
   </PropertyGroup>