--- /dev/null
+#
+# 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:OBJECT_PREFIX)) {
+ Set-Item -Path Env:OBJECT_PREFIX -Value 'XenProject'
+}
+
+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
+}
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 OBJECT_PREFIX_STR\t"' + os.environ['OBJECT_PREFIX'] + '"\n')
- file.write('#define OBJECT_GUID(_Name)\t' + os.environ['OBJECT_PREFIX'] + ' ## _Name ## _GUID\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 copy_mof(name):
- src = open('src\\%s.mof' % name, 'r')
- dst = open('src\\%s\\wmi.mof' % name, 'w')
-
- for line in src:
- line = re.sub('@OBJECT_PREFIX@', os.environ['OBJECT_PREFIX'], 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')
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')
def archive(filename, files, tgz=False):
+ print(filename)
access='w'
if tgz:
access='w:gz'
return mapping[vsenv['VisualStudioVersion']]
+
def main():
debug = { 'checked': True, 'free': False }
sdv = { 'nosdv': False, None: True }
driver = 'xeniface'
vs = getVsVersion()
+ now = datetime.datetime.now()
if 'VENDOR_NAME' not in os.environ.keys():
os.environ['VENDOR_NAME'] = 'Xen Project'
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("OBJECT_PREFIX\t\t'%s'" % os.environ['OBJECT_PREFIX'])
- 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)
- copy_mof(driver)
-
symstore_del(driver, 30)
release = { 'vs2015':'Windows 8',
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)
--- /dev/null
+#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 OBJECT_PREFIX_STR "@OBJECT_PREFIX@"
+#define OBJECT_GUID(_Name) @OBJECT_PREFIX@ ## _Name ## _GUID
+
+#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@
--- /dev/null
+#
+# 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 "xeniface.sln" $configuration["free"] $platform[$Arch]
+}
+elseif ($Type -eq "checked") {
+ Run-MSBuild $solutionpath "xeniface.sln" $configuration["checked"] $platform[$Arch]
+}
+elseif ($Type -eq "sdv") {
+ $archivepath = "xeniface"
+
+ if (-Not (Test-Path -Path $archivepath)) {
+ New-Item -Name $archivepath -ItemType Directory | Out-Null
+ }
+
+ Run-MSBuildSDV $solutionpath "xeniface" $configuration["sdv"] $platform[$Arch]
+
+ Copy-Item -Path (Join-Path -Path $SolutionPath -ChildPath "*DVL*") -Destination $archivepath
+}
--- /dev/null
+#
+# 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;
+ 'OBJECT_PREFIX' = $Env:OBJECT_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 "xeniface.inf"
+$dst = Join-Path -Path $solutionpath -ChildPath "xeniface.inf"
+Copy-FileWithReplacements $src $dst -Replacements $Replacements
+
+$sourcepath = Resolve-Path $SourceDir
+$src = Join-Path -Path $sourcepath -ChildPath "xeniface.mof"
+$dst = Join-Path -Path $sourcepath -ChildPath 'xeniface\wmi.mof'
+Copy-FileWithReplacements $src $dst -Replacements $Replacements
[DestinationDirs]
DefaultDestDir = 12
-Coinst.NT.Copy = 11
-ServiceDestDir.NT.Copy = 11
+Coinst.Copy = 11
+ServiceDestDir.Copy = 11
[Manufacturer]
-%Vendor%=Inst,NT$ARCH$
+%Vendor%=Inst,NT@INF_ARCH@
-[Inst.NT$ARCH$]
+[Inst.NT@INF_ARCH@]
; DisplayName Section DeviceID
; ----------- ------- --------
%XenIfaceDevice.DeviceDesc% =XenIface_Device, XENBUS\VEN_@VENDOR_PREFIX@0001&DEV_IFACE&REV_09000000
%XenIfaceDevice.DeviceDesc% =XenIface_Device, XENBUS\VEN_@VENDOR_PREFIX@0002&DEV_IFACE&REV_09000000
-[XenIface_Device.NT$ARCH$]
-CopyFiles=XenIface_Device.NT.Copy
-CopyFiles=ServiceDestDir.NT.Copy
+[XenIface_Device]
+CopyFiles=XenIface_Device.Copy
+CopyFiles=ServiceDestDir.Copy
-[XenIFace_Device.NT.Copy]
+[XenIFace_Device.Copy]
xeniface.sys
-[CoInst.NT.Copy]
+[CoInst.Copy]
xeniface_coinst_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xeniface_coinst.dll
-[ServiceDestDir.NT.Copy]
+[ServiceDestDir.Copy]
xenagent_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.exe,xenagent.exe
xenagent_@MAJOR_VERSION@_@MINOR_VERSION@_@MICRO_VERSION@_@BUILD_NUMBER@.dll,xenagent.dll
-[Xeniface_Device.NT$ARCH$.Services]
+[Xeniface_Device.Services]
AddService = xeniface, %SPSVCINST_ASSOCSERVICE%, xeniface_Service_Inst
AddService = xenagent, %XENAGENT_FLAGS%, xenagent_Service_Inst,xenagent_EventLog
[Xeniface_Parameters]
HKR,"Parameters",,0x00000010
-[Xeniface_Device.NT$ARCH$.Coinstallers]
-CopyFiles=CoInst.NT.Copy
+[Xeniface_Device.Coinstallers]
+CopyFiles=CoInst.Copy
AddReg=CoInst_AddReg
[CoInst_AddReg]
--- /dev/null
+#
+# 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 "xeniface") -ChildPath $Arch
+Add-Symbols "xeniface" $archivepath $SymbolServer $Arch
<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="..\xeniface\xeniface.vcxproj">
<Project>{22166290-65D8-49D2-BB88-33201797C7D8}</Project>
<ProjectReference Include="..\xencontrol\xencontrol.vcxproj">
<Project>{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}</Project>
</ProjectReference>
+ <FilesToPackage Include="..\xeniface.inf" />
</ItemGroup>
<ItemGroup Condition="Exists('$(DPINST_REDIST)')">
<FilesToPackage Include="$(DPINST_REDIST)\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" />
--- /dev/null
+<?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>
<FilesToPackage Include="$(TargetPath)" />
<FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
<FilesToPackage Include="$(OutDir)$(TargetName).dll" />
- <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
</ItemGroup>
<ItemGroup>
<MessageCompile Include="..\..\src\xenagent\messages.mc" />
# 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}") = "xeniface_coinst", "xeniface_coinst\xeniface_coinst.vcxproj", "{85C731AD-2EA2-4049-A542-D2D38EDE938C}"
+ ProjectSection(ProjectDependencies) = postProject
+ {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface", "xeniface\xeniface.vcxproj", "{22166290-65D8-49D2-BB88-33201797C7D8}"
+ ProjectSection(ProjectDependencies) = postProject
+ {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenagent", "xenagent\xenagent.vcxproj", "{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{9B071A35-897C-477A-AEB7-95F77618A21D}"
ProjectSection(ProjectDependencies) = postProject
+ {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
{22166290-65D8-49D2-BB88-33201797C7D8} = {22166290-65D8-49D2-BB88-33201797C7D8}
{85C731AD-2EA2-4049-A542-D2D38EDE938C} = {85C731AD-2EA2-4049-A542-D2D38EDE938C}
{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B} = {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xencontrol", "xencontrol\xencontrol.vcxproj", "{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}"
+ ProjectSection(ProjectDependencies) = postProject
+ {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+ EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
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
{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
<AdditionalDependencies>$(DDK_LIB_PATH)\ntstrsafe.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\xeniface\ioctls.c" />
<ItemGroup>
<ResourceCompile Include="..\..\src\xeniface\xeniface.rc" />
</ItemGroup>
- <ItemGroup>
- <Inf Include="..\xeniface.inf" />
- </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
</Project>
<ItemGroup>
<FilesToPackage Include="$(TargetPath)" />
<FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
- <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\coinst\coinst.c" />
<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="..\xeniface\xeniface.vcxproj">
<Project>{22166290-65D8-49D2-BB88-33201797C7D8}</Project>
<ProjectReference Include="..\xencontrol\xencontrol.vcxproj">
<Project>{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}</Project>
</ProjectReference>
+ <FilesToPackage Include="..\xeniface.inf" />
</ItemGroup>
<ItemGroup Condition="Exists('$(DPINST_REDIST)')">
<FilesToPackage Include="$(DPINST_REDIST)\x86\dpinst.exe" Condition="'$(Platform)'=='Win32'" />
<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>
--- /dev/null
+<?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>
<FilesToPackage Include="$(TargetPath)" />
<FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
<FilesToPackage Include="$(OutDir)$(TargetName).dll" />
- <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
</ItemGroup>
<ItemGroup>
<MessageCompile Include="..\..\src\xenagent\messages.mc" />
# 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}") = "xeniface_coinst", "xeniface_coinst\xeniface_coinst.vcxproj", "{85C731AD-2EA2-4049-A542-D2D38EDE938C}"
+ ProjectSection(ProjectDependencies) = postProject
+ {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xeniface", "xeniface\xeniface.vcxproj", "{22166290-65D8-49D2-BB88-33201797C7D8}"
+ ProjectSection(ProjectDependencies) = postProject
+ {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xenagent", "xenagent\xenagent.vcxproj", "{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xencontrol", "xencontrol\xencontrol.vcxproj", "{D386D8E9-D015-4AD2-A5C2-4F845A803FA2}"
+ ProjectSection(ProjectDependencies) = postProject
+ {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
+ EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{9B071A35-897C-477A-AEB7-95F77618A21D}"
ProjectSection(ProjectDependencies) = postProject
+ {65FA97EA-A569-4FC1-BFE7-D68E109143F7} = {65FA97EA-A569-4FC1-BFE7-D68E109143F7}
{22166290-65D8-49D2-BB88-33201797C7D8} = {22166290-65D8-49D2-BB88-33201797C7D8}
{85C731AD-2EA2-4049-A542-D2D38EDE938C} = {85C731AD-2EA2-4049-A542-D2D38EDE938C}
{2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B} = {2E61D2CC-865E-442C-8C83-B8DAFD7BBD3B}
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
{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32
{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32
{85C731AD-2EA2-4049-A542-D2D38EDE938C}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32
<AdditionalDependencies>$(DDK_LIB_PATH)\ntstrsafe.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>
<ItemGroup>
<FilesToPackage Include="$(TargetPath)" />
<FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
- <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\xeniface\ioctls.c" />
<ItemGroup>
<ResourceCompile Include="..\..\src\xeniface\xeniface.rc" />
</ItemGroup>
- <ItemGroup>
- <Inf Include="..\xeniface.inf" />
- </ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
</Project>
<ItemGroup>
<FilesToPackage Include="$(TargetPath)" />
<FilesToPackage Include="$(OutDir)$(TargetName).pdb" />
- <FilesToPackage Include="@(Inf->'%(CopyOutput)')" Condition="'@(Inf)'!=''" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\coinst\coinst.c" />