[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/xenhid.inf | 4 +- symstore.ps1 | 36 ++++++++++ vs2015/package/package.vcxproj | 16 +++++ vs2015/version/version.vcxproj | 19 +++++ vs2015/xenhid.sln | 23 +++++++ vs2015/xenhid/xenhid.vcxproj | 16 ----- vs2015/xenhid_coinst/xenhid_coinst.vcxproj | 1 - vs2017/package/package.vcxproj | 16 +++++ vs2017/version/version.vcxproj | 16 +++++ vs2017/xenhid.sln | 23 +++++++ vs2017/xenhid/xenhid.vcxproj | 16 ----- vs2017/xenhid_coinst/xenhid_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 74afc8f..7f423d5 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..a340cec --- /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 "xenhid.sln" $configuration["free"] $platform[$Arch] +} +elseif ($Type -eq "checked") { + Run-MSBuild $solutionpath "xenhid.sln" $configuration["checked"] $platform[$Arch] +} +elseif ($Type -eq "sdv") { + $archivepath = "xenhid" + + if (-Not (Test-Path -Path $archivepath)) { + New-Item -Name $archivepath -ItemType Directory | Out-Null + } + + Run-MSBuildSDV $solutionpath "xenhid" $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..2cfb3ab --- /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 "xenhid.inf" +$dst = Join-Path -Path $solutionpath -ChildPath "xenhid.inf" +Copy-FileWithReplacements $src $dst -Replacements $Replacements diff --git a/src/xenhid.inf b/src/xenhid.inf index d440876..f91982c 100644 --- a/src/xenhid.inf +++ b/src/xenhid.inf @@ -53,9 +53,9 @@ xenhid_coinst.dll=0,, xenhid_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xenhid_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..80ee417 --- /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 "xenhid") -ChildPath $Arch +Add-Symbols "xenhid" $archivepath $SymbolServer $Arch diff --git a/vs2015/package/package.vcxproj b/vs2015/package/package.vcxproj index 09bb33e..e38197e 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="..\xenhid\xenhid.vcxproj"> <Project>{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}</Project> @@ -38,6 +44,7 @@ <ProjectReference Include="..\xenhid_coinst\xenhid_coinst.vcxproj"> <Project>{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}</Project> </ProjectReference> + <FilesToPackage Include="..\xenhid.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/xenhid.sln b/vs2015/xenhid.sln index 160d2ce..4a4e1cc 100644 --- a/vs2015/xenhid.sln +++ b/vs2015/xenhid.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}") = "xenhid", "xenhid\xenhid.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}") = "xenhid_coinst", "xenhid_coinst\xenhid_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/xenhid/xenhid.vcxproj b/vs2015/xenhid/xenhid.vcxproj index 3c2e27d..761642f 100644 --- a/vs2015/xenhid/xenhid.vcxproj +++ b/vs2015/xenhid/xenhid.vcxproj @@ -35,33 +35,20 @@ <AdditionalDependencies>$(DDK_LIB_PATH)/hidclass.lib;$(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/xenhid/driver.c" /> @@ -70,9 +57,6 @@ <ItemGroup> <ResourceCompile Include="..\..\src\xenhid\xenhid.rc" /> </ItemGroup> - <ItemGroup> - <Inf Include="..\xenhid.inf" /> - </ItemGroup> <ItemGroup> <None Include="..\package\package.vcxproj" /> </ItemGroup> diff --git a/vs2015/xenhid_coinst/xenhid_coinst.vcxproj b/vs2015/xenhid_coinst/xenhid_coinst.vcxproj index 01b4504..ba658cb 100644 --- a/vs2015/xenhid_coinst/xenhid_coinst.vcxproj +++ b/vs2015/xenhid_coinst/xenhid_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 060affc..45c799d 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="..\xenhid\xenhid.vcxproj"> <Project>{C3F96D4C-E441-47F7-A44C-D2D0543C1D18}</Project> @@ -38,6 +44,7 @@ <ProjectReference Include="..\xenhid_coinst\xenhid_coinst.vcxproj"> <Project>{2BFAC7E6-3420-47A5-A092-BDC5C9D78A44}</Project> </ProjectReference> + <FilesToPackage Include="..\xenhid.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/xenhid.sln b/vs2017/xenhid.sln index da531e2..c69467d 100644 --- a/vs2017/xenhid.sln +++ b/vs2017/xenhid.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}") = "xenhid", "xenhid\xenhid.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}") = "xenhid_coinst", "xenhid_coinst\xenhid_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/xenhid/xenhid.vcxproj b/vs2017/xenhid/xenhid.vcxproj index 0872aa4..f946fed 100644 --- a/vs2017/xenhid/xenhid.vcxproj +++ b/vs2017/xenhid/xenhid.vcxproj @@ -36,28 +36,16 @@ <AdditionalDependencies>$(DDK_LIB_PATH)/hidclass.lib;$(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/xenhid/driver.c" /> @@ -78,9 +65,6 @@ <ItemGroup> <ResourceCompile Include="..\..\src\xenhid\xenhid.rc" /> </ItemGroup> - <ItemGroup> - <Inf Include="..\xenhid.inf" /> - </ItemGroup> <ItemGroup> <None Include="..\package\package.vcxproj" /> </ItemGroup> diff --git a/vs2017/xenhid_coinst/xenhid_coinst.vcxproj b/vs2017/xenhid_coinst/xenhid_coinst.vcxproj index eb716e4..652d511 100644 --- a/vs2017/xenhid_coinst/xenhid_coinst.vcxproj +++ b/vs2017/xenhid_coinst/xenhid_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 |