Save time by only recompiling libgit when needed. Still needs manual removal of old builds to save on space.

release-1.0.0
Icedream 2015-01-10 05:10:22 +01:00
parent ed8f713b77
commit 13128e3549
1 changed files with 35 additions and 30 deletions

View File

@ -143,54 +143,59 @@ foreach (var item in filesToCleanup)
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT'"> <PropertyGroup Condition=" '$(OS)' == 'Windows_NT'">
<PreBuildEvent>pushd "$(SolutionDir)deps\libgit2sharp\libgit2" <PreBuildEvent>pushd "$(SolutionDir)deps\libgit2sharp\libgit2"
git rev-parse HEAD &gt; ..\LibGit2Sharp\libgit2_hash.txt
set /p LIBGIT2_HASH=&lt; ..\LibGit2Sharp\libgit2_hash.txt set /p LIBGIT2_HASH=&lt; ..\LibGit2Sharp\libgit2_hash.txt
set LIBGIT2_HASH=%25LIBGIT2_HASH:~0,7%25 set LIBGIT2_HASH=%25LIBGIT2_HASH:~0,7%25
del /q /s "$(SolutionDir)src\updater\costura32\git*.dll"
del /q /s "$(SolutionDir)src\updater\costura64\git*.dll"
rmdir /q /s Build
mkdir Build mkdir Build
pushd Build pushd Build
mkdir x64 if not exist "$(SolutionDir)src\updater\costura64\git2-%25LIBGIT2_HASH%25.dll" (
pushd x64 rmdir /q /s x64
cmake ../.. "-DCMAKE_INSTALL_PREFIX=%25cd%25" "-DBIN_INSTALL_DIR=$(SolutionDir)src\updater\costura64" -DCMAKE_BUILD_TYPE=Release -DBUILD_CLAR:BOOL=OFF -Ax64 -DUSE_SSH=OFF -DENABLE_TRACE=ON -DLIBGIT2_FILENAME=git2-%25LIBGIT2_HASH%25 -DCMAKE_OSX_ARCHITECTURES="x86_64" mkdir x64
cmake --build . --config Release --target install pushd x64
popd cmake ../.. "-DCMAKE_INSTALL_PREFIX=%25cd%25" "-DBIN_INSTALL_DIR=$(SolutionDir)src\updater\costura64" -DCMAKE_BUILD_TYPE=Release -DBUILD_CLAR:BOOL=OFF -Ax64 -DUSE_SSH=OFF -DENABLE_TRACE=ON -DLIBGIT2_FILENAME=git2-%25LIBGIT2_HASH%25 -DCMAKE_OSX_ARCHITECTURES="x86_64"
cmake --build . --config Release --target install
popd
)
mkdir x86 if not exist "$(SolutionDir)src\updater\costura32\git2-%25LIBGIT2_HASH%25.dll" (
pushd x86 rmdir /q /s x86
cmake ../.. "-DCMAKE_INSTALL_PREFIX=%25cd%25" "-DBIN_INSTALL_DIR=$(SolutionDir)src\updater\costura32" -DCMAKE_BUILD_TYPE=Release -DBUILD_CLAR:BOOL=OFF -AWin32 -DUSE_SSH=OFF -DENABLE_TRACE=ON -DLIBGIT2_FILENAME=git2-%25LIBGIT2_HASH%25 -DCMAKE_OSX_ARCHITECTURES="i386" mkdir x86
cmake --build . --config Release --target install pushd x86
popd cmake ../.. "-DCMAKE_INSTALL_PREFIX=%25cd%25" "-DBIN_INSTALL_DIR=$(SolutionDir)src\updater\costura32" -DCMAKE_BUILD_TYPE=Release -DBUILD_CLAR:BOOL=OFF -AWin32 -DUSE_SSH=OFF -DENABLE_TRACE=ON -DLIBGIT2_FILENAME=git2-%25LIBGIT2_HASH%25 -DCMAKE_OSX_ARCHITECTURES="i386"
cmake --build . --config Release --target install
popd
)
popd popd</PreBuildEvent>
</PreBuildEvent>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(OS)' != 'Windows_NT'"> <PropertyGroup Condition=" '$(OS)' != 'Windows_NT'">
<PreBuildEvent>cd "$(SolutionDir)deps\libgit2sharp\libgit2" <PreBuildEvent>cd "$(SolutionDir)deps\libgit2sharp\libgit2"
LIBGIT2_HASH=$( git rev-parse HEAD ) LIBGIT2_HASH=$(cat ../LibGit2Sharp/libgit2_hash.txt)
echo $LIBGIT2_HASH &gt; ../LibGit2Sharp/libgit2_hash.txt
LIBGIT2_HASH=${LIBGIT2_HASH:0:7} LIBGIT2_HASH=${LIBGIT2_HASH:0:7}
rm -rf "$(SolutionDir)src/updater/costura32"/git*.so "$(SolutionDir)src/updater/costura64"/git*.so Build mkdir -p Build
mkdir -p Build/x64 Build/x86
cd Build cd Build
cd x64 if [ ! -e "$(SolutionDir)src/updater/costura64"/git*.so ]; then
cmake ../.. "-DCMAKE_INSTALL_PREFIX=%25cd%25" "-DBIN_INSTALL_DIR=$(SolutionDir)src\updater\costura64" -DCMAKE_BUILD_TYPE=Release -DBUILD_CLAR:BOOL=OFF -Ax64 -DUSE_SSH=OFF -DENABLE_TRACE=ON -DLIBGIT2_FILENAME=git2-%25LIBGIT2_HASH%25 -DCMAKE_OSX_ARCHITECTURES="x86_64" rm -rf x64
cmake --build . --target install mkdir -p x64
cd .. cd x64
cmake ../.. "-DCMAKE_INSTALL_PREFIX=%25cd%25" "-DBIN_INSTALL_DIR=$(SolutionDir)src\updater\costura64" -DCMAKE_BUILD_TYPE=Release -DBUILD_CLAR:BOOL=OFF -Ax64 -DUSE_SSH=OFF -DENABLE_TRACE=ON -DLIBGIT2_FILENAME=git2-%25LIBGIT2_HASH%25 -DCMAKE_OSX_ARCHITECTURES="x86_64"
cmake --build . --target install
cd ..
fi
cd x86 if [ ! -e "$(SolutionDir)src/updater/costura32"/git*.so ]; then
cmake ../.. "-DCMAKE_INSTALL_PREFIX=%25cd%25" "-DBIN_INSTALL_DIR=$(SolutionDir)src\updater\costura32" -DCMAKE_BUILD_TYPE=Release -DBUILD_CLAR:BOOL=OFF -AWin32 -DUSE_SSH=OFF -DENABLE_TRACE=ON -DLIBGIT2_FILENAME=git2-%25LIBGIT2_HASH%25 -DCMAKE_OSX_ARCHITECTURES="i386" rm -rf x86
cmake --build . --target install mkdir -p x86
cd .. cd x86
cmake ../.. "-DCMAKE_INSTALL_PREFIX=%25cd%25" "-DBIN_INSTALL_DIR=$(SolutionDir)src\updater\costura32" -DCMAKE_BUILD_TYPE=Release -DBUILD_CLAR:BOOL=OFF -AWin32 -DUSE_SSH=OFF -DENABLE_TRACE=ON -DLIBGIT2_FILENAME=git2-%25LIBGIT2_HASH%25 -DCMAKE_OSX_ARCHITECTURES="i386"
cmake --build . --target install
cd ..
fi
</PreBuildEvent> </PreBuildEvent>
</PropertyGroup> </PropertyGroup>
<!-- TODO: Post-build event for Mono (linux binaries for git2) --> <!-- TODO: Post-build event for Mono (linux binaries for git2) -->