diff options
Diffstat (limited to 'src/BuildIntegration/Microsoft.NETCore.Native.targets')
-rw-r--r-- | src/BuildIntegration/Microsoft.NETCore.Native.targets | 73 |
1 files changed, 51 insertions, 22 deletions
diff --git a/src/BuildIntegration/Microsoft.NETCore.Native.targets b/src/BuildIntegration/Microsoft.NETCore.Native.targets index 23b817c7a..e5d806dce 100644 --- a/src/BuildIntegration/Microsoft.NETCore.Native.targets +++ b/src/BuildIntegration/Microsoft.NETCore.Native.targets @@ -39,14 +39,15 @@ See the LICENSE file in the project root for more information. <IlcOutputFileExt Condition="$(NativeCodeGen) == 'cpp'">.cpp</IlcOutputFileExt> <IlcOutputFileExt Condition="'$(NativeCodeGen)' == 'wasm'">.bc</IlcOutputFileExt> - - <NativeBinaryExt Condition="'$(OutputType)' == 'Exe' and '$(TargetOS)' == 'Windows_NT'">.exe</NativeBinaryExt> - <NativeBinaryExt Condition="'$(OutputType)' == 'Exe' and '$(TargetOS)' != 'Windows_NT'"></NativeBinaryExt> - <NativeBinaryExt Condition="'$(OutputType)' != 'Exe' and '$(TargetOS)' == 'Windows_NT' and $(NativeLib) == 'Shared'">.dll</NativeBinaryExt> - <NativeBinaryExt Condition="'$(OutputType)' != 'Exe' and '$(TargetOS)' == 'OSX' and $(NativeLib) == 'Shared'">.dylib</NativeBinaryExt> - <NativeBinaryExt Condition="'$(OutputType)' != 'Exe' and '$(TargetOS)' != 'Windows_NT' and '$(TargetOS)' != 'OSX' and $(NativeLib) == 'Shared'">.so</NativeBinaryExt> - <NativeBinaryExt Condition="'$(OutputType)' != 'Exe' and '$(TargetOS)' == 'Windows_NT' and $(NativeLib) == 'Static'">.lib</NativeBinaryExt> - <NativeBinaryExt Condition="'$(OutputType)' != 'Exe' and '$(TargetOS)' != 'Windows_NT' and $(NativeLib) == 'Static'">.a</NativeBinaryExt> + <IsNativeExecutable Condition="'$(OutputType)' == 'Exe' or '$(OutputType)' == 'WinExe'">true</IsNativeExecutable> + + <NativeBinaryExt Condition="'$(IsNativeExecutable)' == 'true' and '$(TargetOS)' == 'Windows_NT'">.exe</NativeBinaryExt> + <NativeBinaryExt Condition="'$(IsNativeExecutable)' == 'true' and '$(TargetOS)' != 'Windows_NT'"></NativeBinaryExt> + <NativeBinaryExt Condition="'$(IsNativeExecutable)' != 'true' and '$(TargetOS)' == 'Windows_NT' and $(NativeLib) == 'Shared'">.dll</NativeBinaryExt> + <NativeBinaryExt Condition="'$(IsNativeExecutable)' != 'true' and '$(TargetOS)' == 'OSX' and $(NativeLib) == 'Shared'">.dylib</NativeBinaryExt> + <NativeBinaryExt Condition="'$(IsNativeExecutable)' != 'true' and '$(TargetOS)' != 'Windows_NT' and '$(TargetOS)' != 'OSX' and $(NativeLib) == 'Shared'">.so</NativeBinaryExt> + <NativeBinaryExt Condition="'$(IsNativeExecutable)' != 'true' and '$(TargetOS)' == 'Windows_NT' and $(NativeLib) == 'Static'">.lib</NativeBinaryExt> + <NativeBinaryExt Condition="'$(IsNativeExecutable)' != 'true' and '$(TargetOS)' != 'Windows_NT' and $(NativeLib) == 'Static'">.a</NativeBinaryExt> <NativeBinaryExt Condition="'$(NativeCodeGen)' == 'wasm'">.html</NativeBinaryExt> <ExportsFileExt Condition="'$(OutputType)' != 'Exe' and '$(TargetOS)' == 'Windows_NT' and '$(NativeLib)' == 'Shared'">.def</ExportsFileExt> @@ -66,6 +67,8 @@ See the LICENSE file in the project root for more information. <FrameworkLibPath Condition="'$(FrameworkLibPath)' == ''">$(NativeOutputPath)</FrameworkLibPath> <FrameworkObjPath Condition="'$(FrameworkObjPath)' == ''">$(NativeIntermediateOutputPath)</FrameworkObjPath> + <ExperimentalDynamicCodeSupport Condition="'$(ExperimentalInterpreterSupport)' == 'true' or '$(ExperimentalJitSupport)' == 'true'">true</ExperimentalDynamicCodeSupport> + <SharedLibrary Condition="'$(OS)' == 'Windows_NT'">$(FrameworkLibPath)\Framework$(LibFileExt)</SharedLibrary> <SharedLibrary Condition="'$(OS)' != 'Windows_NT'">$(FrameworkLibPath)\libframework$(LibFileExt)</SharedLibrary> <IlcDynamicBuildPropertyDependencies Condition="'$(IlcCalledViaPackage)' == 'true'">SetupProperties</IlcDynamicBuildPropertyDependencies> @@ -78,10 +81,32 @@ See the LICENSE file in the project root for more information. </PropertyGroup> <ItemGroup> + <AutoInitializedAssemblies Include="System.Private.CoreLib" /> + <AutoInitializedAssemblies Include="System.Private.DeveloperExperience.Console" /> + <AutoInitializedAssemblies Condition="'$(ExperimentalInterpreterSupport)' == 'true'" Include="System.Private.Interpreter" /> + <AutoInitializedAssemblies Condition="'$(ExperimentalJitSupport)' == 'true'" Include="System.Private.Jit" /> + </ItemGroup> + + <ItemGroup Condition="'$(ExperimentalDynamicCodeSupport)' != 'true'"> + <AutoInitializedAssemblies Include="System.Private.StackTraceMetadata" /> + <AutoInitializedAssemblies Include="System.Private.TypeLoader" /> + <AutoInitializedAssemblies Include="System.Private.Reflection.Execution" /> + <AutoInitializedAssemblies Include="System.Private.Interop" /> + </ItemGroup> + + <ItemGroup Condition="'$(ExperimentalDynamicCodeSupport)' == 'true'"> + <AutoInitializedAssemblies Include="System.Private.StackTraceMetadata.Experimental" /> + <AutoInitializedAssemblies Include="System.Private.TypeLoader.Experimental" /> + <AutoInitializedAssemblies Include="System.Private.Reflection.Execution.Experimental" /> + <AutoInitializedAssemblies Include="System.Private.Interop.Experimental" /> + </ItemGroup> + + <ItemGroup> <PrivateSdkAssemblies Include="$(IlcPath)\sdk\*.dll" /> </ItemGroup> <ItemGroup> - <FrameworkAssemblies Include="$(IlcPath)\framework\*.dll" /> + <!-- Exclude clrcompression.dll for now https://github.com/dotnet/corert/issues/5496 --> + <FrameworkAssemblies Include="$(IlcPath)\framework\*.dll" Exclude="$(IlcPath)\framework\clrcompression.dll" /> </ItemGroup> <ItemGroup> @@ -159,6 +184,10 @@ See the LICENSE file in the project root for more information. <IlcArg Condition="$(OutputType) == 'Library' and $(NativeLib) != ''" Include="--nativelib" /> <IlcArg Condition="$(ExportsFile) != ''" Include="--exportsfile:$(ExportsFile)" /> <ILcArg Condition="'$(Platform)' == 'wasm'" Include="--wasm" /> + <ILcArg Condition="'$(ExperimentalDynamicCodeSupport)' == 'true'" Include="--nometadatablocking" /> + <IlcArg Include="@(AutoInitializedAssemblies->'--initassembly:%(Identity)')" /> + <IlcArg Include="@(AppContextSwitchOverrides->'--appcontextswitch:%(Identity)')" /> + <IlcArg Condition="$(ServerGarbageCollection) != ''" Include="--runtimeopt:RH_UseServerGC=1" /> </ItemGroup> <MakeDir Directories="$(NativeIntermediateOutputPath)" /> @@ -180,9 +209,9 @@ See the LICENSE file in the project root for more information. DependsOnTargets="IlcCompile"> <ItemGroup> - <CompilerArg Include="$(IlcCompileOutput)" /> - <CompilerArg Include="/Fo$(NativeObject)" Condition="'$(OS)' == 'Windows_NT'" /> - <CompilerArg Include="-o $(NativeObject)" Condition="'$(OS)' != 'Windows_NT'" /> + <CompilerArg Include=""$(IlcCompileOutput)"" /> + <CompilerArg Include="/Fo"$(NativeObject)"" Condition="'$(OS)' == 'Windows_NT'" /> + <CompilerArg Include="-o "$(NativeObject)"" Condition="'$(OS)' != 'Windows_NT'" /> <CompilerArg Include="@(CppCompilerAndLinkerArg)" /> </ItemGroup> @@ -198,19 +227,19 @@ See the LICENSE file in the project root for more information. DependsOnTargets="$(LinkNativeDependsOn)"> <ItemGroup> - <CustomLinkerArg Include="$(NativeObject)" /> - <CustomLinkerArg Include="-o $(NativeBinary)" Condition="'$(OS)' != 'Windows_NT'" /> - <CustomLinkerArg Include="/OUT:$(NativeBinary)" Condition="'$(OS)' == 'Windows_NT'" /> - <CustomLinkerArg Include="/DEF:$(ExportsFile)" Condition="'$(OS)' == 'Windows_NT' and $(ExportsFile) != ''" /> + <CustomLinkerArg Include=""$(NativeObject)"" /> + <CustomLinkerArg Include="-o "$(NativeBinary)"" Condition="'$(OS)' != 'Windows_NT'" /> + <CustomLinkerArg Include="/OUT:"$(NativeBinary)"" Condition="'$(OS)' == 'Windows_NT'" /> + <CustomLinkerArg Include="/DEF:"$(ExportsFile)"" Condition="'$(OS)' == 'Windows_NT' and $(ExportsFile) != ''" /> <CustomLinkerArg Include="/LIBPATH:"%(AdditionalNativeLibraryDirectories.Identity)"" Condition="'$(OS)' == 'Windows_NT' and '@(AdditionalNativeLibraryDirectories->Count())' > 0" /> - <CustomLinkerArg Include="-exported_symbols_list $(ExportsFile)" Condition="'$(OS)' != 'Windows_NT' and $(ExportsFile) != ''" /> + <CustomLinkerArg Include="-exported_symbols_list "$(ExportsFile)"" Condition="'$(OS)' != 'Windows_NT' and $(ExportsFile) != ''" /> <CustomLinkerArg Include="@(LinkerArg)" /> </ItemGroup> <ItemGroup> - <CustomLibArg Include="-crs $(NativeBinary)" Condition="'$(OS)' != 'Windows_NT'" /> - <CustomLibArg Include="/OUT:$(NativeBinary)" Condition="'$(OS)' == 'Windows_NT'" /> - <CustomLibArg Include="$(NativeObject)" /> + <CustomLibArg Include="-crs "$(NativeBinary)"" Condition="'$(OS)' != 'Windows_NT'" /> + <CustomLibArg Include="/OUT:"$(NativeBinary)"" Condition="'$(OS)' == 'Windows_NT'" /> + <CustomLibArg Include=""$(NativeObject)"" /> </ItemGroup> <MakeDir Directories="$([System.IO.Path]::GetDirectoryName($(NativeBinary)))" /> @@ -224,8 +253,8 @@ See the LICENSE file in the project root for more information. <Exec Command="$(CppLibCreator) @"$(NativeIntermediateOutputPath)lib.rsp"" Condition="'$(OS)' == 'Windows_NT' and '$(NativeLib)' == 'Static' and '$(NativeCodeGen)' != 'wasm'" /> <PropertyGroup> - <EmccArgs>"$(NativeObject)" -o "$(NativeBinary)" -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 </EmccArgs> - <EmccArgs Condition="'$(Platform)'=='wasm'">$(EmccArgs) "$(IlcPath)/sdk/libPortableRuntime.bc" "$(IlcPath)/sdk/libbootstrappercpp.bc" </EmccArgs> + <EmccArgs>"$(NativeObject)" -o "$(NativeBinary)" -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 --emrun </EmccArgs> + <EmccArgs Condition="'$(Platform)'=='wasm'">$(EmccArgs) "$(IlcPath)/sdk/libPortableRuntime.bc" "$(IlcPath)/sdk/libbootstrappercpp.bc" "$(IlcPath)/sdk/libSystem.Private.CoreLib.Native.bc" </EmccArgs> <EmccArgs Condition="'$(Configuration)'=='Release'">$(EmccArgs) -O2 --llvm-lto 2</EmccArgs> <EmccArgs Condition="'$(Configuration)'=='Debug'">$(EmccArgs) -g3</EmccArgs> </PropertyGroup> |