ES-DE/tools/Windows_dependencies_build_MinGW.sh

94 lines
1.9 KiB
Bash

#!/bin/sh
# SPDX-License-Identifier: MIT
#
# EmulationStation Desktop Edition
# Windows_dependencies_build_MinGW.sh
#
# Builds the external dependencies in-tree.
# The Windows_dependencies_setup_MinGW.sh script must have been executed prior to this.
# All libraries will be recompiled from scratch every time.
#
# This script needs to run from the root of the repository.
#
# How many CPU threads to use for the compilation.
JOBS=4
if [ ! -f .clang-format ]; then
echo "You need to run this script from the root of the repository."
exit
fi
cd external
if [ ! -d pugixml ]; then
echo "You need to first run tools/Windows_dependencies_setup_MinGW.sh to download and configure the dependencies."
exit
fi
echo "Building all dependencies in the ./external directory..."
echo -e "\nBuilding GLEW"
if [ ! -d glew-2.1.0 ]; then
echo "GLEW directory is missing, aborting."
exit
fi
cd glew-2.1.0
make clean
make -j${JOBS} 2>/dev/null
cp lib/glew32.dll ../..
cd ..
echo -e "\nBuilding FreeType"
if [ ! -d freetype/build ]; then
echo "FreeType directory is missing, aborting."
exit
fi
cd freetype/build
rm -f CMakeCache.txt
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON ..
make clean
make -j${JOBS}
strip libfreetype.dll
cp libfreetype.dll ../../..
cd ../..
echo -e "\nBuilding libgit2"
if [ ! -d libgit2/build ]; then
echo "libgit2 directory is missing, aborting."
exit
fi
cd libgit2/build
rm -f CMakeCache.txt
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF ..
make clean
make -j${JOBS}
strip libgit2.dll
cp libgit2.dll ../../..
cd ../..
echo -e "\nBuilding pugixml"
if [ ! -d pugixml ]; then
echo "pugixml directory is missing, aborting."
exit
fi
cd pugixml
rm -f CMakeCache.txt
cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON .
make clean
make -j${JOBS}
strip libpugixml.dll
cp libpugixml.dll ../..
cd ..
echo
echo "Done building all dependencies."