[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 | 107 --------------------------- include/version.tmpl | 22 ++++++ msbuild.ps1 | 92 +++++++++++++++++++++++ scripts/genfiles.ps1 | 91 +++++++++++++++++++++++ src/xenvkbd.inf | 4 +- symstore.ps1 | 36 +++++++++ vs2015/package/package.vcxproj | 16 ++++ vs2015/version/version.vcxproj | 19 +++++ vs2015/xenvkbd.sln | 23 ++++++ vs2015/xenvkbd/xenvkbd.vcxproj | 16 ---- vs2015/xenvkbd_coinst/xenvkbd_coinst.vcxproj | 1 - vs2017/package/package.vcxproj | 16 ++++ vs2017/version/version.vcxproj | 16 ++++ vs2017/xenvkbd.sln | 23 ++++++ vs2017/xenvkbd/xenvkbd.vcxproj | 16 ---- vs2017/xenvkbd_coinst/xenvkbd_coinst.vcxproj | 1 - 17 files changed, 442 insertions(+), 143 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 5326729..1033b6c 100644 --- 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') @@ -409,18 +316,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']) - 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', @@ -429,10 +324,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..0f67a08 --- /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 "xenvkbd.sln" $configuration["free"] $platform[$Arch] +} +elseif ($Type -eq "checked") { + Run-MSBuild $solutionpath "xenvkbd.sln" $configuration["checked"] $platform[$Arch] +} +elseif ($Type -eq "sdv") { + $archivepath = "xenvkbd" + + if (-Not (Test-Path -Path $archivepath)) { + New-Item -Name $archivepath -ItemType Directory | Out-Null + } + + Run-MSBuildSDV $solutionpath "xenvkbd" $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..a288a6c --- /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 "xenvkbd.inf" +$dst = Join-Path -Path $solutionpath -ChildPath "xenvkbd.inf" +Copy-FileWithReplacements $src $dst -Replacements $Replacements diff --git a/src/xenvkbd.inf b/src/xenvkbd.inf index 90b1e3f..ccb0ee9 100644 --- a/src/xenvkbd.inf +++ b/src/xenvkbd.inf @@ -53,9 +53,9 @@ xenvkbd_coinst.dll=0,, xenvkbd_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xenvkbd_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..a449772 --- /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 "xenvkbd") -ChildPath $Arch +Add-Symbols "xenvkbd" $archivepath $SymbolServer $Arch diff --git a/vs2015/package/package.vcxproj b/vs2015/package/package.vcxproj index db5c2e0..a592974 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="..\xenvkbd\xenvkbd.vcxproj"> <Project>{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}</Project> @@ -38,6 +44,7 @@ <ProjectReference Include="..\xenvkbd_coinst\xenvkbd_coinst.vcxproj"> <Project>{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}</Project> </ProjectReference> + <FilesToPackage Include="..\xenvkbd.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/xenvkbd.sln b/vs2015/xenvkbd.sln index c77ce42..e10082c 100644 --- a/vs2015/xenvkbd.sln +++ b/vs2015/xenvkbd.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}") = "xenvkbd", "xenvkbd\xenvkbd.vcxproj", "{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}" + ProjectSection(ProjectDependencies) = postProject + {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenvkbd_coinst", "xenvkbd_coinst\xenvkbd_coinst.vcxproj", "{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}" ProjectSection(ProjectDependencies) = postProject + {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7} {C3F96D4C-E441-47F7-A44C-D2D0543C1D18} = {C3F96D4C-E441-47F7-A44C-D2D0543C1D18} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{73768CC9-DB26-4297-9EC8-1042F815EB15}" ProjectSection(ProjectDependencies) = postProject + {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7} {C3F96D4C-E441-47F7-A44C-D2D0543C1D18} = {C3F96D4C-E441-47F7-A44C-D2D0543C1D18} {2BFAC7E6-3420-47A5-A092-BDC5C9D78A44} = {2BFAC7E6-3420-47A5-A092-BDC5C9D78A44} EndProjectSection @@ -27,6 +34,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 {2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32 {2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32 {2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32 diff --git a/vs2015/xenvkbd/xenvkbd.vcxproj b/vs2015/xenvkbd/xenvkbd.vcxproj index 7e757a2..b22e78a 100644 --- a/vs2015/xenvkbd/xenvkbd.vcxproj +++ b/vs2015/xenvkbd/xenvkbd.vcxproj @@ -35,33 +35,20 @@ <AdditionalDependencies>$(DDK_LIB_PATH)/Rtlver.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/ksecdd.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/xenvkbd/bus.c" /> @@ -77,9 +64,6 @@ <ItemGroup> <ResourceCompile Include="..\..\src\xenvkbd\xenvkbd.rc" /> </ItemGroup> - <ItemGroup> - <Inf Include="..\xenvkbd.inf" /> - </ItemGroup> <ItemGroup> <None Include="..\package\package.vcxproj" /> </ItemGroup> diff --git a/vs2015/xenvkbd_coinst/xenvkbd_coinst.vcxproj b/vs2015/xenvkbd_coinst/xenvkbd_coinst.vcxproj index 3fd878e..354172b 100644 --- a/vs2015/xenvkbd_coinst/xenvkbd_coinst.vcxproj +++ b/vs2015/xenvkbd_coinst/xenvkbd_coinst.vcxproj @@ -48,7 +48,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 f32de24..6d2ea80 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="..\xenvkbd\xenvkbd.vcxproj"> <Project>{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}</Project> @@ -38,6 +44,7 @@ <ProjectReference Include="..\xenvkbd_coinst\xenvkbd_coinst.vcxproj"> <Project>{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}</Project> </ProjectReference> + <FilesToPackage Include="..\xenvkbd.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/xenvkbd.sln b/vs2017/xenvkbd.sln index 77633ab..3159380 100644 --- a/vs2017/xenvkbd.sln +++ b/vs2017/xenvkbd.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}") = "xenvkbd", "xenvkbd\xenvkbd.vcxproj", "{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}" + ProjectSection(ProjectDependencies) = postProject + {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenvkbd_coinst", "xenvkbd_coinst\xenvkbd_coinst.vcxproj", "{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}" ProjectSection(ProjectDependencies) = postProject + {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7} {C3F96D4C-E441-47F7-A44C-D2D0543C1D18} = {C3F96D4C-E441-47F7-A44C-D2D0543C1D18} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{73768CC9-DB26-4297-9EC8-1042F815EB15}" ProjectSection(ProjectDependencies) = postProject + {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7} {C3F96D4C-E441-47F7-A44C-D2D0543C1D18} = {C3F96D4C-E441-47F7-A44C-D2D0543C1D18} {2BFAC7E6-3420-47A5-A092-BDC5C9D78A44} = {2BFAC7E6-3420-47A5-A092-BDC5C9D78A44} EndProjectSection @@ -24,6 +31,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 {2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32 {2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32 {2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32 diff --git a/vs2017/xenvkbd/xenvkbd.vcxproj b/vs2017/xenvkbd/xenvkbd.vcxproj index 1ced810..e792e7f 100644 --- a/vs2017/xenvkbd/xenvkbd.vcxproj +++ b/vs2017/xenvkbd/xenvkbd.vcxproj @@ -36,28 +36,16 @@ <AdditionalDependencies>$(DDK_LIB_PATH)/Rtlver.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/ksecdd.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> @@ -69,7 +57,6 @@ <ItemGroup> <FilesToPackage Include="$(TargetPath)" /> <FilesToPackage Include="$(OutDir)$(TargetName).pdb" /> - <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" /> </ItemGroup> <ItemGroup> <ClCompile Include="../../src/xenvkbd/bus.c" /> @@ -85,9 +72,6 @@ <ItemGroup> <ResourceCompile Include="..\..\src\xenvkbd\xenvkbd.rc" /> </ItemGroup> - <ItemGroup> - <Inf Include="..\xenvkbd.inf" /> - </ItemGroup> <ItemGroup> <None Include="..\package\package.vcxproj" /> </ItemGroup> diff --git a/vs2017/xenvkbd_coinst/xenvkbd_coinst.vcxproj b/vs2017/xenvkbd_coinst/xenvkbd_coinst.vcxproj index 544afb9..fdcc07b 100644 --- a/vs2017/xenvkbd_coinst/xenvkbd_coinst.vcxproj +++ b/vs2017/xenvkbd_coinst/xenvkbd_coinst.vcxproj @@ -48,7 +48,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 |