Major VC9 projectfile update:

...add a wesnothlib project with common stuff from wesnoth and
wesnothd. Improves build times when building both and prevents
spurious errors from happening.
This commit is contained in:
Tomasz Śniatowski 2009-07-08 20:37:17 +01:00
parent f90ee3ce88
commit 1b07c2c3b3
4 changed files with 366 additions and 432 deletions

View file

@ -1,8 +1,16 @@
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wesnoth", "wesnoth.vcproj", "{65ACA13F-5F5C-4768-A89A-ECF6C16F1512}"
ProjectSection(ProjectDependencies) = postProject
{4A16638B-127B-4AE8-8E0B-4B211B96F976} = {4A16638B-127B-4AE8-8E0B-4B211B96F976}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wesnothd", "wesnothd.vcproj", "{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}"
ProjectSection(ProjectDependencies) = postProject
{4A16638B-127B-4AE8-8E0B-4B211B96F976} = {4A16638B-127B-4AE8-8E0B-4B211B96F976}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wesnothlib", "wesnothlib.vcproj", "{4A16638B-127B-4AE8-8E0B-4B211B96F976}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -23,6 +31,12 @@ Global
{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}.Debug|Win32.Build.0 = Debug|Win32
{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}.Release|Win32.ActiveCfg = Release|Win32
{72F28A4A-A6A2-4C49-8141-7CD0DFA9ECCE}.Release|Win32.Build.0 = Release|Win32
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.Debug (fast)|Win32.ActiveCfg = Debug|Win32
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.Debug (fast)|Win32.Build.0 = Debug|Win32
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.Debug|Win32.ActiveCfg = Debug|Win32
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.Debug|Win32.Build.0 = Debug|Win32
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.Release|Win32.ActiveCfg = Release|Win32
{4A16638B-127B-4AE8-8E0B-4B211B96F976}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View file

