From c2fa263b110015e828282c40e0381669e2a21310 Mon Sep 17 00:00:00 2001 From: Valentin Radu Date: Thu, 12 Aug 2021 23:43:56 +0300 Subject: [PATCH] Build process improvement In order to ease off building and testing the application, when using Visual Studio, the solution now automatically kills Explorer before building (so that the library can replace the old version which presumably was in use) and starts it back when the build completes. --- ExplorerPatcher.sln | 30 ++++++ ExplorerPatcher/ExplorerPatcher.vcxproj | 32 +++++++ .../ExplorerPatcherLibrary.vcxproj | 32 +++++++ PostBuildCommand/PostBuildCommand.vcxproj | 96 +++++++++++++++++++ .../PostBuildCommand.vcxproj.filters | 17 ++++ PreBuildCommand/PreBuildCommand.vcxproj | 96 +++++++++++++++++++ .../PreBuildCommand.vcxproj.filters | 17 ++++ 7 files changed, 320 insertions(+) create mode 100644 PostBuildCommand/PostBuildCommand.vcxproj create mode 100644 PostBuildCommand/PostBuildCommand.vcxproj.filters create mode 100644 PreBuildCommand/PreBuildCommand.vcxproj create mode 100644 PreBuildCommand/PreBuildCommand.vcxproj.filters diff --git a/ExplorerPatcher.sln b/ExplorerPatcher.sln index 458b305..2fbbcc0 100644 --- a/ExplorerPatcher.sln +++ b/ExplorerPatcher.sln @@ -4,8 +4,22 @@ Microsoft Visual Studio Solution File, Format Version 12.00 VisualStudioVersion = 16.0.30002.166 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExplorerPatcher", "ExplorerPatcher\ExplorerPatcher.vcxproj", "{05EB9B16-4C34-47A2-97F5-E65E4955F71B}" + ProjectSection(ProjectDependencies) = postProject + {E74E02C4-C6DA-44B2-A034-7C9F1B661152} = {E74E02C4-C6DA-44B2-A034-7C9F1B661152} + EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExplorerPatcherLibrary", "ExplorerPatcherLibrary\ExplorerPatcherLibrary.vcxproj", "{DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}" + ProjectSection(ProjectDependencies) = postProject + {E74E02C4-C6DA-44B2-A034-7C9F1B661152} = {E74E02C4-C6DA-44B2-A034-7C9F1B661152} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PreBuildCommand", "PreBuildCommand\PreBuildCommand.vcxproj", "{E74E02C4-C6DA-44B2-A034-7C9F1B661152}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PostBuildCommand", "PostBuildCommand\PostBuildCommand.vcxproj", "{9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}" + ProjectSection(ProjectDependencies) = postProject + {05EB9B16-4C34-47A2-97F5-E65E4955F71B} = {05EB9B16-4C34-47A2-97F5-E65E4955F71B} + {DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9} = {DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9} + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -31,6 +45,22 @@ Global {DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}.Release|x64.Build.0 = Release|x64 {DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}.Release|x86.ActiveCfg = Release|Win32 {DB3E4319-2969-42B6-B7E8-BB57AA8C9FA9}.Release|x86.Build.0 = Release|Win32 + {E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Debug|x64.ActiveCfg = Debug|x64 + {E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Debug|x64.Build.0 = Debug|x64 + {E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Debug|x86.ActiveCfg = Debug|Win32 + {E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Debug|x86.Build.0 = Debug|Win32 + {E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Release|x64.ActiveCfg = Release|x64 + {E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Release|x64.Build.0 = Release|x64 + {E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Release|x86.ActiveCfg = Release|Win32 + {E74E02C4-C6DA-44B2-A034-7C9F1B661152}.Release|x86.Build.0 = Release|Win32 + {9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Debug|x64.ActiveCfg = Debug|x64 + {9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Debug|x64.Build.0 = Debug|x64 + {9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Debug|x86.ActiveCfg = Debug|Win32 + {9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Debug|x86.Build.0 = Debug|Win32 + {9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Release|x64.ActiveCfg = Release|x64 + {9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Release|x64.Build.0 = Release|x64 + {9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Release|x86.ActiveCfg = Release|Win32 + {9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ExplorerPatcher/ExplorerPatcher.vcxproj b/ExplorerPatcher/ExplorerPatcher.vcxproj index 9b21582..8628e32 100644 --- a/ExplorerPatcher/ExplorerPatcher.vcxproj +++ b/ExplorerPatcher/ExplorerPatcher.vcxproj @@ -94,6 +94,14 @@ Console true + + + + + + + + @@ -107,6 +115,14 @@ Windows true + + + + + + + + @@ -123,6 +139,14 @@ true true + + + + + + + + @@ -140,6 +164,14 @@ true true + + + + + + + + diff --git a/ExplorerPatcherLibrary/ExplorerPatcherLibrary.vcxproj b/ExplorerPatcherLibrary/ExplorerPatcherLibrary.vcxproj index b41aee4..326a8f7 100644 --- a/ExplorerPatcherLibrary/ExplorerPatcherLibrary.vcxproj +++ b/ExplorerPatcherLibrary/ExplorerPatcherLibrary.vcxproj @@ -101,6 +101,14 @@ $(SolutionDir)libs\funchook\build\Release\funchook.lib;$(SolutionDir)libs\funchook\build\Release\distorm.lib;%(AdditionalLibraryDirectories) $(SolutionDir)libs\funchook\build\Release\funchook.lib;$(SolutionDir)libs\funchook\build\Release\distorm.lib;%(AdditionalDependencies) + + + + + + + + @@ -113,6 +121,14 @@ Console true + + + + + + + + @@ -128,6 +144,14 @@ $(SolutionDir)libs\funchook\build\Release\funchook.lib;$(SolutionDir)libs\funchook\build\Release\distorm.lib;%(AdditionalLibraryDirectories) $(SolutionDir)libs\funchook\build\Release\funchook.lib;$(SolutionDir)libs\funchook\build\Release\distorm.lib;%(AdditionalDependencies) + + + + + + + + @@ -144,6 +168,14 @@ true true + + + + + + + + diff --git a/PostBuildCommand/PostBuildCommand.vcxproj b/PostBuildCommand/PostBuildCommand.vcxproj new file mode 100644 index 0000000..cf49a53 --- /dev/null +++ b/PostBuildCommand/PostBuildCommand.vcxproj @@ -0,0 +1,96 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + {9AE5B3DE-EA42-454C-85C0-4A7AF6AD331B} + Win32Proj + + + + Makefile + true + v142 + + + Makefile + false + v142 + + + Makefile + true + v142 + + + Makefile + false + v142 + + + + + + + + + + + + + + + + + + + + + taskkill /f /im:sihost.exe 2>nul &set errorlevel=0 + PostBuildCommand.exe + NDEBUG;$(NMakePreprocessorDefinitions) + taskkill /f /im:sihost.exe 2>nul &set errorlevel=0 + + + taskkill /f /im:sihost.exe 2>nul &set errorlevel=0 + PostBuildCommand.exe + WIN32;_DEBUG;$(NMakePreprocessorDefinitions) + taskkill /f /im:sihost.exe 2>nul &set errorlevel=0 + + + taskkill /f /im:sihost.exe 2>nul &set errorlevel=0 + PostBuildCommand.exe + _DEBUG;$(NMakePreprocessorDefinitions) + taskkill /f /im:sihost.exe 2>nul &set errorlevel=0 + + + taskkill /f /im:sihost.exe 2>nul &set errorlevel=0 + PostBuildCommand.exe + WIN32;NDEBUG;$(NMakePreprocessorDefinitions) + taskkill /f /im:sihost.exe 2>nul &set errorlevel=0 + + + + + + + + + \ No newline at end of file diff --git a/PostBuildCommand/PostBuildCommand.vcxproj.filters b/PostBuildCommand/PostBuildCommand.vcxproj.filters new file mode 100644 index 0000000..1fb5e04 --- /dev/null +++ b/PostBuildCommand/PostBuildCommand.vcxproj.filters @@ -0,0 +1,17 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + \ No newline at end of file diff --git a/PreBuildCommand/PreBuildCommand.vcxproj b/PreBuildCommand/PreBuildCommand.vcxproj new file mode 100644 index 0000000..376eb13 --- /dev/null +++ b/PreBuildCommand/PreBuildCommand.vcxproj @@ -0,0 +1,96 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + {E74E02C4-C6DA-44B2-A034-7C9F1B661152} + Win32Proj + + + + Makefile + true + v142 + + + Makefile + false + v142 + + + Makefile + true + v142 + + + Makefile + false + v142 + + + + + + + + + + + + + + + + + + + + + taskkill /f /im:explorer.exe 2>nul &set errorlevel=0 + PreBuildCommand.exe + NDEBUG;$(NMakePreprocessorDefinitions) + taskkill /f /im:explorer.exe 2>nul &set errorlevel=0 + + + taskkill /f /im:explorer.exe 2>nul &set errorlevel=0 + PreBuildCommand.exe + WIN32;_DEBUG;$(NMakePreprocessorDefinitions) + taskkill /f /im:explorer.exe 2>nul &set errorlevel=0 + + + taskkill /f /im:explorer.exe 2>nul &set errorlevel=0 + PreBuildCommand.exe + _DEBUG;$(NMakePreprocessorDefinitions) + taskkill /f /im:explorer.exe 2>nul &set errorlevel=0 + + + taskkill /f /im:explorer.exe 2>nul &set errorlevel=0 + PreBuildCommand.exe + WIN32;NDEBUG;$(NMakePreprocessorDefinitions) + taskkill /f /im:explorer.exe 2>nul &set errorlevel=0 + + + + + + + + + \ No newline at end of file diff --git a/PreBuildCommand/PreBuildCommand.vcxproj.filters b/PreBuildCommand/PreBuildCommand.vcxproj.filters new file mode 100644 index 0000000..1fb5e04 --- /dev/null +++ b/PreBuildCommand/PreBuildCommand.vcxproj.filters @@ -0,0 +1,17 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + \ No newline at end of file