MSVC 2010+ Projects: Update "Installation" Process

Currently, due to the way that Visual Studio 2010+ projects are handled,
the "install" project does not re-build upon changes to the sources, as it
does not believe that its dependencies have changed, although the changed
sources are automatically recompiled.  This means that if a part or more
of the solution does not build, or if the sources need some other fixes
or enhancements, the up-to-date build is not copied automatically, which
can be misleading.

Improve on the situation by forcing the "install" project to trigger its
rebuild, so that the updated binaries can be copied.  This does trigger an
MSBuild warning, but having that warning is way better than not having an
up-to-date build, especially during testing and development.
This commit is contained in:
Chun-wei Fan 2014-06-09 18:42:46 +08:00
parent 5556241b67
commit f735220a9b
2 changed files with 47 additions and 39 deletions

View File

@ -4,6 +4,10 @@
<Import Project="cogl-build-defines.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros">
<BinDir>$(SolutionDir)$(Configuration)\$(Platform)\bin</BinDir>
<InstalledDlls>$(BinDir)\$(CoglDllPrefix)cogl(CoglDllSuffix).dll;$(BinDir)\$(CoglDllPrefix)cogl-path(CoglDllSuffix).dll;$(BinDir)\$(CoglDllPrefix)cogl-pango(CoglDllSuffix).dll</InstalledDlls>
<InstalledBins>$(BinDir)\cogl-crate.exe;$(BinDir)\cogl-hello.exe;$(BinDir)\cogl-info.exe</InstalledBins>
<InstalledSDLBins>$(BinDir)\cogl-sdl2-hello.exe</InstalledSDLBins>
<CoglDoInstallBin>
mkdir $(CopyDir)\bin
@ -15,11 +19,11 @@ if "$(Configuration)" == "Release_SDL" goto DO_REL_BIN
if "$(Configuration)" == "Debug_SDL" goto DO_DBG_BIN
copy $(Configuration)\$(Platform)\bin\*.dll $(CopyDir)\bin
copy $(BinDir)\*.dll $(CopyDir)\bin
copy $(Configuration)\$(Platform)\bin\*-$(ApiVersion).lib $(CopyDir)\lib
copy $(BinDir)\*-$(ApiVersion).lib $(CopyDir)\lib
copy $(Configuration)\$(Platform)\bin\*.exe $(CopyDir)\bin
copy $(BinDir)\*.exe $(CopyDir)\bin
goto DONE_BIN
@ -212,6 +216,18 @@ copy ..\..\..\cogl-path\cogl-path-enum-types.h $(CopyDir)\include\cogl-$(ApiVers
<_PropertySheetDisplayName>coglinstallprops</_PropertySheetDisplayName>
</PropertyGroup>
<ItemGroup>
<BuildMacro Include="BinDir">
<Value>$(BinDir)</Value>
</BuildMacro>
<BuildMacro Include="InstalledDlls">
<Value>$(InstalledDlls)</Value>
</BuildMacro>
<BuildMacro Include="InstalledBins">
<Value>$(InstalledBins)</Value>
</BuildMacro>
<BuildMacro Include="InstalledSDLBins">
<Value>$(InstalledSDLBins)</Value>
</BuildMacro>
<BuildMacro Include="CoglDoInstallBin">
<Value>$(CoglDoInstall)</Value>
</BuildMacro>

View File

@ -134,57 +134,49 @@
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release_SDL|x64'" />
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<PostBuildEvent>
<Command>$(CoglDoInstall)</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SDL|Win32'">
<PostBuildEvent>
<Command>
$(CoglDoInstall)
$(CoglDoInstallSDL)
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<PreBuildEvent>
<Command>$(CoglDoInstall)</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_SDL|x64'">
<PreBuildEvent>
<Command>
$(CoglDoInstall)
$(CoglDoInstallSDL)
</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<PostBuildEvent>
<Command>$(CoglDoInstall)</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SDL|Win32'">
<PostBuildEvent>
<Command>
$(CoglDoInstall)
$(CoglDoInstallSDL)
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<PreBuildEvent>
<Command>$(CoglDoInstall)</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_SDL|x64'">
<PreBuildEvent>
<Command>
$(CoglDoInstall)
$(CoglDoInstallSDL)
</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<CustomBuild Include="..\..\..\config.h.win32">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(CoglDoInstall)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(InstalledDlls);$(InstalledBins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_SDL|Win32'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_SDL|Win32'">$(CoglDoInstall)$(CoglDoInstallSDL)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_SDL|Win32'">$(InstalledDlls);$(InstalledBins);$(InstalledSDLBins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(CoglDoInstall)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(InstalledDlls);$(InstalledBins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_SDL|x64'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_SDL|x64'">$(CoglDoInstall)$(CoglDoInstallSDL)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_SDL|x64'">$(InstalledDlls);$(InstalledBins);$(InstalledSDLBins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(CoglDoInstall)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(InstalledDlls);$(InstalledBins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release_SDL|Win32'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release_SDL|Win32'">$(CoglDoInstall)$(CoglDoInstallSDL)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_SDL|Win32'">$(InstalledDlls);$(InstalledBins);$(InstalledSDLBins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(CoglDoInstall)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(InstalledDlls);$(InstalledBins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release_SDL|x64'">Installing Build Results...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release_SDL|x64'">$(CoglDoInstall)$(CoglDoInstallSDL)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_SDL|x64'">$(InstalledDlls);$(InstalledBins);$(InstalledSDLBins);%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="test-conformance-cogl.vcxproj">
<Project>{0f08f253-de1a-40cb-a890-93ae3ca23ade}</Project>