@ -22,6 +22,7 @@
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="0"
BuildLogFile="$(IntDir)\BuildLog-wesnoth.htm"
>
<Tool
Name="VCPreBuildEventTool"
@ -97,6 +98,7 @@
ConfigurationType="1"
CharacterSet="0"
WholeProgramOptimization="1"
BuildLogFile="$(IntDir)\BuildLog-wesnoth.htm"
>
<Tool
Name="VCPreBuildEventTool"
@ -140,8 +142,8 @@
Name="VCLinkerTool"
IgnoreImportLibrary="true"
LinkLibraryDependencies="false"
AdditionalDependencies="libintl.lib SDL.lib SDL_image.lib SDL_ttf.lib SDL_mixer.lib SDL_net.lib cairo.lib winmm.lib ws2_32.lib SDLmain.lib pango-1.0.lib pangocairo-1.0.lib gobject-2.0.lib glib-2.0.lib lua51.lib"
AdditionalLibraryDirectories=""
AdditionalDependencies="libintl.lib SDL.lib SDL_image.lib SDL_ttf.lib SDL_mixer.lib SDL_net.lib cairo.lib winmm.lib ws2_32.lib SDLmain.lib pango-1.0.lib pangocairo-1.0.lib gobject-2.0.lib glib-2.0.lib lua51.lib wesnothlib.lib"
AdditionalLibraryDirectories="$(OutDir)"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
@ -177,6 +179,7 @@
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="0"
BuildLogFile="$(IntDir)\BuildLog-wesnoth.htm"
>
<Tool
Name="VCPreBuildEventTool"
@ -306,14 +309,6 @@
RelativePath="..\..\src\clipboard.cpp"
>
</File>
<File
RelativePath="..\..\src\color_range.cpp"
>
</File>
<File
RelativePath="..\..\src\config.cpp"
>
</File>
<File
RelativePath="..\..\src\config_cache.cpp"
>
@ -346,10 +341,6 @@
RelativePath="..\..\src\filechooser.cpp"
>
</File>
<File
RelativePath="..\..\src\filesystem.cpp"
>
</File>
<File
RelativePath="..\..\src\floating_textbox.cpp"
>
@ -402,10 +393,6 @@
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\src\game_config.cpp"
>
</File>
<File
RelativePath="..\..\src\game_display.cpp"
>
@ -434,10 +421,6 @@
RelativePath="..\..\src\generic_event.cpp"
>
</File>
<File
RelativePath="..\..\src\gettext.cpp"
>
</File>
<File
RelativePath="..\..\src\halo.cpp"
>
@ -486,10 +469,6 @@
RelativePath="..\..\src\lobby_data.cpp"
>
</File>
<File
RelativePath="..\..\src\log.cpp"
>
</File>
<File
RelativePath="..\..\src\map.cpp"
>
@ -562,14 +541,6 @@
RelativePath="..\..\src\multiplayer_wait.cpp"
>
</File>
<File
RelativePath="..\..\src\network.cpp"
>
</File>
<File
RelativePath="..\..\src\network_worker.cpp"
>
</File>
<File
RelativePath="..\..\src\pathfind.cpp"
>
@ -706,14 +677,6 @@
RelativePath="..\..\src\theme.cpp"
>
</File>
<File
RelativePath="..\..\src\thread.cpp"
>
</File>
<File
RelativePath="..\..\src\time.cpp"
>
</File>
<File
RelativePath="..\..\src\time_of_day.cpp"
>
@ -730,10 +693,6 @@
RelativePath="..\..\src\tooltips.cpp"
>
</File>
<File
RelativePath="..\..\src\tstring.cpp"
>
</File>
<File
RelativePath="..\..\src\unit.cpp"
>
@ -770,10 +729,6 @@
RelativePath="..\..\src\upload_log.cpp"
>
</File>
<File
RelativePath="..\..\src\util.cpp"
>
</File>
<File
RelativePath="..\..\src\variable.cpp"
>
@ -782,10 +737,6 @@
RelativePath="..\..\src\variant.cpp"
>
</File>
<File
RelativePath="..\..\src\version.cpp"
>
</File>
<File
RelativePath="..\..\src\video.cpp"
>
@ -794,178 +745,6 @@
RelativePath="..\..\src\wml_exception.cpp"
>
</File>
<Filter
Name="Serialization"
>
<File
RelativePath="..\..\src\serialization\binary_or_text.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug (fast)|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\src\serialization\binary_wml.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug (fast)|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\src\serialization\parser.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug (fast)|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\src\serialization\preprocessor.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug (fast)|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\src\serialization\string_utils.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug (fast)|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
</File>
<File
RelativePath="..\..\src\serialization\tokenizer.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug (fast)|Win32"
>
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)\Serialization\"
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Gui"
>
@ -5013,30 +4792,6 @@
</Filter>
</Filter>
</Filter>
<Filter
Name="Serialization"
>
<File
RelativePath="..\..\src\serialization\binary_or_text.hpp"
>
</File>
<File
RelativePath="..\..\src\serialization\binary_wml.hpp"
>
</File>
<File
RelativePath="..\..\src\serialization\parser.hpp"
>
</File>
<File
RelativePath="..\..\src\serialization\preprocessor.hpp"
>
</File>
<File
RelativePath="..\..\src\serialization\string_utils.hpp"
>
</File>
</Filter>
<Filter
Name="Widgets"
>

View file

