Skip to content
This repository was archived by the owner on Oct 10, 2022. It is now read-only.

Commit a1736a7

Browse files
authored
Use ninja instead of make in docker builds (#91)
* Use ninja instead of make in docker builds * Correctly use environment variables with ninja * remove argument from travis build scripts * Restore -j option to allow manual override of jobs number
1 parent 4e45221 commit a1736a7

10 files changed

Lines changed: 21 additions & 18 deletions

File tree

scripts/travis/before_install

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
1616
fi
1717
if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
1818
bash support/osx/install-deps
19+
brew install ninja
1920
fi
2021
echo "export GIT_COMMIT_DATE=\"$(git show -s --format='%cd' --date=short | tr -d '-')\"" > ${TRAVIS_BUILD_DIR}/git_commit_date.sh
2122
cat ${TRAVIS_BUILD_DIR}/git_commit_date.sh

scripts/travis/ci-build

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ fi
1010

1111
if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
1212
docker run --privileged -v $TRAVIS_BUILD_DIR:/code -v $TRAVIS_BUILD_DIR/build:/build --entrypoint ${CMAKE_BINARY} --name "planetary_imager_cmake" ${DOCKER_IMAGE} \
13-
-DPACKAGE_VERSION_SUFFIX="_${GIT_COMMIT_DATE}_ci${TRAVIS_BUILD_NUMBER}" -DCMAKE_BUILD_TYPE=Debug -DENABLE_PLANETARYIMAGER_TESTING=${ENABLE_PLANETARYIMAGER_TESTING} /code
13+
-G Ninja -DPACKAGE_VERSION_SUFFIX="_${GIT_COMMIT_DATE}_ci${TRAVIS_BUILD_NUMBER}" -DCMAKE_BUILD_TYPE=Debug -DENABLE_PLANETARYIMAGER_TESTING=${ENABLE_PLANETARYIMAGER_TESTING} /code
1414
fi
1515

1616
if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
1717
mkdir "$TRAVIS_BUILD_DIR/build"
1818
cd "$TRAVIS_BUILD_DIR/build"
1919
bash "$TRAVIS_BUILD_DIR/support/osx/cmake" -DCPACK_GENERATOR=DragNDrop -DPACKAGE_SYSTEM_NAME=MacOSX \
20-
-DPACKAGE_VERSION_SUFFIX="_${GIT_COMMIT_DATE}_ci${TRAVIS_BUILD_NUMBER}" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_PLANETARYIMAGER_TESTING=${ENABLE_PLANETARYIMAGER_TESTING} \
20+
-G Ninja -DPACKAGE_VERSION_SUFFIX="_${GIT_COMMIT_DATE}_ci${TRAVIS_BUILD_NUMBER}" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_PLANETARYIMAGER_TESTING=${ENABLE_PLANETARYIMAGER_TESTING} \
2121
"$TRAVIS_BUILD_DIR"
22-
make -j4
22+
ninja
2323
fi
2424

scripts/travis/package

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ mkdir -p "$TRAVIS_BUILD_DIR/packages"
66
if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
77
source ~/virtualenv/python3.6/bin/activate
88
pip install pyaml
9-
./support/docker/docker.py package -j 4 -d "${TRAVIS_BUILD_DIR}/packages" --stderr -D PACKAGE_VERSION_SUFFIX="_${GIT_COMMIT_DATE}_ci${TRAVIS_BUILD_NUMBER}" --privileged -i ${DOCKER_IMAGE}
9+
./support/docker/docker.py package -d "${TRAVIS_BUILD_DIR}/packages" --stderr -D PACKAGE_VERSION_SUFFIX="_${GIT_COMMIT_DATE}_ci${TRAVIS_BUILD_NUMBER}" --privileged -i ${DOCKER_IMAGE}
1010
fi
1111

1212
if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
1313
cd "$TRAVIS_BUILD_DIR/build"
14-
make package -j4
14+
ninja package
1515
cp -av *.dmg "$TRAVIS_BUILD_DIR/packages"
1616
fi

scripts/travis/tests

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ set -e
33

44
if [ "${TRAVIS_OS_NAME}" == "${BUILD_OS_FAMILY}" ] && [ "${SKIP_TESTS}" == "0" ]; then
55
if [ "$TRAVIS_OS_NAME" == 'linux' ]; then
6-
docker run --privileged -v $TRAVIS_BUILD_DIR:/code -v $TRAVIS_BUILD_DIR/build:/build --entrypoint make --name "planetary_imager_build" ${DOCKER_IMAGE} build_tests -j4
7-
docker run --privileged -v $TRAVIS_BUILD_DIR:/code -v $TRAVIS_BUILD_DIR/build:/build --entrypoint make --name "planetary_imager_tests" ${DOCKER_IMAGE} test CTEST_OUTPUT_ON_FAILURE=1 GTEST_OUTPUT=xml:/build/tests_result/
6+
docker run --privileged -v $TRAVIS_BUILD_DIR:/code -v $TRAVIS_BUILD_DIR/build:/build --entrypoint ninja --name "planetary_imager_build" ${DOCKER_IMAGE} build_tests
7+
docker run --privileged -v $TRAVIS_BUILD_DIR:/code -v $TRAVIS_BUILD_DIR/build:/build --entrypoint ninja --name "planetary_imager_tests" -e GTEST_OUTPUT=xml:/build/tests_result -e CTEST_OUTPUT_ON_FAILURE=1 ${DOCKER_IMAGE} test
88
fi
99

1010
if [ "$TRAVIS_OS_NAME" == 'osx' ]; then
1111
cd "$TRAVIS_BUILD_DIR/build"
12-
make build_tests -j4
13-
make test GTEST_OUTPUT=xml:$TRAVIS_BUILD_DIR/build/tests_result/ CTEST_OUTPUT_ON_FAILURE=1
12+
ninja build_tests
13+
GTEST_OUTPUT=xml:$TRAVIS_BUILD_DIR/build/tests_result/ CTEST_OUTPUT_ON_FAILURE=1 ninja test
1414
fi
1515
fi
1616

support/docker/docker.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ def generate_travis(args):
113113
parser_package.add_argument('-d', '--dest', required=True, help='Destination directory (i.e. where to put packages). Use `none` if you want to skip exporting packages.')
114114
parser_package.add_argument('-b', '--build-directory', required=False, help='Bind build directory on docker')
115115
parser_package.add_argument('--cmake-build-type', default='RelWithDebInfo', help='CMAKE_BUILD_TYPE')
116-
parser_package.add_argument('-j', '--make-jobs', default=1, help='Make parallel jobs')
116+
parser_package.add_argument('-j', '--make-jobs', help='Make parallel jobs')
117117
parser_package.add_argument('-D', '--cmake-define', action='append', default=[], help='CMake definitions to be passed to docker container (use multiple times if necessary)')
118118
parser_package.add_argument('-i', '--images-filter', action='append', default=[], help='Filter images by name (use multiple times if necessary)')
119119
parser_package.add_argument('-c', '--clean-logs', action='store_true', default=False, help='Clean logs directory')

support/docker/dockerfile.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,12 @@ def package(self, code_path, destination_path, make_jobs, cmake_defines, stderr=
6161
'--rm',
6262
'-v',
6363
'{}:/code'.format(os.path.abspath(code_path)),
64-
'-e',
65-
'MAKE_OPTS=-j{}'.format(make_jobs),
6664
]
65+
if make_jobs:
66+
cmdline.extend(['-e', 'MAKE_OPTS=-j{}'.format(make_jobs)])
67+
6768
if destination_path:
68-
cmdline.extend([
69-
'-v',
70-
'{}:/dest'.format(os.path.abspath(destination_path)),
71-
])
69+
cmdline.extend(['-v', '{}:/dest'.format(os.path.abspath(destination_path))])
7270
if privileged:
7371
cmdline.append('--privileged')
7472
if build_directory:

support/docker/files/entrypoint

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
#!/bin/bash
22

33
CMAKE_BIN="${CMAKE_BIN:-cmake}"
4-
PACKAGE_COMMAND="${PACKAGE_COMMAND:-make package}"
4+
PACKAGE_COMMAND="${PACKAGE_COMMAND:-ninja package}"
55

66
set -e
77
${CMAKE_BIN} \
8+
-G Ninja \
89
-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH} \
910
"$@" \
1011
/code
11-
make ${MAKE_OPTS} && $PACKAGE_COMMAND
12+
ninja ${MAKE_OPTS} && $PACKAGE_COMMAND
1213

1314
if [ -r package_name.cfg ]; then
1415
. package_name.cfg

support/docker/snippets/debian.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ COPY qemu-arm-static /usr/bin
33
ENV DEBIAN_FRONTEND=noninteractive
44
RUN apt-get update && apt-get install -y \
55
autoconf \
6+
ninja-build \
67
qtbase5-dev \
78
qtdeclarative5-dev \
89
build-essential \

support/docker/snippets/fedora.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ RUN yum install -y \
44
autoconf \
55
automake \
66
make \
7+
ninja-build \
78
qt5-qtbase-devel \
89
qt5-qtdeclarative-devel \
910
gcc-c++ \

support/docker/snippets/windows.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ RUN apt-get update && apt-get install -y \
44
cmake \
55
git \
66
wget \
7+
ninja-build \
78
autopoint autoconf automake bash bison bzip2 flex \
89
libgdk-pixbuf2.0-dev gettext git gperf intltool make \
910
sed libffi-dev libtool p7zip-full patch lzip \

0 commit comments

Comments
 (0)