]>
Commit | Line | Data |
---|---|---|
6c7cee42 RD |
1 | #!/usr/bin/env bash |
2 | # | |
3 | # Environment variables: | |
4 | # | |
5 | # SOURCE_DIR: Set to the directory of the libgit2 source (optional) | |
6 | # If not set, it will be derived relative to this script. | |
7 | ||
8 | set -e | |
9 | ||
10 | SOURCE_DIR=${SOURCE_DIR:-$( cd "$( dirname "${BASH_SOURCE[0]}" )" && dirname $( pwd ) )} | |
11 | BUILD_DIR=$(pwd) | |
22a2d3d5 UG |
12 | BUILD_PATH=${BUILD_PATH:=$PATH} |
13 | CMAKE=$(which cmake) | |
14 | CMAKE_GENERATOR=${CMAKE_GENERATOR:-Unix Makefiles} | |
15 | ||
16 | if [[ "$(uname -s)" == MINGW* ]]; then | |
17 | BUILD_PATH=$(cygpath "$BUILD_PATH") | |
18 | fi | |
6c7cee42 RD |
19 | |
20 | indent() { sed "s/^/ /"; } | |
21 | ||
22 | echo "Source directory: ${SOURCE_DIR}" | |
23 | echo "Build directory: ${BUILD_DIR}" | |
24 | echo "" | |
ac3d33df JK |
25 | |
26 | if [ "$(uname -s)" = "Darwin" ]; then | |
27 | echo "macOS version:" | |
28 | sw_vers | indent | |
29 | fi | |
30 | ||
31 | if [ -f "/etc/debian_version" ]; then | |
32 | echo "Debian version:" | |
22a2d3d5 | 33 | (source /etc/lsb-release && echo "${DISTRIB_DESCRIPTION}") | indent |
ac3d33df JK |
34 | fi |
35 | ||
c25aa7cd PP |
36 | CORES=$(getconf _NPROCESSORS_ONLN || true) |
37 | echo "Number of cores: ${CORES:-(Unknown)}" | |
38 | ||
ac3d33df | 39 | echo "Kernel version:" |
6c7cee42 | 40 | uname -a 2>&1 | indent |
ac3d33df | 41 | |
6c7cee42 | 42 | echo "CMake version:" |
22a2d3d5 UG |
43 | env PATH="${BUILD_PATH}" "${CMAKE}" --version 2>&1 | indent |
44 | ||
45 | if test -n "${CC}"; then | |
46 | echo "Compiler version:" | |
47 | "${CC}" --version 2>&1 | indent | |
48 | fi | |
49 | echo "Environment:" | |
50 | if test -n "${CC}"; then | |
51 | echo "CC=${CC}" | indent | |
52 | fi | |
53 | if test -n "${CFLAGS}"; then | |
54 | echo "CFLAGS=${CFLAGS}" | indent | |
55 | fi | |
6c7cee42 RD |
56 | echo "" |
57 | ||
58 | echo "##############################################################################" | |
59 | echo "## Configuring build environment" | |
60 | echo "##############################################################################" | |
61 | ||
ad5611d8 | 62 | echo "${CMAKE}" -DENABLE_WERROR=ON -DBUILD_EXAMPLES=ON -DBUILD_FUZZERS=ON -DUSE_STANDALONE_FUZZERS=ON -G \"${CMAKE_GENERATOR}\" ${CMAKE_OPTIONS} -S \"${SOURCE_DIR}\" |
22a2d3d5 | 63 | 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}" |
6c7cee42 RD |
64 | |
65 | echo "" | |
66 | echo "##############################################################################" | |
67 | echo "## Building libgit2" | |
68 | echo "##############################################################################" | |
69 | ||
c25aa7cd PP |
70 | # Determine parallelism; newer cmake supports `--build --parallel` but |
71 | # we cannot yet rely on that. | |
ad5611d8 | 72 | if [ "${CMAKE_GENERATOR}" = "Unix Makefiles" -a "${CORES}" != "" -a "${CMAKE_BUILD_OPTIONS}" = "" ]; then |
c25aa7cd PP |
73 | BUILDER=(make -j ${CORES}) |
74 | else | |
ad5611d8 | 75 | BUILDER=("${CMAKE}" --build . ${CMAKE_BUILD_OPTIONS}) |
c25aa7cd PP |
76 | fi |
77 | ||
ad5611d8 | 78 | echo "${BUILDER[@]}" |
c25aa7cd | 79 | env PATH="${BUILD_PATH}" "${BUILDER[@]}" |