@ -19,9 +19,10 @@
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)\wesnothd"
ConfigurationType="1"
CharacterSet="0"
BuildLogFile="$(IntDir)\BuildLog-wesnothd.htm"
>
<Tool
Name="VCPreBuildEventTool"
@ -96,6 +97,7 @@
ConfigurationType="1"
CharacterSet="0"
WholeProgramOptimization="1"
BuildLogFile="$(IntDir)\BuildLog-wesnothd.htm"
>
<Tool
Name="VCPreBuildEventTool"
@ -135,8 +137,9 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="libintl.lib SDL.lib SDL_net.lib winmm.lib ws2_32.lib SDLmain.lib"
AdditionalDependencies="libintl.lib SDL.lib SDL_net.lib winmm.lib ws2_32.lib SDLmain.lib wesnothlib.lib"
LinkIncremental="1"
AdditionalLibraryDirectories="$(OutDir)"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
@ -174,90 +177,10 @@
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\..\src\color_range.cpp"
>
</File>
<File
RelativePath="..\..\src\config.cpp"
>
</File>
<File
RelativePath="..\..\src\filesystem.cpp"
>
</File>
<File
RelativePath="..\..\src\game_config.cpp"
>
</File>
<File
RelativePath="..\..\src\gettext.cpp"
>
</File>
<File
RelativePath="..\..\src\loadscreen_empty.cpp"
>
</File>
<File
RelativePath="..\..\src\log.cpp"
>
</File>
<File
RelativePath="..\..\src\network.cpp"
>
</File>
<File
RelativePath="..\..\src\network_worker.cpp"
>
</File>
<File
RelativePath="..\..\src\thread.cpp"
>
</File>
<File
RelativePath="..\..\src\time.cpp"
>
</File>
<File
RelativePath="..\..\src\tstring.cpp"
>
</File>
<File
RelativePath="..\..\src\util.cpp"
>
</File>
<File
RelativePath="..\..\src\version.cpp"
>
</File>
<Filter
Name="Serialization"
>
<File
RelativePath="..\..\src\serialization\binary_wml.cpp"
>
</File>
<File
RelativePath="..\..\src\serialization\parser.cpp"
>
</File>
<File
RelativePath="..\..\src\serialization\preprocessor.cpp"
>
</File>
<File
RelativePath="..\..\src\serialization\preprocessor.hpp"
>
</File>
<File
RelativePath="..\..\src\serialization\tokenizer.cpp"
>
</File>
<File
RelativePath="..\..\src\serialization\tokenizer.hpp"
>
</File>
</Filter>
<Filter
Name="Server"
>
@ -471,78 +394,6 @@
Name="Header Files"
Filter="hpp;h"
>
<File
RelativePath="..\..\src\about.hpp"
>
</File>
<File
RelativePath="..\..\src\config.hpp"
>
</File>
<File
RelativePath="..\..\src\filesystem.hpp"
>
</File>
<File
RelativePath="..\..\src\game_config.hpp"
>
</File>
<File
RelativePath="..\..\src\gettext.hpp"
>
</File>
<File
RelativePath="..\..\src\global.hpp"
>
</File>
<File
RelativePath="..\..\src\loadscreen.hpp"
>
</File>
<File
RelativePath="..\..\src\log.hpp"
>
</File>
<File
RelativePath="..\..\src\map.hpp"
>
</File>
<File
RelativePath="..\..\src\network.hpp"
>
</File>
<File
RelativePath="..\..\src\network_worker.hpp"
>
</File>
<File
RelativePath="..\..\src\scoped_resource.hpp"
>
</File>
<File
RelativePath="..\..\src\thread.hpp"
>
</File>
<File
RelativePath="..\..\src\time.hpp"
>
</File>
<File
RelativePath="..\..\src\tstring.hpp"
>
</File>
<File
RelativePath="..\..\src\util.hpp"
>
</File>
<File
RelativePath="..\..\src\version.hpp"
>
</File>
<File
RelativePath="..\..\src\wesconfig.h"
>
</File>
<Filter
Name="Server"
>
@ -619,34 +470,6 @@
</File>
</Filter>
</Filter>
<Filter
Name="Serialization"
>
<File
RelativePath="..\..\src\serialization\binary_or_text.cpp"
>
</File>
<File
RelativePath="..\..\src\serialization\binary_or_text.hpp"
>
</File>
<File
RelativePath="..\..\src\serialization\binary_wml.hpp"
>
</File>
<File
RelativePath="..\..\src\serialization\parser.hpp"
>
</File>
<File
RelativePath="..\..\src\serialization\string_utils.cpp"
>
</File>
<File
RelativePath="..\..\src\serialization\string_utils.hpp"
>
</File>
</Filter>
</Filter>
<Filter
Name="Others"

View file

