From: Paul Durrant Date: Mon, 29 Jan 2018 16:41:58 +0000 (+0000) Subject: Add support for building with Visual Studio 2017 X-Git-Tag: 9.0.0-rc1~13 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=9dc00c75ff4340321ae4cd9c579c8cb0b20dfeeb;p=pvdrivers%2Fwin%2Fxennet.git Add support for building with Visual Studio 2017 Also remove mappings for obsolete versions of VS in build.py. Signed-off-by: Paul Durrant --- diff --git a/build.py b/build.py index bd8d0cd..6defd32 100755 --- a/build.py +++ b/build.py @@ -172,18 +172,28 @@ def shell(command, dir): return sub.returncode +def find(name, path): + for root, dirs, files in os.walk(path): + if name in files: + return os.path.join(root, name) + + class msbuild_failure(Exception): def __init__(self, value): self.value = value def __str__(self): return repr(self.value) + def msbuild(platform, configuration, target, file, args, dir): - os.environ['PLATFORM'] = platform - os.environ['CONFIGURATION'] = configuration - os.environ['TARGET'] = target - os.environ['FILE'] = file - os.environ['EXTRA'] = args + vcvarsall = find('vcvarsall.bat', os.environ['VS']) + + os.environ['MSBUILD_PLATFORM'] = platform + os.environ['MSBUILD_CONFIGURATION'] = configuration + os.environ['MSBUILD_TARGET'] = target + os.environ['MSBUILD_FILE'] = file + os.environ['MSBUILD_EXTRA'] = args + os.environ['MSBUILD_VCVARSALL'] = vcvarsall bin = os.path.join(os.getcwd(), 'msbuild.bat') @@ -201,8 +211,6 @@ def build_sln(name, release, arch, debug, vs): elif arch == 'x64': platform = 'x64' - cwd = os.getcwd() - msbuild(platform, configuration, 'Build', name + '.sln', '', vs) def copy_package(name, release, arch, debug, vs): @@ -356,25 +364,25 @@ def archive(filename, files, tgz=False): pass tar.close() + def getVsVersion(): - vsenv ={} - vars = subprocess.check_output([os.environ['VS']+'\\VC\\vcvarsall.bat', - '&&', 'set'], - shell=True) + vsenv = {} + vcvarsall= find('vcvarsall.bat', os.environ['VS']) + + vars = subprocess.check_output([vcvarsall, 'x86_amd64', '&&', 'set'], shell=True) + for var in vars.splitlines(): k, _, v = map(str.strip, var.strip().decode('utf-8').partition('=')) if k.startswith('?'): continue vsenv[k] = v - mapping = { '11.0':'vs2012', - '12.0':'vs2013', - '14.0':'vs2015' } + mapping = { '14.0':'vs2015', + '15.0':'vs2017'} return mapping[vsenv['VisualStudioVersion']] - -if __name__ == '__main__': +def main(): debug = { 'checked': True, 'free': False } sdv = { 'nosdv': False, None: True } driver = 'xennet' @@ -419,9 +427,8 @@ if __name__ == '__main__': symstore_del(driver, 30) - release = { 'vs2012':'Windows Vista', - 'vs2013':'Windows 7', - 'vs2015':'Windows 8' } + release = { 'vs2015':'Windows 8', + 'vs2017':'Windows 8' } shutil.rmtree(driver, ignore_errors=True) @@ -440,3 +447,5 @@ if __name__ == '__main__': archive(driver + '\\source.tgz', manifest().splitlines(), tgz=True) archive(driver + '.tar', [driver,'revision']) +if __name__ == '__main__': + main() diff --git a/msbuild.bat b/msbuild.bat index 22f1f6d..a28f939 100755 --- a/msbuild.bat +++ b/msbuild.bat @@ -1,6 +1,8 @@ -call "%VS%\VC\vcvarsall.bat" x86 +set MSBUILD_ROOT=%cd% +call "%MSBUILD_VCVARSALL%" x86_amd64 @echo on -msbuild.exe /m:4 /p:Configuration="%CONFIGURATION%" /p:Platform="%PLATFORM%" /t:"%TARGET%" %EXTRA% %FILE% +cd "%MSBUILD_ROOT%" +msbuild.exe /m:1 /p:Configuration="%MSBUILD_CONFIGURATION%" /p:Platform="%MSBUILD_PLATFORM%" /t:"%MSBUILD_TARGET%" %MSBUILD_EXTRA% %MSBUILD_FILE% if errorlevel 1 goto error exit 0 diff --git a/vs2017/configs.props b/vs2017/configs.props new file mode 100644 index 0000000..6fe9a33 --- /dev/null +++ b/vs2017/configs.props @@ -0,0 +1,45 @@ + + + + + Windows 10 Debug + Win32 + 10 + + + Windows 10 Release + Win32 + 10 + + + Windows 10 Debug + x64 + 10 + + + Windows 10 Release + x64 + 10 + + + Windows 8 Debug + Win32 + 8.1 + + + Windows 8 Release + Win32 + 8.1 + + + Windows 8 Debug + x64 + 8.1 + + + Windows 8 Release + x64 + 8.1 + + + diff --git a/vs2017/package/package.vcxproj b/vs2017/package/package.vcxproj new file mode 100644 index 0000000..39e2347 --- /dev/null +++ b/vs2017/package/package.vcxproj @@ -0,0 +1,49 @@ + + + + + WindowsKernelModeDriver10.0 + Utility + Package + true + true + Desktop + + + + {445FD18F-97E3-4E5D-825F-151026242C05} + + + + + true + 8_x64;Server8_x64;10_x64;Server10_x64 + 8_x86;10_x86 + DbgengKernelDebugger + False + False + None + %PathToInf% + False + False + True + 133563 + ..\$(ProjectName)\$(ConfigurationName)\$(Platform)\ + ..\$(ConfigurationName)\$(Platform)\ + + + + {97D9942B-5EA3-488C-B512-C96E5D077F8E} + + + {3EDD837A-C1BE-47D4-9603-16B61353670B} + + + + + + + + + + diff --git a/vs2017/package/package.vcxproj.user b/vs2017/package/package.vcxproj.user new file mode 100644 index 0000000..bcbee4f --- /dev/null +++ b/vs2017/package/package.vcxproj.user @@ -0,0 +1,8 @@ + + + + TestSign + ..\..\src\xennet.pfx + http://timestamp.verisign.com/scripts/timstamp.dll + + diff --git a/vs2017/targets.props b/vs2017/targets.props new file mode 100644 index 0000000..d045434 --- /dev/null +++ b/vs2017/targets.props @@ -0,0 +1,35 @@ + + + + Windows10 + true + + + Windows10 + false + + + Windows10 + true + + + Windows10 + false + + + Windows8 + true + + + Windows8 + false + + + Windows8 + true + + + Windows8 + false + + diff --git a/vs2017/xennet.sln b/vs2017/xennet.sln new file mode 100644 index 0000000..004e5e1 --- /dev/null +++ b/vs2017/xennet.sln @@ -0,0 +1,102 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xennet", "xennet\xennet.vcxproj", "{97D9942B-5EA3-488C-B512-C96E5D077F8E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "xennet_coinst", "xennet_coinst\xennet_coinst.vcxproj", "{3EDD837A-C1BE-47D4-9603-16B61353670B}" + ProjectSection(ProjectDependencies) = postProject + {97D9942B-5EA3-488C-B512-C96E5D077F8E} = {97D9942B-5EA3-488C-B512-C96E5D077F8E} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "package", "package\package.vcxproj", "{445FD18F-97E3-4E5D-825F-151026242C05}" + ProjectSection(ProjectDependencies) = postProject + {3EDD837A-C1BE-47D4-9603-16B61353670B} = {3EDD837A-C1BE-47D4-9603-16B61353670B} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Windows 8 Debug|Win32 = Windows 8 Debug|Win32 + Windows 8 Debug|x64 = Windows 8 Debug|x64 + Windows 8 Release|Win32 = Windows 8 Release|Win32 + Windows 8 Release|x64 = Windows 8 Release|x64 + Windows 10 Debug|Win32 = Windows 10 Debug|Win32 + Windows 10 Debug|x64 = Windows 10 Debug|x64 + Windows 10 Release|Win32 = Windows 10 Release|Win32 + Windows 10 Release|x64 = Windows 10 Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64 + {97D9942B-5EA3-488C-B512-C96E5D077F8E}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64 + {3EDD837A-C1BE-47D4-9603-16B61353670B}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Debug|Win32.ActiveCfg = Windows 8 Debug|Win32 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Debug|Win32.Build.0 = Windows 8 Debug|Win32 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Debug|Win32.Deploy.0 = Windows 8 Debug|Win32 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Debug|x64.ActiveCfg = Windows 8 Debug|x64 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Debug|x64.Build.0 = Windows 8 Debug|x64 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Debug|x64.Deploy.0 = Windows 8 Debug|x64 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Release|Win32.ActiveCfg = Windows 8 Release|Win32 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Release|Win32.Build.0 = Windows 8 Release|Win32 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Release|Win32.Deploy.0 = Windows 8 Release|Win32 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Release|x64.ActiveCfg = Windows 8 Release|x64 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Release|x64.Build.0 = Windows 8 Release|x64 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 8 Release|x64.Deploy.0 = Windows 8 Release|x64 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Debug|Win32.ActiveCfg = Windows 10 Debug|Win32 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Debug|Win32.Build.0 = Windows 10 Debug|Win32 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Debug|Win32.Deploy.0 = Windows 10 Debug|Win32 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Debug|x64.ActiveCfg = Windows 10 Debug|x64 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Debug|x64.Build.0 = Windows 10 Debug|x64 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Debug|x64.Deploy.0 = Windows 10 Debug|x64 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Release|Win32.ActiveCfg = Windows 10 Release|Win32 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Release|Win32.Build.0 = Windows 10 Release|Win32 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Release|Win32.Deploy.0 = Windows 10 Release|Win32 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Release|x64.ActiveCfg = Windows 10 Release|x64 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Release|x64.Build.0 = Windows 10 Release|x64 + {445FD18F-97E3-4E5D-825F-151026242C05}.Windows 10 Release|x64.Deploy.0 = Windows 10 Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/vs2017/xennet/xennet.vcxproj b/vs2017/xennet/xennet.vcxproj new file mode 100644 index 0000000..f20bf31 --- /dev/null +++ b/vs2017/xennet/xennet.vcxproj @@ -0,0 +1,83 @@ + + + + + Driver + WDM + + + + WindowsKernelModeDriver10.0 + + + {97D9942B-5EA3-488C-B512-C96E5D077F8E} + + + + + true + false + ..\$(ProjectName)\$(ConfigurationName)\$(Platform)\ + ..\$(ConfigurationName)\$(Platform)\ + + + + __MODULE__="XENNET";NDIS_MINIPORT_DRIVER;NDIS_WDM=1;NDIS61_MINIPORT=1;POOL_NX_OPTIN=1;NT_PROCESSOR_GROUPS;%(PreprocessorDefinitions) + $(WindowsSdkDir)\include\km;..\..\include;..\..\include\xen; + EnableAllWarnings + 4464;4711;4548;4820;4668;4255;6001;6054;28160;28196;30030;30029;%(DisableSpecificWarnings) + true + true + + + ..\..\include;%(AdditionalIncludeDirectories) + + + false + $(DDK_LIB_PATH)\ndis.lib;$(DDK_LIB_PATH)/libcntpr.lib;$(DDK_LIB_PATH)/aux_klib.lib;$(DDK_LIB_PATH)/procgrp.lib;%(AdditionalDependencies) + false + + + true + true + $(MAJOR_VERSION).$(MINOR_VERSION).$(MICRO_VERSION).$(BUILD_NUMBER) + true + + + + + __i386__;%(PreprocessorDefinitions) + + + x86 + + + + + __x86_64__;%(PreprocessorDefinitions) + + + amd64 + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vs2017/xennet/xennet.vcxproj.user b/vs2017/xennet/xennet.vcxproj.user new file mode 100644 index 0000000..bcbee4f --- /dev/null +++ b/vs2017/xennet/xennet.vcxproj.user @@ -0,0 +1,8 @@ + + + + TestSign + ..\..\src\xennet.pfx + http://timestamp.verisign.com/scripts/timstamp.dll + + diff --git a/vs2017/xennet_coinst/xennet_coinst.vcxproj b/vs2017/xennet_coinst/xennet_coinst.vcxproj new file mode 100644 index 0000000..de61086 --- /dev/null +++ b/vs2017/xennet_coinst/xennet_coinst.vcxproj @@ -0,0 +1,58 @@ + + + + + WDM + WindowsApplicationForDrivers10.0 + DynamicLibrary + + + + {3EDD837A-C1BE-47D4-9603-16B61353670B} + + + + + $(IncludePath) + true + false + + + + $(SolutionDir)..\include;%(AdditionalIncludeDirectories) + __MODULE__="XENNET_COINST";%(PreprocessorDefinitions) + EnableAllWarnings + 4548;4820;4668;4255;6001;6054;28196;%(DisableSpecificWarnings) + true + true + MultiThreadedDebug + MultiThreaded + + + ../../src/coinst/xennet_coinst.def + setupapi.lib;iphlpapi.lib;%(AdditionalDependencies) + + + + + __i386__;%(PreprocessorDefinitions) + + + + + __x86_64__;%(PreprocessorDefinitions) + + + + + + + + + + + + + + + diff --git a/vs2017/xennet_coinst/xennet_coinst.vcxproj.user b/vs2017/xennet_coinst/xennet_coinst.vcxproj.user new file mode 100644 index 0000000..8b034c4 --- /dev/null +++ b/vs2017/xennet_coinst/xennet_coinst.vcxproj.user @@ -0,0 +1,8 @@ + + + + TestSign + ..\..\src\xennet.pfx + http://timestamp.verisign.com/scripts/timstamp.dll + +