Add MSVC2017 build config and project (#27)

* Add MSVC2017 build config and project
Porting the VS solution also enables debug running via NMake; fixes #24

* Edited genproj.py for MSVC 2017
metadata
L. E. Segovia 2017-09-18 03:11:04 -03:00 committed by Wenzel Jakob
parent f75a412d80
commit a1d574e9de
13 changed files with 2248 additions and 2181 deletions

7
.gitignore vendored
View File

@ -20,9 +20,10 @@ config.log
*.pyc *.pyc
# MSVC++-related # MSVC++-related
build/mitsuba-msvc2010.sdf build/mitsuba-msvc2017.sdf
build/mitsuba-msvc2010.suo build/mitsuba-msvc2017.suo
build/mitsuba-msvc2010.vcxproj.user build/mitsuba-msvc2017.vcxproj.user
build/.vs/**/*
data/windows/mitsuba_res.res data/windows/mitsuba_res.res
dist dist

View File

@ -1,4 +1,4 @@
BUILDDIR = '#build/release' BUILDDIR = '#build/debug'
DISTDIR = '#dist' DISTDIR = '#dist'
CXX = 'cl' CXX = 'cl'
CC = 'cl' CC = 'cl'
@ -8,7 +8,7 @@ TARGET_ARCH = 'x86_64'
MSVC_VERSION = '15.0' MSVC_VERSION = '15.0'
LINKFLAGS = ['/nologo', '/SUBSYSTEM:CONSOLE', '/DEBUG', '/MACHINE:X64', '/FIXED:NO', '/OPT:REF', '/OPT:ICF', '/LTCG', '/NODEFAULTLIB:LIBCMT', '/MANIFEST'] LINKFLAGS = ['/nologo', '/SUBSYSTEM:CONSOLE', '/DEBUG', '/MACHINE:X64', '/FIXED:NO', '/OPT:REF', '/OPT:ICF', '/LTCG', '/NODEFAULTLIB:LIBCMT', '/MANIFEST']
BASEINCLUDE = ['#include', '#dependencies/include'] BASEINCLUDE = ['#include', '#dependencies/include']
BASELIB = ['msvcrt', 'ws2_32', 'Half'] BASELIB = ['msvcrt', 'ws2_32', 'Half', 'zlib']
BASELIBDIR = ['#dependencies/lib'] BASELIBDIR = ['#dependencies/lib']
OEXRINCLUDE = ['#dependencies/include/openexr'] OEXRINCLUDE = ['#dependencies/include/openexr']
OEXRLIB = ['IlmImf', 'IlmThread', 'Iex', 'zlib'] OEXRLIB = ['IlmImf', 'IlmThread', 'Iex', 'zlib']
@ -30,5 +30,6 @@ PYTHON35LIB = ['boost_python35-vc141-mt-1_64', 'python35']
PYTHON35INCLUDE = ['#dependencies/include/python35'] PYTHON35INCLUDE = ['#dependencies/include/python35']
PYTHON36LIB = ['boost_python36-vc141-mt-1_64', 'python36'] PYTHON36LIB = ['boost_python36-vc141-mt-1_64', 'python36']
PYTHON36INCLUDE = ['#dependencies/include/python36'] PYTHON36INCLUDE = ['#dependencies/include/python36']
QTINCLUDE = ['#dependencies/include']
QTDIR = '#dependencies' QTDIR = '#dependencies'
FFTWLIB = ['libfftw3-3'] FFTWLIB = ['libfftw3-3']

View File

@ -5,13 +5,18 @@ CC = 'cl'
# /O2=optimize for speed, global optimizations, intrinsic functions, favor fast code, frame pointer omission # /O2=optimize for speed, global optimizations, intrinsic functions, favor fast code, frame pointer omission
# /EHsc=C++ exceptions, /fp:fast=Enable reasonable FP optimizations, /GS-=No buffer security checks, /GL=whole program optimizations # /EHsc=C++ exceptions, /fp:fast=Enable reasonable FP optimizations, /GS-=No buffer security checks, /GL=whole program optimizations
# To include debug information add '/Z7' to CXXFLAGS and '/DEBUG' to LINKFLAGS # To include debug information add '/Z7' to CXXFLAGS and '/DEBUG' to LINKFLAGS
CXXFLAGS = ['/nologo', '/O2', '/fp:fast', '/D', 'WIN32', '/D', 'WIN64', '/W3', '/EHsc', '/GS-', '/GL', '/MD', '/D', 'MTS_DEBUG', '/D', 'SINGLE_PRECISION', '/D', 'SPECTRUM_SAMPLES=3', '/D', 'MTS_SSE', '/D', 'MTS_HAS_COHERENT_RT', '/D', '_CONSOLE', '/D', 'NDEBUG', '/D', 'OPENEXR_DLL', '/openmp'] # EDIT: MSVC2017 bugs Mitsuba when using /O2 because of /Ob2 - replaced it with the full set and /Ob2 for /Ob1
# EDIT: /Og is deprecated too
CXXFLAGS = ['/nologo', #'/Og',
'/Oi', '/Ot', '/Oy', '/Ob1', #'/Ob2',
'/Gs', '/GF', '/Gy', #'/O2',
'/fp:fast', '/D', 'WIN32', '/D', 'WIN64', '/W3', '/EHsc', '/GS-', '/GL', '/MD', '/D', 'MTS_DEBUG', '/D', 'SINGLE_PRECISION', '/D', 'SPECTRUM_SAMPLES=3', '/D', 'MTS_SSE', '/D', 'MTS_HAS_COHERENT_RT', '/D', '_CONSOLE', '/D', 'NDEBUG', '/D', 'OPENEXR_DLL', '/openmp']
SHCXXFLAGS = CXXFLAGS SHCXXFLAGS = CXXFLAGS
TARGET_ARCH = 'x86_64' TARGET_ARCH = 'x86_64'
MSVC_VERSION = '15.0' MSVC_VERSION = '15.0'
LINKFLAGS = ['/nologo', '/SUBSYSTEM:CONSOLE', '/MACHINE:X64', '/FIXED:NO', '/OPT:REF', '/OPT:ICF', '/LTCG', '/NODEFAULTLIB:LIBCMT', '/MANIFEST'] LINKFLAGS = ['/nologo', '/SUBSYSTEM:CONSOLE', '/MACHINE:X64', '/FIXED:NO', '/OPT:REF', '/OPT:ICF', '/LTCG', '/NODEFAULTLIB:LIBCMT', '/MANIFEST']
BASEINCLUDE = ['#include', '#dependencies/include'] BASEINCLUDE = ['#include', '#dependencies/include']
BASELIB = ['msvcrt', 'ws2_32', 'Half'] BASELIB = ['msvcrt', 'ws2_32', 'Half', 'zlib']
BASELIBDIR = ['#dependencies/lib'] BASELIBDIR = ['#dependencies/lib']
OEXRINCLUDE = ['#dependencies/include/openexr'] OEXRINCLUDE = ['#dependencies/include/openexr']
OEXRLIB = ['IlmImf', 'IlmThread', 'Iex', 'zlib'] OEXRLIB = ['IlmImf', 'IlmThread', 'Iex', 'zlib']
@ -33,5 +38,6 @@ PYTHON35LIB = ['boost_python35-vc141-mt-1_64', 'python35']
PYTHON35INCLUDE = ['#dependencies/include/python35'] PYTHON35INCLUDE = ['#dependencies/include/python35']
PYTHON36LIB = ['boost_python36-vc141-mt-1_64', 'python36'] PYTHON36LIB = ['boost_python36-vc141-mt-1_64', 'python36']
PYTHON36INCLUDE = ['#dependencies/include/python36'] PYTHON36INCLUDE = ['#dependencies/include/python36']
QTINCLUDE = ['#dependencies/include']
QTDIR = '#dependencies' QTDIR = '#dependencies'
FFTWLIB = ['libfftw3-3'] FFTWLIB = ['libfftw3-3']

View File

@ -1,26 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mitsuba", "mitsuba-msvc2010.vcxproj", "{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Debug|Win32.ActiveCfg = Debug|Win32
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Debug|Win32.Build.0 = Debug|Win32
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Debug|x64.ActiveCfg = Debug|x64
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Debug|x64.Build.0 = Debug|x64
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Release|Win32.ActiveCfg = Release|Win32
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Release|Win32.Build.0 = Release|Win32
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Release|x64.ActiveCfg = Release|x64
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,25 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26730.12
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mitsuba-msvc2017", "mitsuba-msvc2017.vcxproj", "{14BF8B5B-8DCA-4A28-83CA-CE9962153946}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{14BF8B5B-8DCA-4A28-83CA-CE9962153946}.Debug|x64.ActiveCfg = Debug|x64
{14BF8B5B-8DCA-4A28-83CA-CE9962153946}.Debug|x64.Build.0 = Debug|x64
{14BF8B5B-8DCA-4A28-83CA-CE9962153946}.Release|x64.ActiveCfg = Release|x64
{14BF8B5B-8DCA-4A28-83CA-CE9962153946}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {881D9083-39B3-458C-965B-C455BED48F34}
EndGlobalSection
EndGlobal

View File

@ -1,29 +1,29 @@
from lxml import etree from lxml import etree
import os, string, shutil, uuid import os, string, shutil, uuid
doc2010 = etree.parse('data/windows/mitsuba-msvc2010.vcxproj.template') doc2017 = etree.parse('data/windows/mitsuba-msvc2017.vcxproj.template')
doc2010_filters = etree.parse('data/windows/mitsuba-msvc2010.vcxproj.filters.template') doc2017_filters = etree.parse('data/windows/mitsuba-msvc2017.vcxproj.filters.template')
ns = {'n' : 'http://schemas.microsoft.com/developer/msbuild/2003'} ns = {'n' : 'http://schemas.microsoft.com/developer/msbuild/2003'}
headers2010 = etree.XPath('/n:Project/n:ItemGroup[@Label="Header Files"]', namespaces = ns)(doc2010)[0] headers2017 = etree.XPath('/n:Project/n:ItemGroup[@Label="Header Files"]', namespaces = ns)(doc2017)[0]
sources2010 = etree.XPath('/n:Project/n:ItemGroup[@Label="Source Files"]', namespaces = ns)(doc2010)[0] sources2017 = etree.XPath('/n:Project/n:ItemGroup[@Label="Source Files"]', namespaces = ns)(doc2017)[0]
headers2010_filters = etree.XPath('/n:Project/n:ItemGroup[@Label="Header Files"]', namespaces = ns)(doc2010_filters)[0] headers2017_filters = etree.XPath('/n:Project/n:ItemGroup[@Label="Header Files"]', namespaces = ns)(doc2017_filters)[0]
sources2010_filters = etree.XPath('/n:Project/n:ItemGroup[@Label="Source Files"]', namespaces = ns)(doc2010_filters)[0] sources2017_filters = etree.XPath('/n:Project/n:ItemGroup[@Label="Source Files"]', namespaces = ns)(doc2017_filters)[0]
filters2010 = etree.XPath('/n:Project/n:ItemGroup[@Label="Filters"]', namespaces = ns)(doc2010_filters)[0] filters2017 = etree.XPath('/n:Project/n:ItemGroup[@Label="Filters"]', namespaces = ns)(doc2017_filters)[0]
def traverse(dirname, prefix): def traverse(dirname, prefix):
for file in [file for file in os.listdir(dirname) if not file in ['.', '..']]: for file in [file for file in os.listdir(dirname) if not file in ['.', '..']]:
filename = os.path.join(dirname, file) filename = os.path.join(dirname, file)
if os.path.isdir(filename): if os.path.isdir(filename):
lastname = os.path.split(filename)[1] lastname = os.path.split(filename)[1]
# Visual Studio 2010 nodes # Visual Studio 2017 nodes
subprefix = os.path.join(prefix, lastname) subprefix = os.path.join(prefix, lastname)
node2010 = etree.SubElement(filters2010, 'Filter') node2017 = etree.SubElement(filters2017, 'Filter')
node2010.set('Include', subprefix.replace('/', '\\')) node2017.set('Include', subprefix.replace('/', '\\'))
ui = etree.SubElement(node2010, 'UniqueIdentifier') ui = etree.SubElement(node2017, 'UniqueIdentifier')
ui.text = '{' + str(uuid.uuid4()) + '}' ui.text = '{' + str(uuid.uuid4()) + '}'
ui.tail = '\n\t\t' ui.tail = '\n\t\t'
node2010.tail = '\n\t\t' node2017.tail = '\n\t\t'
node2010.text = '\n\t\t\t' node2017.text = '\n\t\t\t'
traverse(filename, subprefix) traverse(filename, subprefix)
else: else:
@ -32,13 +32,13 @@ def traverse(dirname, prefix):
filename = '..\\' + filename.replace('/', '\\') filename = '..\\' + filename.replace('/', '\\')
prefix = prefix.replace('/', '\\') prefix = prefix.replace('/', '\\')
# Visual Studio 2010 nodes # Visual Studio 2017 nodes
if ext == '.cpp' or ext == '.c': if ext == '.cpp' or ext == '.c':
node = etree.SubElement(sources2010, 'ClCompile') node = etree.SubElement(sources2017, 'ClCompile')
node.set('Include', filename) node.set('Include', filename)
node.tail = '\n\t\t' node.tail = '\n\t\t'
node.text = '\n\t\t\t' node.text = '\n\t\t\t'
node = etree.SubElement(sources2010_filters, 'ClCompile') node = etree.SubElement(sources2017_filters, 'ClCompile')
node.set('Include', filename) node.set('Include', filename)
node.tail = '\n\t\t' node.tail = '\n\t\t'
node.text = '\n\t\t\t' node.text = '\n\t\t\t'
@ -46,11 +46,11 @@ def traverse(dirname, prefix):
filter.text = prefix filter.text = prefix
filter.tail = '\n\t\t' filter.tail = '\n\t\t'
elif ext == '.h' or ext == '.inl': elif ext == '.h' or ext == '.inl':
node = etree.SubElement(headers2010, 'ClInclude') node = etree.SubElement(headers2017, 'ClInclude')
node.set('Include', filename) node.set('Include', filename)
node.tail = '\n\t\t' node.tail = '\n\t\t'
node.text = '\n\t\t\t' node.text = '\n\t\t\t'
node = etree.SubElement(headers2010_filters, 'ClInclude') node = etree.SubElement(headers2017_filters, 'ClInclude')
node.set('Include', filename) node.set('Include', filename)
node.tail = '\n\t\t' node.tail = '\n\t\t'
node.text = '\n\t\t\t' node.text = '\n\t\t\t'
@ -62,10 +62,10 @@ def traverse(dirname, prefix):
traverse('src', 'Source Files') traverse('src', 'Source Files')
traverse('include', 'Header Files') traverse('include', 'Header Files')
of = open('build/mitsuba-msvc2010.vcxproj', 'w') of = open('build/mitsuba-msvc2017.vcxproj', 'w')
of.write(etree.tostring(doc2010, pretty_print=True)) of.write(etree.tostring(doc2017, pretty_print=True))
of.close() of.close()
of = open('build/mitsuba-msvc2010.vcxproj.filters', 'w') of = open('build/mitsuba-msvc2017.vcxproj.filters', 'w')
of.write(etree.tostring(doc2010_filters, pretty_print=True)) of.write(etree.tostring(doc2017_filters, pretty_print=True))
of.close() of.close()

View File

@ -1,26 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mitsuba", "mitsuba-msvc2010.vcxproj", "{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Debug|Win32.ActiveCfg = Debug|Win32
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Debug|Win32.Build.0 = Debug|Win32
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Debug|x64.ActiveCfg = Debug|x64
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Debug|x64.Build.0 = Debug|x64
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Release|Win32.ActiveCfg = Release|Win32
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Release|Win32.Build.0 = Release|Win32
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Release|x64.ActiveCfg = Release|x64
{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -1,121 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{BA3C2621-9FB1-4348-9059-AFC8CCAB25E9}</ProjectGuid>
<RootNamespace>mitsuba</RootNamespace>
<Keyword>MakeFileProj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</IntDir>
<NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cd .. &amp;&amp; scons --parallelize --cfg=build\config-win32-msvc2010-debug.py</NMakeBuildCommandLine>
<NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cd .. &amp;&amp; scons --parallelize --cfg=build\config-win32-msvc2010-debug.py -c &amp;&amp; scons --parallelize --cfg=build\config-win32-msvc2010-debug.py</NMakeReBuildCommandLine>
<NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">cd .. &amp;&amp; scons --parallelize --cfg=build\config-win32-msvc2010-debug.py -c</NMakeCleanCommandLine>
<NMakeOutput Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\dist\mtsgui.exe</NMakeOutput>
<NMakePreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">WIN32;_DEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
<NMakeIncludeSearchPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\include;$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
<NMakeForcedIncludes Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(NMakeForcedIncludes)</NMakeForcedIncludes>
<NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath>
<NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Release\</IntDir>
<NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cd .. &amp;&amp; scons --parallelize --cfg=build\config-win32-msvc2010.py</NMakeBuildCommandLine>
<NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cd .. &amp;&amp; scons --parallelize --cfg=build\config-win32-msvc2010.py -c &amp;&amp; scons --parallelize --cfg=build\config-win32-msvc2010.py</NMakeReBuildCommandLine>
<NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">cd .. &amp;&amp; scons --parallelize --cfg=build\config-win32-msvc2010.py -c</NMakeCleanCommandLine>
<NMakeOutput Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\dist\mtsgui.exe</NMakeOutput>
<NMakePreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">WIN32;NDEBUG;SINGLE_PRECISION;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
<NMakeIncludeSearchPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\include;$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
<NMakeForcedIncludes Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(NMakeForcedIncludes)</NMakeForcedIncludes>
<NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath>
<NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Debug\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Debug\</IntDir>
<NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cd .. &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc2010-debug.py</NMakeBuildCommandLine>
<NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cd .. &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc2010-debug.py -c &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc2010-debug.py</NMakeReBuildCommandLine>
<NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">cd .. &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc2010-debug.py -c</NMakeCleanCommandLine>
<NMakeOutput Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\dist\mtsgui.exe</NMakeOutput>
<NMakePreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">WIN32;_DEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
<NMakeIncludeSearchPath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\include;$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
<NMakeForcedIncludes Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(NMakeForcedIncludes)</NMakeForcedIncludes>
<NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath>
<NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Release\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Release\</IntDir>
<NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|x64'">cd .. &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc2010.py</NMakeBuildCommandLine>
<NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|x64'">cd .. &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc2010.py -c &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc2010.py</NMakeReBuildCommandLine>
<NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='Release|x64'">cd .. &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc2010.py -c</NMakeCleanCommandLine>
<NMakeOutput Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\dist\mtsgui.exe</NMakeOutput>
<NMakePreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">WIN32;NDEBUG;SINGLE_PRECISION;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
<NMakeIncludeSearchPath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\include;$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
<NMakeForcedIncludes Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(NMakeForcedIncludes)</NMakeForcedIncludes>
<NMakeAssemblySearchPath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath>
<NMakeForcedUsingAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies>
</PropertyGroup>
<ItemDefinitionGroup>
</ItemDefinitionGroup>
<ItemGroup Label="Filters">
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
</ItemGroup>
<ItemGroup Label="Header Files">
</ItemGroup>
<ItemGroup Label="Source Files">
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,25 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26730.12
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mitsuba-msvc2017", "mitsuba-msvc2017.vcxproj", "{14BF8B5B-8DCA-4A28-83CA-CE9962153946}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{14BF8B5B-8DCA-4A28-83CA-CE9962153946}.Debug|x64.ActiveCfg = Debug|x64
{14BF8B5B-8DCA-4A28-83CA-CE9962153946}.Debug|x64.Build.0 = Debug|x64
{14BF8B5B-8DCA-4A28-83CA-CE9962153946}.Release|x64.ActiveCfg = Release|x64
{14BF8B5B-8DCA-4A28-83CA-CE9962153946}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {881D9083-39B3-458C-965B-C455BED48F34}
EndGlobalSection
EndGlobal

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="Filters"> <ItemGroup Label="Filters">
<Filter Include="Header Files"> <Filter Include="Header Files">
@ -9,6 +9,10 @@
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter> </Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup> </ItemGroup>
<ItemGroup Label="Source Files"> <ItemGroup Label="Source Files">
</ItemGroup> </ItemGroup>

View File

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{14BF8B5B-8DCA-4A28-83CA-CE9962153946}</ProjectGuid>
<Keyword>MakeFileProj</Keyword>
<ProjectName>mitsuba-vs2017</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<NMakePreprocessorDefinitions>WIN32;_DEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<NMakePreprocessorDefinitions>WIN32;NDEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<NMakePreprocessorDefinitions>WIN32;_DEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
<NMakeBuildCommandLine>cd .. &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc2017-debug.py</NMakeBuildCommandLine>
<NMakeReBuildCommandLine>cd .. &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc2017-debug.py -c &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc201-debug.py</NMakeReBuildCommandLine>
<NMakeCleanCommandLine>cd .. &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc2017-debug.py -c</NMakeCleanCommandLine>
<NMakeOutput>..\dist\mtsgui.exe</NMakeOutput>
<NMakeIncludeSearchPath>..\include;$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
<NMakeForcedIncludes>$(NMakeForcedIncludes)</NMakeForcedIncludes>
<NMakeAssemblySearchPath>$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath>
<NMakeForcedUsingAssemblies>$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies>
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)$(Configuration)\</OutDir>
<IntDir>$(SolutionDir)$(Configuration)\</IntDir>
<NMakeBuildCommandLine>cd .. &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc2017.py</NMakeBuildCommandLine>
<NMakeReBuildCommandLine>cd .. &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc2017.py -c &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc2017.py</NMakeReBuildCommandLine>
<NMakeCleanCommandLine>cd .. &amp;&amp; scons --parallelize --cfg=build\config-win64-msvc2017.py -c</NMakeCleanCommandLine>
<NMakeOutput>..\dist\mtsgui.exe</NMakeOutput>
<NMakePreprocessorDefinitions>WIN32;NDEBUG;SINGLE_PRECISION;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
<NMakeIncludeSearchPath>..\include;$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
<NMakeForcedIncludes>$(NMakeForcedIncludes)</NMakeForcedIncludes>
<NMakeAssemblySearchPath>$(NMakeAssemblySearchPath)</NMakeAssemblySearchPath>
<NMakeForcedUsingAssemblies>$(NMakeForcedUsingAssemblies)</NMakeForcedUsingAssemblies>
</PropertyGroup>
<ItemDefinitionGroup>
</ItemDefinitionGroup>
<ItemGroup Label="Filters">
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup Label="Header Files">
</ItemGroup>
<ItemGroup Label="Source Files">
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>