@ -0,0 +1,342 @@
<?xml version="1.0" encoding="windows-1250"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="wesnothlib"
ProjectGUID="{4A16638B-127B-4AE8-8E0B-4B211B96F976}"
RootNamespace="wesnothlib"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)\wesnothlib"
ConfigurationType="4"
CharacterSet="2"
BuildLogFile="$(IntDir)\BuildLog.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="../../src"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
WarningLevel="3"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="4"
CharacterSet="2"
WholeProgramOptimization="1"
BuildLogFile="$(IntDir)\BuildLog-wesnothlib.htm"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
EnableIntrinsicFunctions="true"
AdditionalIncludeDirectories="../../src"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
WarningLevel="3"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLibrarianTool"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\..\src\color_range.cpp"
>
</File>
<File
RelativePath="..\..\src\config.cpp"
>
</File>
<File
RelativePath="..\..\src\filesystem.cpp"
>
</File>
<File
RelativePath="..\..\src\game_config.cpp"
>
</File>
<File
RelativePath="..\..\src\gettext.cpp"
>
</File>
<File
RelativePath="..\..\src\log.cpp"
>
</File>
<File
RelativePath="..\..\src\network.cpp"
>
</File>
<File
RelativePath="..\..\src\network_worker.cpp"
>
</File>
<File
RelativePath="..\..\src\thread.cpp"
>
</File>
<File
RelativePath="..\..\src\time.cpp"
>
</File>
<File
RelativePath="..\..\src\tstring.cpp"
>
</File>
<File
RelativePath="..\..\src\util.cpp"
>
</File>
<File
RelativePath="..\..\src\version.cpp"
>
</File>
<Filter
Name="Serialization"
>
<File
RelativePath="..\..\src\serialization\binary_or_text.cpp"
>
</File>
<File
RelativePath="..\..\src\serialization\binary_wml.cpp"
>
</File>
<File
RelativePath="..\..\src\serialization\parser.cpp"
>
</File>
<File
RelativePath="..\..\src\serialization\preprocessor.cpp"
>
</File>
<File
RelativePath="..\..\src\serialization\string_utils.cpp"
>
</File>
<File
RelativePath="..\..\src\serialization\tokenizer.cpp"
>
</File>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\..\src\about.hpp"
>
</File>
<File
RelativePath="..\..\src\config.hpp"
>
</File>
<File
RelativePath="..\..\src\filesystem.hpp"
>
</File>
<File
RelativePath="..\..\src\game_config.hpp"
>
</File>
<File
RelativePath="..\..\src\gettext.hpp"
>
</File>
<File
RelativePath="..\..\src\global.hpp"
>
</File>
<File
RelativePath="..\..\src\log.hpp"
>
</File>
<File
RelativePath="..\..\src\map.hpp"
>
</File>
<File
RelativePath="..\..\src\network.hpp"
>
</File>
<File
RelativePath="..\..\src\network_worker.hpp"
>
</File>
<File
RelativePath="..\..\src\scoped_resource.hpp"
>
</File>
<File
RelativePath="..\..\src\thread.hpp"
>
</File>
<File
RelativePath="..\..\src\time.hpp"
>
</File>
<File
RelativePath="..\..\src\tstring.hpp"
>
</File>
<File
RelativePath="..\..\src\util.hpp"
>
</File>
<File
RelativePath="..\..\src\version.hpp"
>
</File>
<File
RelativePath="..\..\src\wesconfig.h"
>
</File>
<Filter
Name="Serialization"
>
<File
RelativePath="..\..\src\serialization\binary_or_text.hpp"
>
</File>
<File
RelativePath="..\..\src\serialization\binary_wml.hpp"
>
</File>
<File
RelativePath="..\..\src\serialization\parser.hpp"
>
</File>
<File
RelativePath="..\..\src\serialization\preprocessor.hpp"
>
</File>
<File
RelativePath="..\..\src\serialization\string_utils.hpp"
>
</File>
<File
RelativePath="..\..\src\serialization\tokenizer.hpp"
>
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>