Small beginnings of MSBuild-based build system, for Visual Studio 2010/Windows 7.1 SDK.

So far proof of concept building just the respack program, using a semi-generalised form of finding wxWidgets. For it to find wxWidgets, a user configuration needs to be placed in the userconfig dir, see readme.txt.

Originally committed to SVN as r4954.
This commit is contained in:
Niels Martin Hansen 2010-12-11 16:35:22 +00:00
parent a2513f03a7
commit d63a646c2a
4 changed files with 161 additions and 0 deletions

View file

@ -0,0 +1,73 @@
<?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="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{08AF2BCC-FCDD-4F0E-8B41-59A6E634F2E8}</ProjectGuid>
<RootNamespace>respack</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
<UseDebugLibraries Condition="'$(Configuration)'=='Debug'">true</UseDebugLibraries>
<UseDebugLibraries Condition="'$(Configuration)'=='Release'">false</UseDebugLibraries>
<WholeProgramOptimization Condition="'$(Configuration)'=='Release'">true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDir)..\userconfig\*.props" />
<Import Project="$(MSBuildThisFileDir)..\wx.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(ProjectDir)</OutDir>
<IntDir>$(ProjectDir)$(Configuration)\</IntDir>
<TargetName>respackd</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<OutDir>$(ProjectDir)</OutDir>
<IntDir>$(ProjectDir)$(Configuration)\</IntDir>
<TargetName>respack</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\tools\common-respack.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<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="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</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;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\tools\common-respack.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>

View file

@ -0,0 +1,29 @@
You can put MSBuild property files in this folder to override the default
build configuration for Aegisub's build system.
There is one configuration you almost guaranteed will want to override,
this is for the location of wxWidgets. Here is an example of a property
file that specifies a wxWidgets location:
-------------- mywx.props --------------
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- Set a helper property, to make the remaining property definitions shorter.
The WxBasePath property is not used by Aegisub's build system. -->
<WxBasePath>G:\Dev\wxWidgets-2.9\install-vc10</WxBasePath>
<!-- Specify WxLibraryPath, the location where the link libraries for wxWidgets
are located. The location depends on the Platform variable.
These library paths are also used to deduce the location of the configuration
header file for the specific builds. -->
<WxLibraryPath Condition="'$(Platform)'=='Win32'">$(WxBasePath)\lib32</WxLibraryPath>
<WxLibraryPath Condition="'$(Platform)'=='x64'">$(WxBasePath)\lib64</WxLibraryPath>
<!-- Specify where the wxWidgets include files are found. -->
<WxIncludePath>$(WxBasePath)\include</WxIncludePath>
</PropertyGroup>
</Project>
----------------------------------------
You should not check files placed in this folder into source control.
Files must be named *.props to be used.

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Some helper affixes -->
<PropertyGroup>
<WxLibDbgSuffix Condition="'$(Configuration)'=='Debug'">d</WxLibDbgSuffix>
<WxLibDbgSuffix Condition="'$(Configuration)'=='Release'"></WxLibDbgSuffix>
<WxLibBase>wxbase29u$(WxLibDbgSuffix)</WxLibBase>
<WxLibMsw>wxmsw29u$(WxLibDbgSuffix)</WxLibMsw>
</PropertyGroup>
<!-- Tell the compiler where to search for wx headers and libraries -->
<PropertyGroup>
<IncludePath>$(WxLibraryPath)\mswu$(WxLibDbgSuffix)\;$(WxIncludePath);$(IncludePath)</IncludePath>
<LibraryPath>$(WxLibraryPath);$(LibraryPath)</LibraryPath>
</PropertyGroup>
<!-- Tell the linker to use the appropriate wx libraries -->
<ItemDefinitionGroup>
<Link>
<AdditionalDependencies>
$(WxLibBase).lib;
$(WxLibBase)_net.lib;
$(WxLibBase)_xml.lib;
$(WxLibMsw)_core.lib;
$(WxLibMsw)_adv.lib;
$(WxLibMsw)_gl.lib;
$(WxLibMsw)_stc.lib;
wxscintilla$(WxLibDbgSuffix).lib;
wxzlib$(WxLibDbgSuffix).lib;
wxexpat$(WxLibDbgSuffix).lib;
wxregexu$(WxLibDbgSuffix).lib;
wxpng$(WxLibDbgSuffix).lib;
%(AdditionalDependencies)
</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
</Project>