[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH] Add PowerShell build scripts, version.vcxproj
Based on the sequence of commits to xenbus, add powershell scripts to build the solution using the EWDK version.vcxproj generates versioned files (version.h, xeniface.inf and wmi.mof) using scripts/genfiles.ps1 Strips duplicated functionality from build.py toproduce consistant builds between python and powershell. Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx> --- build.ps1 | 86 ++++++++++++++++++++++ build.py | 111 ----------------------------- include/version.tmpl | 22 ++++++ msbuild.ps1 | 92 ++++++++++++++++++++++++ scripts/genfiles.ps1 | 91 +++++++++++++++++++++++ src/xennet.inf | 4 +- symstore.ps1 | 36 ++++++++++ vs2015/package/package.vcxproj | 16 +++++ vs2015/version/version.vcxproj | 19 +++++ vs2015/xennet.sln | 23 ++++++ vs2015/xennet/xennet.vcxproj | 16 ----- vs2015/xennet_coinst/xennet_coinst.vcxproj | 1 - vs2017/package/package.vcxproj | 16 +++++ vs2017/version/version.vcxproj | 16 +++++ vs2017/xennet.sln | 23 ++++++ vs2017/xennet/xennet.vcxproj | 16 ----- vs2017/xennet_coinst/xennet_coinst.vcxproj | 1 - 17 files changed, 442 insertions(+), 147 deletions(-) create mode 100644 build.ps1 create mode 100644 include/version.tmpl create mode 100644 msbuild.ps1 create mode 100644 scripts/genfiles.ps1 create mode 100644 symstore.ps1 create mode 100644 vs2015/version/version.vcxproj create mode 100644 vs2017/version/version.vcxproj diff --git a/build.ps1 b/build.ps1 new file mode 100644 index 0000000..f154aee --- /dev/null +++ b/build.ps1 @@ -0,0 +1,86 @@ +# +# Main build script +# + +param( + [Parameter(Mandatory = $true)] + [string]$Type, + [switch]$Sdv +) + +# +# Script Body +# + +Function Build { + param( + [string]$Arch, + [string]$Type + ) + + $visualstudioversion = $Env:VisualStudioVersion + $solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; } + $configurationbase = @{ "14.0" = "Windows 8"; "15.0" = "Windows 8"; } + + $params = @{ + SolutionDir = $solutiondir[$visualstudioversion]; + ConfigurationBase = $configurationbase[$visualstudioversion]; + Arch = $Arch; + Type = $Type + } + & ".\msbuild.ps1" @params +} + +Function SdvBuild { + $visualstudioversion = $Env:VisualStudioVersion + $solutiondir = @{ "14.0" = "vs2015"; "15.0" = "vs2017"; } + $configurationbase = @{ "14.0" = "Windows 10"; "15.0" = "Windows 10"; } + $arch = "x64" + + $params = @{ + SolutionDir = $solutiondir[$visualstudioversion]; + ConfigurationBase = $configurationbase[$visualstudioversion]; + Arch = $arch; + Type = "sdv" + } + & ".\msbuild.ps1" @params +} + +if ($Type -ne "free" -and $Type -ne "checked") { + Write-Host "Invalid Type" + Exit -1 +} + +if ([string]::IsNullOrEmpty($Env:VENDOR_NAME)) { + Set-Item -Path Env:VENDOR_NAME -Value 'Xen Project' +} + +if ([string]::IsNullOrEmpty($Env:VENDOR_PREFIX)) { + Set-Item -Path Env:VENDOR_PREFIX -Value 'XP' +} + +if ([string]::IsNullOrEmpty($Env:PRODUCT_NAME)) { + Set-Item -Path Env:PRODUCT_NAME -Value 'Xen' +} + +if ([string]::IsNullOrEmpty($Env:BUILD_NUMBER)) { + if (Test-Path ".build_number") { + $BuildNum = Get-Content -Path ".build_number" + Set-Content -Path ".build_number" -Value ([int]$BuildNum + 1) + } else { + $BuildNum = '0' + Set-Content -Path ".build_number" -Value '1' + } + Set-Item -Path Env:BUILD_NUMBER -Value $BuildNum +} + +Set-Item -Path Env:MAJOR_VERSION -Value '9' +Set-Item -Path Env:MINOR_VERSION -Value '0' +Set-Item -Path Env:MICRO_VERSION -Value '0' + +Build "x86" $Type +Build "x64" $Type + +if ($Sdv) { + SdvBuild +} diff --git a/build.py b/build.py index 44a1e3c..f692013 100755 --- a/build.py +++ b/build.py @@ -23,76 +23,6 @@ def next_build_number(): return build_number - -def make_header(): - now = datetime.datetime.now() - - file = open('include\\version.h', 'w') - - file.write('#define VENDOR_NAME_STR\t\t"' + os.environ['VENDOR_NAME'] + '"\n') - file.write('#define VENDOR_PREFIX_STR\t"' + os.environ['VENDOR_PREFIX'] + '"\n') - - if 'VENDOR_DEVICE_ID' in os.environ.keys(): - file.write('#define VENDOR_DEVICE_ID_STR\t"' + os.environ['VENDOR_DEVICE_ID'] + '"\n') - - file.write('#define PRODUCT_NAME_STR\t"' + os.environ['PRODUCT_NAME'] + '"\n') - file.write('\n') - - file.write('#define MAJOR_VERSION\t\t' + os.environ['MAJOR_VERSION'] + '\n') - file.write('#define MAJOR_VERSION_STR\t"' + os.environ['MAJOR_VERSION'] + '"\n') - file.write('\n') - - file.write('#define MINOR_VERSION\t\t' + os.environ['MINOR_VERSION'] + '\n') - file.write('#define MINOR_VERSION_STR\t"' + os.environ['MINOR_VERSION'] + '"\n') - file.write('\n') - - file.write('#define MICRO_VERSION\t\t' + os.environ['MICRO_VERSION'] + '\n') - file.write('#define MICRO_VERSION_STR\t"' + os.environ['MICRO_VERSION'] + '"\n') - file.write('\n') - - file.write('#define BUILD_NUMBER\t\t' + os.environ['BUILD_NUMBER'] + '\n') - file.write('#define BUILD_NUMBER_STR\t"' + os.environ['BUILD_NUMBER'] + '"\n') - file.write('\n') - - file.write('#define YEAR\t\t\t' + str(now.year) + '\n') - file.write('#define YEAR_STR\t\t"' + str(now.year) + '"\n') - file.write('\n') - - file.write('#define MONTH\t\t\t' + str(now.month) + '\n') - file.write('#define MONTH_STR\t\t"' + str(now.month) + '"\n') - file.write('\n') - - file.write('#define DAY\t\t\t' + str(now.day) + '\n') - file.write('#define DAY_STR\t\t\t"' + str(now.day) + '"\n') - file.write('\n') - - file.close() - - -def copy_inf(vs, name): - src = open('src\\%s.inf' % name, 'r') - dst = open('%s\\%s.inf' % (vs, name), 'w') - - for line in src: - line = re.sub('@MAJOR_VERSION@', os.environ['MAJOR_VERSION'], line) - line = re.sub('@MINOR_VERSION@', os.environ['MINOR_VERSION'], line) - line = re.sub('@MICRO_VERSION@', os.environ['MICRO_VERSION'], line) - line = re.sub('@BUILD_NUMBER@', os.environ['BUILD_NUMBER'], line) - line = re.sub('@VENDOR_NAME@', os.environ['VENDOR_NAME'], line) - line = re.sub('@VENDOR_PREFIX@', os.environ['VENDOR_PREFIX'], line) - line = re.sub('@PRODUCT_NAME@', os.environ['PRODUCT_NAME'], line) - - if re.search('@VENDOR_DEVICE_ID@', line): - if 'VENDOR_DEVICE_ID' not in os.environ.keys(): - continue - line = re.sub('@VENDOR_DEVICE_ID@', os.environ['VENDOR_DEVICE_ID'], line) - - dst.write(line) - - dst.close() - src.close() - - def get_expired_symbols(name, age = 30): path = os.path.join(os.environ['SYMBOL_SERVER'], '000Admin\\history.txt') @@ -213,29 +143,6 @@ def build_sln(name, release, arch, debug, vs): msbuild(platform, configuration, 'Build', name + '.sln', '', vs) -def copy_package(name, release, arch, debug, vs): - configuration = get_configuration(release, debug) - - if arch == 'x86': - platform = 'Win32' - elif arch == 'x64': - platform = 'x64' - - pattern = '/'.join([vs, ''.join(configuration.split(' ')), platform, 'package', '*']) - print('Copying package from %s' % pattern) - - files = glob.glob(pattern) - - dst = os.path.join(name, arch) - - os.makedirs(dst, exist_ok=True) - - for file in files: - new = shutil.copy(file, dst) - print(new) - - print('') - def remove_timestamps(path): try: os.unlink(path + '.orig') @@ -408,22 +315,6 @@ def main(): print(os.environ['GIT_REVISION'], file=revision) revision.close() - print("VENDOR_NAME\t\t'%s'" % os.environ['VENDOR_NAME']) - print("VENDOR_PREFIX\t\t'%s'" % os.environ['VENDOR_PREFIX']) - - if 'VENDOR_DEVICE_ID' in os.environ.keys(): - print("VENDOR_DEVICE_ID\t'%s'" % os.environ['VENDOR_DEVICE_ID']) - - print("PRODUCT_NAME\t\t'%s'" % os.environ['PRODUCT_NAME']) - print("MAJOR_VERSION\t\t%s" % os.environ['MAJOR_VERSION']) - print("MINOR_VERSION\t\t%s" % os.environ['MINOR_VERSION']) - print("MICRO_VERSION\t\t%s" % os.environ['MICRO_VERSION']) - print("BUILD_NUMBER\t\t%s" % os.environ['BUILD_NUMBER']) - print() - - make_header() - copy_inf(vs, driver) - symstore_del(driver, 30) release = { 'vs2015':'Windows 8', @@ -432,10 +323,8 @@ def main(): shutil.rmtree(driver, ignore_errors=True) build_sln(driver, release[vs], 'x86', debug[sys.argv[1]], vs) - copy_package(driver, release[vs], 'x86', debug[sys.argv[1]], vs) build_sln(driver, release[vs], 'x64', debug[sys.argv[1]], vs) - copy_package(driver, release[vs], 'x64', debug[sys.argv[1]], vs) symstore_add(driver, release[vs], 'x86', debug[sys.argv[1]], vs) symstore_add(driver, release[vs], 'x64', debug[sys.argv[1]], vs) diff --git a/include/version.tmpl b/include/version.tmpl new file mode 100644 index 0000000..d6f9a48 --- /dev/null +++ b/include/version.tmpl @@ -0,0 +1,22 @@ +#define VENDOR_NAME_STR "@VENDOR_NAME@" +#define PRODUCT_NAME_STR "@PRODUCT_NAME@" +#define VENDOR_PREFIX_STR "@VENDOR_PREFIX@" +#define VENDOR_DEVICE_ID_STR "@VENDOR_DEVICE_ID@" + +#define MAJOR_VERSION_STR "@MAJOR_VERSION@" +#define MINOR_VERSION_STR "@MINOR_VERSION@" +#define MICRO_VERSION_STR "@MICRO_VERSION@" +#define BUILD_NUMBER_STR "@BUILD_NUMBER@" + +#define YEAR_STR "@YEAR@" +#define MONTH_STR "@MONTH@" +#define DAY_STR "@DAY@" + +#define MAJOR_VERSION @MAJOR_VERSION@ +#define MINOR_VERSION @MINOR_VERSION@ +#define MICRO_VERSION @MICRO_VERSION@ +#define BUILD_NUMBER @BUILD_NUMBER@ + +#define YEAR @YEAR@ +#define MONTH @MONTH@ +#define DAY @DAY@ diff --git a/msbuild.ps1 b/msbuild.ps1 new file mode 100644 index 0000000..d190ddd --- /dev/null +++ b/msbuild.ps1 @@ -0,0 +1,92 @@ +# +# Wrapper script for MSBuild +# +param( + [string]$SolutionDir = "vs2017", + [string]$ConfigurationBase = "Windows 10", + [Parameter(Mandatory = $true)] + [string]$Arch, + [Parameter(Mandatory = $true)] + [string]$Type +) + +Function Run-MSBuild { + param( + [string]$SolutionPath, + [string]$Name, + [string]$Configuration, + [string]$Platform, + [string]$Target = "Build", + [string]$Inputs = "" + ) + + $c = "msbuild.exe" + $c += " /m:4" + $c += [string]::Format(" /p:Configuration=""{0}""", $Configuration) + $c += [string]::Format(" /p:Platform=""{0}""", $Platform) + $c += [string]::Format(" /t:""{0}"" ", $Target) + if ($Inputs) { + $c += [string]::Format(" /p:Inputs=""{0}"" ", $Inputs) + } + $c += Join-Path -Path $SolutionPath -ChildPath $Name + + Invoke-Expression $c +} + +Function Run-MSBuildSDV { + param( + [string]$SolutionPath, + [string]$Name, + [string]$Configuration, + [string]$Platform + ) + + $basepath = Get-Location + $versionpath = Join-Path -Path $SolutionPath -ChildPath "version" + $projpath = Join-Path -Path $SolutionPath -ChildPath $Name + Set-Location $projpath + + $project = [string]::Format("{0}.vcxproj", $Name) + Run-MSBuild $versionpath "version.vcxproj" $Configuration $Platform "Build" + Run-MSBuild $projpath $project $Configuration $Platform "Build" + Run-MSBuild $projpath $project $Configuration $Platform "sdv" "/clean" + Run-MSBuild $projpath $project $Configuration $Platform "sdv" "/check:default.sdv /debug" + Run-MSBuild $projpath $project $Configuration $Platform "dvl" + + $refine = Join-Path -Path $projpath -ChildPath "refine.sdv" + if (Test-Path -Path $refine -PathType Leaf) { + Run-MSBuild $projpath $project $Configuration $Platform "sdv" "/refine" + } + + Copy-Item "*DVL*" -Destination $SolutionPath + + Set-Location $basepath +} + +# +# Script Body +# + +$configuration = @{ "free" = "$ConfigurationBase Release"; "checked" = "$ConfigurationBase Debug"; "sdv" = "$ConfigurationBase Release"; } +$platform = @{ "x86" = "Win32"; "x64" = "x64" } +$solutionpath = Resolve-Path $SolutionDir + +Set-ExecutionPolicy -Scope CurrentUser -Force Bypass + +if ($Type -eq "free") { + Run-MSBuild $solutionpath "xennet.sln" $configuration["free"] $platform[$Arch] +} +elseif ($Type -eq "checked") { + Run-MSBuild $solutionpath "xennet.sln" $configuration["checked"] $platform[$Arch] +} +elseif ($Type -eq "sdv") { + $archivepath = "xennet" + + if (-Not (Test-Path -Path $archivepath)) { + New-Item -Name $archivepath -ItemType Directory | Out-Null + } + + Run-MSBuildSDV $solutionpath "xennet" $configuration["sdv"] $platform[$Arch] + + Copy-Item -Path (Join-Path -Path $SolutionPath -ChildPath "*DVL*") -Destination $archivepath +} diff --git a/scripts/genfiles.ps1 b/scripts/genfiles.ps1 new file mode 100644 index 0000000..6074176 --- /dev/null +++ b/scripts/genfiles.ps1 @@ -0,0 +1,91 @@ +# +# Generate version.h and xenbus.inf +# +param( + [string]$Platform = "Win32", + [string]$SolutionDir = "vs2017", + [string]$IncludeDir = "include", + [string]$SourceDir = "src" +) + +# Copy $InFileName -> $OutFileName replacing $Token$_.Key$Token with $_.Value from +# $Replacements +Function Copy-FileWithReplacements { + param( + [Parameter(Mandatory = $true)] + [string]$InFileName, + [Parameter(Mandatory = $true)] + [string]$OutFileName, + [hashtable]$Replacements, + [string]$Token = "@" + ) + + Write-Host "Copy-FileWithReplacements" + Write-Host $InFileName" -> "$OutFileName + + (Get-Content $InFileName) | + ForEach-Object { + $line = $_ + $Replacements.GetEnumerator() | ForEach-Object { + $key = [string]::Format("{0}{1}{2}", $Token, $_.Name, $Token) + if (([string]::IsNullOrEmpty($_.Value)) -and ($line.Contains($key))) { + Write-Host "Skipping Line Containing " $_.Name + $line = $null + } + $line = $line -replace $key, $_.Value + } + $line + } | + Set-Content $OutFileName +} + +# +# Script Body +# +$TheYear = [int](Get-Date -UFormat "%Y") +$TheMonth = [int](Get-Date -UFormat "%m") +$TheDay = [int](Get-Date -UFormat "%d") +$InfArch = @{ "Win32" = "x86"; "x64" = "amd64" } +$InfDate = Get-Date -UFormat "%m/%d/%Y" + +# if GitRevision is $null, GIT_REVISION will be excluded from the Copy-FileWithReplacements +$GitRevision = & "git.exe" "rev-list" "--max-count=1" "HEAD" +if ($GitRevision) { + Set-Content -Path ".revision" -Value $GitRevision +} + +# [ordered] makes output easier to parse by humans +$Replacements = [ordered]@{ + # values determined from the build environment + 'VENDOR_NAME' = $Env:VENDOR_NAME; + 'PRODUCT_NAME' = $Env:PRODUCT_NAME; + 'VENDOR_DEVICE_ID' = $Env:VENDOR_DEVICE_ID; + 'VENDOR_PREFIX' = $Env:VENDOR_PREFIX; + + 'MAJOR_VERSION' = $Env:MAJOR_VERSION; + 'MINOR_VERSION' = $Env:MINOR_VERSION; + 'MICRO_VERSION' = $Env:MICRO_VERSION; + 'BUILD_NUMBER' = $Env:BUILD_NUMBER; + + # generated values + 'GIT_REVISION' = $GitRevision; + + 'INF_DATE' = $InfDate; + 'INF_ARCH' = $InfArch[$Platform]; + 'YEAR' = $TheYear; + 'MONTH' = $TheMonth; + 'DAY' = $TheDay +} + +$Replacements | Out-String | Write-Host + +$includepath = Resolve-Path $IncludeDir +$src = Join-Path -Path $includepath -ChildPath "version.tmpl" +$dst = Join-Path -Path $includepath -ChildPath "version.h" +Copy-FileWithReplacements $src $dst -Replacements $Replacements + +$sourcepath = Resolve-Path $SourceDir +$solutionpath = Resolve-Path $SolutionDir +$src = Join-Path -Path $sourcepath -ChildPath "xennet.inf" +$dst = Join-Path -Path $solutionpath -ChildPath "xennet.inf" +Copy-FileWithReplacements $src $dst -Replacements $Replacements diff --git a/src/xennet.inf b/src/xennet.inf index 6b207ae..aab0942 100644 --- a/src/xennet.inf +++ b/src/xennet.inf @@ -55,9 +55,9 @@ xennet.sys xennet_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xennet_coinst.dll [Manufacturer] -%Vendor%=Inst,NT$ARCH$ +%Vendor%=Inst,NT@INF_ARCH@ -[Inst.NT$ARCH$] +[Inst.NT@INF_ARCH@] ; DisplayName Section DeviceID ; ----------- ------- -------- diff --git a/symstore.ps1 b/symstore.ps1 new file mode 100644 index 0000000..1d1b27e --- /dev/null +++ b/symstore.ps1 @@ -0,0 +1,36 @@ +# +# Store symbols for archived build +# +param( + [string]$SymbolServer = "c:\symbols", + [Parameter(Mandatory = $true)] + [string]$Arch +) + +Function Add-Symbols { + param( + [string]$DriverName, + [string]$ArchivePath, + [string]$SymbolServer, + [string]$Arch + ) + + Write-Host Store symbols from (Resolve-Path $ArchivePath) + + $cwd = Get-Location + Set-Location $ArchivePath + + $path = Join-Path -Path ([string]::Format("{0}Debuggers", $env:WDKContentRoot)) -ChildPath $Arch + $symstore = Join-Path -Path $path -ChildPath "symstore.exe" + + $inffile = [string]::Format("{0}.inf", $DriverName) + $Version = (Get-Content -Path $inffile | Select-String "DriverVer").Line.Split(',')[1] + + Get-ChildItem -Path "." -Include "*.pdb" -Name | Write-Host + & $symstore "add" "/s" $SymbolServer "/r" "/f" "*.pdb" "/t" $DriverName "/v" $Version + + Set-Location $cwd +} + +$archivepath = Join-Path -Path (Resolve-Path "xennet") -ChildPath $Arch +Add-Symbols "xennet" $archivepath $SymbolServer $Arch diff --git a/vs2015/package/package.vcxproj b/vs2015/package/package.vcxproj index a32e912..5433b1f 100644 --- a/vs2015/package/package.vcxproj +++ b/vs2015/package/package.vcxproj @@ -31,6 +31,12 @@ <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir> <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir> </PropertyGroup> + <PropertyGroup Condition="'$(Platform)'=='Win32'"> + <ArchiveDir>..\..\$(SolutionName)\x86</ArchiveDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Platform)'=='x64'"> + <ArchiveDir>..\..\$(SolutionName)\x64</ArchiveDir> + </PropertyGroup> <ItemGroup> <ProjectReference Include="..\xennet\xennet.vcxproj"> <Project>{97D9942B-5EA3-488C-B512-C96E5D077F8E}</Project> @@ -38,6 +44,7 @@ <ProjectReference Include="..\xennet_coinst\xennet_coinst.vcxproj"> <Project>{3EDD837A-C1BE-47D4-9603-16B61353670B}</Project> </ProjectReference> + <FilesToPackage Include="..\xennet.inf" /> </ItemGroup> <ItemGroup Condition="Exists('$(DPINST_REDIST)')"> <FilesToPackage Include="$(DPINST_REDIST)\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" /> @@ -46,4 +53,13 @@ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> + <ItemGroup> + <PackageFiles Include="$(OutDir)\$(ProjectName)\*" /> + </ItemGroup> + <Target Name="Archive" AfterTargets="TestSign"> + <Copy + SourceFiles="@(PackageFiles)" + DestinationFiles="@(PackageFiles->'$(ArchiveDir)\%(FileName)%(Extension)')" + /> + </Target> </Project> diff --git a/vs2015/version/version.vcxproj b/vs2015/version/version.vcxproj new file mode 100644 index 0000000..e3c95c4 --- /dev/null +++ b/vs2015/version/version.vcxproj @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="..\configs.props" /> + <Import Project="..\targets.props" /> + <PropertyGroup Label="Globals"> + <ProjectGuid>{65FA97EA-A569-4FC1-BFE7-D68E109143F7}</ProjectGuid> + </PropertyGroup> + <PropertyGroup> + <Script>..\..\scripts\genfiles.ps1</Script> + <SolutionDir>..</SolutionDir> + <IncludeDir>..\..\include</IncludeDir> + <SourceDir>..\..\src</SourceDir> + </PropertyGroup> + <Target Name="GetNativeManifest"></Target> + <Target Name="Build"> + <Exec Command="powershell.exe -ExecutionPolicy Bypass -NoProfile -NonInteractive -File $(Script) $(Platform) $(SolutionDir) $(IncludeDir) $(SourceDir)" /> + </Target> + <Target Name="GetCopyToOutputDirectoryItems"></Target> +</Project> diff --git a/vs2015/xennet.sln b/vs2015/xennet.sln index 9c51b06..7cbf8ca 100644 --- a/vs2015/xennet.sln +++ b/vs2015/xennet.sln @@ -2,15 +2,22 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.25420.1 MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "version\version.vcxproj", "{65FA97EA-A569-4FC1-BFE7-D68E109143F7}" +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xennet", "xennet\xennet.vcxproj", "{97D9942B-5EA3-488C-B512-C96E5D077F8E}" + ProjectSection(ProjectDependencies) = postProject + {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xennet_coinst", "xennet_coinst\xennet_coinst.vcxproj", "{3EDD837A-C1BE-47D4-9603-16B61353670B}" ProjectSection(ProjectDependencies) = postProject + {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7} {97D9942B-5EA3-488C-B512-C96E5D077F8E} = {97D9942B-5EA3-488C-B512-C96E5D077F8E} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{445FD18F-97E3-4E5D-825F-151026242C05}" ProjectSection(ProjectDependencies) = postProject + {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7} {3EDD837A-C1BE-47D4-9603-16B61353670B} = {3EDD837A-C1BE-47D4-9603-16B61353670B} EndProjectSection EndProject @@ -26,6 +33,22 @@ Global Windows 10 Release|x64 = Windows 10 Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64 {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32 {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32 {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32 diff --git a/vs2015/xennet/xennet.vcxproj b/vs2015/xennet/xennet.vcxproj index 4acae2a..2d04c4e 100644 --- a/vs2015/xennet/xennet.vcxproj +++ b/vs2015/xennet/xennet.vcxproj @@ -37,33 +37,20 @@ <AdditionalDependencies>$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies> <EnableCOMDATFolding>false</EnableCOMDATFolding> </Link> - <Inf> - <SpecifyArchitecture>true</SpecifyArchitecture> - <SpecifyDriverVerDirectiveVersion>true</SpecifyDriverVerDirectiveVersion> - <TimeStamp>$(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION).$(BUILD_NUMBER)</TimeStamp> - <EnableVerbose>true</EnableVerbose> - </Inf> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'"> <ClCompile> <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> - <Inf> - <Architecture>x86</Architecture> - </Inf> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Platform)'=='x64'"> <ClCompile> <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> - <Inf> - <Architecture>amd64</Architecture> - </Inf> </ItemDefinitionGroup> <ItemGroup> <FilesToPackage Include="$(TargetPath)" /> <FilesToPackage Include="$(OutDir)$(TargetName).pdb" /> - <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" /> </ItemGroup> <ItemGroup> <ClCompile Include="../../src/xennet/adapter.c" /> @@ -76,8 +63,5 @@ <ItemGroup> <ResourceCompile Include="..\..\src\xennet\xennet.rc" /> </ItemGroup> - <ItemGroup> - <Inf Include="..\xennet.inf" /> - </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> </Project> diff --git a/vs2015/xennet_coinst/xennet_coinst.vcxproj b/vs2015/xennet_coinst/xennet_coinst.vcxproj index 3c901ca..9b1b7d5 100644 --- a/vs2015/xennet_coinst/xennet_coinst.vcxproj +++ b/vs2015/xennet_coinst/xennet_coinst.vcxproj @@ -46,7 +46,6 @@ <ItemGroup> <FilesToPackage Include="$(TargetPath)" /> <FilesToPackage Include="$(OutDir)$(TargetName).pdb" /> - <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" /> </ItemGroup> <ItemGroup> <ClCompile Include="..\..\src\coinst\coinst.c" /> diff --git a/vs2017/package/package.vcxproj b/vs2017/package/package.vcxproj index 0324fd4..dd794b5 100644 --- a/vs2017/package/package.vcxproj +++ b/vs2017/package/package.vcxproj @@ -31,6 +31,12 @@ <IntDir>..\$(ProjectName)\$(ConfigurationName)\$(Platform)\</IntDir> <OutDir>..\$(ConfigurationName)\$(Platform)\</OutDir> </PropertyGroup> + <PropertyGroup Condition="'$(Platform)'=='Win32'"> + <ArchiveDir>..\..\$(SolutionName)\x86</ArchiveDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Platform)'=='x64'"> + <ArchiveDir>..\..\$(SolutionName)\x64</ArchiveDir> + </PropertyGroup> <ItemGroup> <ProjectReference Include="..\xennet\xennet.vcxproj"> <Project>{97D9942B-5EA3-488C-B512-C96E5D077F8E}</Project> @@ -38,6 +44,7 @@ <ProjectReference Include="..\xennet_coinst\xennet_coinst.vcxproj"> <Project>{3EDD837A-C1BE-47D4-9603-16B61353670B}</Project> </ProjectReference> + <FilesToPackage Include="..\xennet.inf" /> </ItemGroup> <ItemGroup Condition="Exists('$(DPINST_REDIST)')"> <FilesToPackage Include="$(DPINST_REDIST)\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" /> @@ -46,4 +53,13 @@ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <ImportGroup Label="ExtensionTargets"> </ImportGroup> + <ItemGroup> + <PackageFiles Include="$(OutDir)\$(ProjectName)\*" /> + </ItemGroup> + <Target Name="Archive" AfterTargets="TestSign"> + <Copy + SourceFiles="@(PackageFiles)" + DestinationFiles="@(PackageFiles->'$(ArchiveDir)\%(FileName)%(Extension)')" + /> + </Target> </Project> diff --git a/vs2017/version/version.vcxproj b/vs2017/version/version.vcxproj new file mode 100644 index 0000000..9d149d0 --- /dev/null +++ b/vs2017/version/version.vcxproj @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <Import Project="..\configs.props" /> + <PropertyGroup Label="Globals"> + <ProjectGuid>{65FA97EA-A569-4FC1-BFE7-D68E109143F7}</ProjectGuid> + </PropertyGroup> + <PropertyGroup> + <Script>..\..\scripts\genfiles.ps1</Script> + <SolutionDir>..</SolutionDir> + <IncludeDir>..\..\include</IncludeDir> + <SourceDir>..\..\src</SourceDir> + </PropertyGroup> + <Target Name="Build"> + <Exec Command="powershell.exe -ExecutionPolicy Bypass -NoProfile -NonInteractive -File $(Script) $(Platform) $(SolutionDir) $(IncludeDir) $(SourceDir)" /> + </Target> +</Project> diff --git a/vs2017/xennet.sln b/vs2017/xennet.sln index 004e5e1..fde116e 100644 --- a/vs2017/xennet.sln +++ b/vs2017/xennet.sln @@ -1,13 +1,20 @@ Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "version", "version\version.vcxproj", "{65FA97EA-A569-4FC1-BFE7-D68E109143F7}" +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xennet", "xennet\xennet.vcxproj", "{97D9942B-5EA3-488C-B512-C96E5D077F8E}" + ProjectSection(ProjectDependencies) = postProject + {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xennet_coinst", "xennet_coinst\xennet_coinst.vcxproj", "{3EDD837A-C1BE-47D4-9603-16B61353670B}" ProjectSection(ProjectDependencies) = postProject + {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7} {97D9942B-5EA3-488C-B512-C96E5D077F8E} = {97D9942B-5EA3-488C-B512-C96E5D077F8E} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{445FD18F-97E3-4E5D-825F-151026242C05}" ProjectSection(ProjectDependencies) = postProject + {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7} {3EDD837A-C1BE-47D4-9603-16B61353670B} = {3EDD837A-C1BE-47D4-9603-16B61353670B} EndProjectSection EndProject @@ -23,6 +30,22 @@ Global Windows 10 Release|x64 = Windows 10 Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64 + {65FA97EA-A569-4FC1-BFE7-D68E109143F7}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64 {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32 {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32 {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32 diff --git a/vs2017/xennet/xennet.vcxproj b/vs2017/xennet/xennet.vcxproj index d602ae0..0c27304 100644 --- a/vs2017/xennet/xennet.vcxproj +++ b/vs2017/xennet/xennet.vcxproj @@ -38,28 +38,16 @@ <AdditionalDependencies>$(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies)</AdditionalDependencies> <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration> </Link> - <Inf> - <SpecifyArchitecture>true</SpecifyArchitecture> - <SpecifyDriverVerDirectiveVersion>true</SpecifyDriverVerDirectiveVersion> - <TimeStamp>$(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION).$(BUILD_NUMBER)</TimeStamp> - <EnableVerbose>true</EnableVerbose> - </Inf> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Platform)'=='Win32'"> <ClCompile> <PreprocessorDefinitions>__i386__;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> - <Inf> - <Architecture>x86</Architecture> - </Inf> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Platform)'=='x64'"> <ClCompile> <PreprocessorDefinitions>__x86_64__;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> - <Inf> - <Architecture>amd64</Architecture> - </Inf> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)'=='Windows 8 Release'"> <ClCompile> @@ -71,7 +59,6 @@ <ItemGroup> <FilesToPackage Include="$(TargetPath)" /> <FilesToPackage Include="$(OutDir)$(TargetName).pdb" /> - <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" /> </ItemGroup> <ItemGroup> <ClCompile Include="../../src/xennet/adapter.c" /> @@ -84,8 +71,5 @@ <ItemGroup> <ResourceCompile Include="..\..\src\xennet\xennet.rc" /> </ItemGroup> - <ItemGroup> - <Inf Include="..\xennet.inf" /> - </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> </Project> diff --git a/vs2017/xennet_coinst/xennet_coinst.vcxproj b/vs2017/xennet_coinst/xennet_coinst.vcxproj index aae8494..a159abd 100644 --- a/vs2017/xennet_coinst/xennet_coinst.vcxproj +++ b/vs2017/xennet_coinst/xennet_coinst.vcxproj @@ -46,7 +46,6 @@ <ItemGroup> <FilesToPackage Include="$(TargetPath)" /> <FilesToPackage Include="$(OutDir)$(TargetName).pdb" /> - <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" /> </ItemGroup> <ItemGroup> <ClCompile Include="..\..\src\coinst\coinst.c" /> -- 2.16.2.windows.1 _______________________________________________ win-pv-devel mailing list win-pv-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/win-pv-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |