Skip to content

Commit

Permalink
[build] Add back .NET5 build as default, create separate .NET6 build;…
Browse files Browse the repository at this point in the history
… Adjust build script and SDK distro layout; Clarify license terms in WASimClient README.
  • Loading branch information
mpaperno committed Nov 2, 2022
1 parent a3ba47b commit 312024c
Show file tree
Hide file tree
Showing 4 changed files with 119 additions and 41 deletions.
29 changes: 15 additions & 14 deletions build/build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
Param(
[string[]]$Targets = "all",
[string]$RootPath = "..",
[string[]]$Configuration = @("Debug", "Release-DLL", "Release-NetFW", "Release"),
[string[]]$Configuration = @("Debug", "Release-DLL", "Release-net6", "Release-netfw", "Release"),
[string]$Platform = "x64",
[string[]]$Projects = "all",
[string]$BuildType = "Clean,Rebuild",
Expand Down Expand Up @@ -126,9 +126,9 @@ robocopy "$SrcPath\include" "$PackagePath\include" $copyOptions /XF .* *.in
if ($LastExitCode -ge 8) { Write-Output($LastExitCode); Exit 1 }

# C++ libs
$cppLibPath = "${LibPath}\MSVS-2019"
$libStatic = "${cppLibPath}\static"
$libDynamic = "${cppLibPath}\dynamic"
$msvcVersion = "msvc142"
$libStatic = "${LibPath}\static\${msvcVersion}"
$libDynamic = "${LibPath}\dynamic\${msvcVersion}"

# static, release and debug
robocopy "$BuildPath\${CLIENT_NAME}\Release-$Platform" "$libStatic" $copyOptions
Expand All @@ -141,26 +141,28 @@ if ($LastExitCode -ge 8) { Write-Output($LastExitCode); Exit 1 }
robocopy "$BuildPath\${CLIENT_NAME}\Debug-DLL-$Platform" "$libDynamic" $copyOptions /XF *.ini
if ($LastExitCode -ge 8) { Write-Output($LastExitCode); Exit 1 }
# license and readme
robocopy "$SrcPath\${CLIENT_NAME}" "$cppLibPath" *.txt *.md $copyOptions
robocopy "$SrcPath\${CLIENT_NAME}" "$libStatic" LICENSE.txt LICENSE.GPL.txt *.md $copyOptions
robocopy "$SrcPath\${CLIENT_NAME}" "$libDynamic" *.txt *.md $copyOptions
if ($LastExitCode -ge 8) { Write-Output($LastExitCode); Exit 1 }

# Managed DLL
$csLibPath = "${LibPath}\MSVS-2022\managed"
$libNetN = "${csLibPath}\net6"
$libNetFw = "${csLibPath}\netFw4"
$csLibPath = "${LibPath}\managed"

# .NET 5 (default Release build)
robocopy "$BuildPath\${CLIENT_NAME}_CLI\Release-$Platform" "${csLibPath}\net5" *.dll *.pdb *.xml *.ini $copyOptions
if ($LastExitCode -ge 8) { Write-Output($LastExitCode); Exit 1 }
# .NET 6
robocopy "$BuildPath\${CLIENT_NAME}_CLI\Release-$Platform" "$libNetN" *.dll *.pdb *.xml *.ini $copyOptions
robocopy "$BuildPath\${CLIENT_NAME}_CLI\Release-net6-$Platform" "${csLibPath}\net6" *.dll *.pdb *.xml *.ini $copyOptions
if ($LastExitCode -ge 8) { Write-Output($LastExitCode); Exit 1 }
# .NET Framework
robocopy "$BuildPath\${CLIENT_NAME}_CLI\Release-netfw-$Platform" "$libNetFw" *.dll *.pdb *.xml *.ini $copyOptions
robocopy "$BuildPath\${CLIENT_NAME}_CLI\Release-netfw-$Platform" "${csLibPath}\net46" *.dll *.pdb *.xml *.ini $copyOptions
if ($LastExitCode -ge 8) { Write-Output($LastExitCode); Exit 1 }
# license and readme
robocopy "$SrcPath\${CLIENT_NAME}_CLI" "$csLibPath" *.txt *.md $copyOptions
if ($LastExitCode -ge 8) { Write-Output($LastExitCode); Exit 1 }

# Module
robocopy "$ModuleDest\Packages" "$ModulePackage" $copyOptions
robocopy "$ModuleDest\Packages" "$ModulePackage" $copyOptions /XF .git*
if ($LastExitCode -ge 8) { Write-Output($LastExitCode); Exit 1 }
robocopy "$SrcPath\${SERVER_NAME}" "$ModulePackage" *.txt *.md $copyOptions
if ($LastExitCode -ge 8) { Write-Output($LastExitCode); Exit 1 }
Expand All @@ -171,14 +173,13 @@ if ($LastExitCode -ge 8) { Write-Output($LastExitCode); Exit 1 }
robocopy "$SrcPath\${APP_GUI_NAME}" "$PackagePath\bin\${APP_GUI_NAME}" LICENSE.* *.md $copyOptions
if ($LastExitCode -ge 8) { Write-Output($LastExitCode); Exit 1 }

# Required DLL files for Python example
robocopy "$BuildPath\${CLIENT_NAME}_CLI\Release-$Platform" $PackagePath\bin\Py_BasicConsole *.dll *.ini $copyOptions

# Test/demo app(s)
$testApps.GetEnumerator() | ForEach-Object {
robocopy "$($_.Key)" "$($_.Value)" $copyOptions /XF *.log* *.*proj
if ($LastExitCode -ge 8) { Write-Output($LastExitCode); Exit 1 }
}
# Required DLL files for Python example
robocopy "$BuildPath\${CLIENT_NAME}_CLI\Release-$Platform" $PackagePath\bin\Py_BasicConsole *.dll *.ini $copyOptions

# docs
robocopy "$DocsPath\html" "$PackagePath\docs\reference" $copyOptions
Expand Down
5 changes: 4 additions & 1 deletion src/WASimClient/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
This directory contains the implementation of a Client-side library for all aspects of communication with the WASimCommander Server component (`WASimModule`).

It is designed to be integrated as either a static or dynamic library into other software.
To encourage adaptation, it is dual licensed under the terms of the GPL or LGPL (see LICENSE.txt for details).
To encourage adaptation, it is dual licensed under the terms of the GPL (dynamic or static linking)
or LGPL (dynamic linking).

See corresponding LICENSE.txt for licensing details.

### Building Note

Expand Down
58 changes: 56 additions & 2 deletions src/WASimClient_CLI/WASimClient_CLI.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release-net6|x64">
<Configuration>Release-net6</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release-netfw|x64">
<Configuration>Release-netfw</Configuration>
<Platform>x64</Platform>
Expand All @@ -25,27 +29,39 @@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CLRSupport>NetCore</CLRSupport>
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CLRSupport>NetCore</CLRSupport>
<TargetFramework>net5.0</TargetFramework>
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-net6|x64'" Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CLRSupport>NetCore</CLRSupport>
<TargetFramework>net6.0</TargetFramework>
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-netfw|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v143</PlatformToolset>
<CLRSupport>true</CLRSupport>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<ConfigurationType>DynamicLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
<WholeProgramOptimization>true</WholeProgramOptimization>
Expand All @@ -63,6 +79,10 @@
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\common.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-net6|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\common.props" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-netfw|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\common.props" />
Expand All @@ -81,11 +101,19 @@
<IncludePath>$(MSFS_SDK)\SimConnect SDK\include;$(IncludePath)</IncludePath>
<TargetName>WASimCommander.WASimClient</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-net6|x64'">
<ManagedAssembly>true</ManagedAssembly>
<CopyLocalDeploymentContent>true</CopyLocalDeploymentContent>
<LinkIncremental>false</LinkIncremental>
<IncludePath>$(MSFS_SDK)\SimConnect SDK\include;$(IncludePath)</IncludePath>
<TargetName>WASimCommander.WASimClient</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-netfw|x64'">
<CopyLocalDeploymentContent>true</CopyLocalDeploymentContent>
<LinkIncremental>false</LinkIncremental>
<IncludePath>$(MSFS_SDK)\SimConnect SDK\include;$(IncludePath)</IncludePath>
<TargetName>WASimCommander.WASimClient</TargetName>
<ManagedAssembly>true</ManagedAssembly>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
Expand Down Expand Up @@ -138,6 +166,32 @@
<AdditionalManifestFiles>$(ProjectDir)deps.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles>
</Manifest>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-net6|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<PreprocessorDefinitions>WSMCMND_API_STATIC;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE_DEBUG;_WINDOWS;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard>stdcpp17</LanguageStandard>
<LanguageStandard_C>stdc17</LanguageStandard_C>
<AdditionalOptions>/Zc:__cplusplus /Zc:twoPhase-</AdditionalOptions>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<IntrinsicFunctions>true</IntrinsicFunctions>
<ConformanceMode>true</ConformanceMode>
<CallingConvention>StdCall</CallingConvention>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<GenerateXMLDocumentationFiles>true</GenerateXMLDocumentationFiles>
<DisableSpecificWarnings>4635;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<RemoveUnreferencedCodeData>true</RemoveUnreferencedCodeData>
</ClCompile>
<Link>
<AdditionalOptions>/ignore:4099</AdditionalOptions>
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
</Link>
<Manifest>
<AdditionalManifestFiles>$(ProjectDir)deps.manifest %(AdditionalManifestFiles)</AdditionalManifestFiles>
</Manifest>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-netfw|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
Expand Down
Loading

0 comments on commit 312024c

Please sign in to comment.