mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-28 15:32:35 +00:00
94 lines
2.6 KiB
Bash
Executable File
94 lines
2.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Environment variables:
|
|
#
|
|
# SOURCE_DIR: Set to the directory of the libgit2 source (optional)
|
|
# If not set, it will be derived relative to this script.
|
|
|
|
set -e
|
|
|
|
SOURCE_DIR=${SOURCE_DIR:-$( cd "$( dirname "${BASH_SOURCE[0]}" )" && dirname $( pwd ) )}
|
|
BUILD_DIR=$(pwd)
|
|
BUILD_PATH=${BUILD_PATH:=$PATH}
|
|
CMAKE=$(which cmake)
|
|
CMAKE_GENERATOR=${CMAKE_GENERATOR:-Unix Makefiles}
|
|
|
|
indent() { sed "s/^/ /"; }
|
|
|
|
cygfullpath() {
|
|
result=$(echo "${1}" | tr \; \\n | while read -r element; do
|
|
if [ "${last}" != "" ]; then echo -n ":"; fi
|
|
echo -n $(cygpath "${element}")
|
|
last="${element}"
|
|
done)
|
|
if [ "${result}" = "" ]; then exit 1; fi
|
|
echo "${result}"
|
|
}
|
|
|
|
if [[ "$(uname -s)" == MINGW* ]]; then
|
|
BUILD_PATH=$(cygfullpath "${BUILD_PATH}")
|
|
fi
|
|
|
|
|
|
echo "Source directory: ${SOURCE_DIR}"
|
|
echo "Build directory: ${BUILD_DIR}"
|
|
echo ""
|
|
|
|
echo "Platform:"
|
|
uname -s | indent
|
|
|
|
if [ "$(uname -s)" = "Darwin" ]; then
|
|
echo "macOS version:"
|
|
sw_vers | indent
|
|
fi
|
|
|
|
if [ -f "/etc/debian_version" ]; then
|
|
echo "Debian version:"
|
|
(source /etc/lsb-release && echo "${DISTRIB_DESCRIPTION}") | indent
|
|
fi
|
|
|
|
CORES=$(getconf _NPROCESSORS_ONLN || true)
|
|
echo "Number of cores: ${CORES:-(Unknown)}"
|
|
|
|
echo "Kernel version:"
|
|
uname -a 2>&1 | indent
|
|
|
|
echo "CMake version:"
|
|
env PATH="${BUILD_PATH}" "${CMAKE}" --version | head -1 2>&1 | indent
|
|
|
|
if test -n "${CC}"; then
|
|
echo "Compiler version:"
|
|
"${CC}" --version 2>&1 | indent
|
|
fi
|
|
echo "Environment:"
|
|
if test -n "${CC}"; then
|
|
echo "CC=${CC}" | indent
|
|
fi
|
|
if test -n "${CFLAGS}"; then
|
|
echo "CFLAGS=${CFLAGS}" | indent
|
|
fi
|
|
echo ""
|
|
|
|
echo "##############################################################################"
|
|
echo "## Configuring build environment"
|
|
echo "##############################################################################"
|
|
|
|
echo "${CMAKE}" -DENABLE_WERROR=ON -DBUILD_EXAMPLES=ON -DBUILD_FUZZERS=ON -DUSE_STANDALONE_FUZZERS=ON -G \"${CMAKE_GENERATOR}\" ${CMAKE_OPTIONS} -S \"${SOURCE_DIR}\"
|
|
env PATH="${BUILD_PATH}" "${CMAKE}" -DENABLE_WERROR=ON -DBUILD_EXAMPLES=ON -DBUILD_FUZZERS=ON -DUSE_STANDALONE_FUZZERS=ON -G "${CMAKE_GENERATOR}" ${CMAKE_OPTIONS} -S "${SOURCE_DIR}"
|
|
|
|
echo ""
|
|
echo "##############################################################################"
|
|
echo "## Building libgit2"
|
|
echo "##############################################################################"
|
|
|
|
# Determine parallelism; newer cmake supports `--build --parallel` but
|
|
# we cannot yet rely on that.
|
|
if [ "${CMAKE_GENERATOR}" = "Unix Makefiles" -a "${CORES}" != "" -a "${CMAKE_BUILD_OPTIONS}" = "" ]; then
|
|
BUILDER=(make -j ${CORES})
|
|
else
|
|
BUILDER=("${CMAKE}" --build . ${CMAKE_BUILD_OPTIONS})
|
|
fi
|
|
|
|
echo "${BUILDER[@]}"
|
|
env PATH="${BUILD_PATH}" "${BUILDER[@]}"
|