xref: /aosp_15_r20/external/jsoncpp/.travis_scripts/meson_builder.sh (revision 4484440890e2bc6e07362b4feaf15601abfe0071)
1*44844408SAndroid Build Coastguard Worker#!/usr/bin/env sh
2*44844408SAndroid Build Coastguard Worker# This script can be used on the command line directly to configure several
3*44844408SAndroid Build Coastguard Worker# different build environments.
4*44844408SAndroid Build Coastguard Worker# This is called by `.travis.yml` via Travis CI.
5*44844408SAndroid Build Coastguard Worker# Travis supplies $TRAVIS_OS_NAME.
6*44844408SAndroid Build Coastguard Worker#  http://docs.travis-ci.com/user/multi-os/
7*44844408SAndroid Build Coastguard Worker# Our .travis.yml also defines:
8*44844408SAndroid Build Coastguard Worker
9*44844408SAndroid Build Coastguard Worker#   - BUILD_TYPE=release/debug
10*44844408SAndroid Build Coastguard Worker#   - LIB_TYPE=static/shared
11*44844408SAndroid Build Coastguard Worker
12*44844408SAndroid Build Coastguard Workerenv_set=1
13*44844408SAndroid Build Coastguard Workerif ${BUILD_TYPE+false}; then
14*44844408SAndroid Build Coastguard Worker  echo "BUILD_TYPE not set in environment."
15*44844408SAndroid Build Coastguard Worker  env_set=0
16*44844408SAndroid Build Coastguard Workerfi
17*44844408SAndroid Build Coastguard Workerif ${LIB_TYPE+false}; then
18*44844408SAndroid Build Coastguard Worker  echo "LIB_TYPE not set in environment."
19*44844408SAndroid Build Coastguard Worker  env_set=0
20*44844408SAndroid Build Coastguard Workerfi
21*44844408SAndroid Build Coastguard Workerif ${CXX+false}; then
22*44844408SAndroid Build Coastguard Worker  echo "CXX not set in environment."
23*44844408SAndroid Build Coastguard Worker  env_set=0
24*44844408SAndroid Build Coastguard Workerfi
25*44844408SAndroid Build Coastguard Worker
26*44844408SAndroid Build Coastguard Worker
27*44844408SAndroid Build Coastguard Workerif [ ${env_set} -eq 0 ]; then
28*44844408SAndroid Build Coastguard Worker  echo "USAGE:  CXX=$(which clang++)  BUILD_TYPE=[release|debug] LIB_TYPE=[static|shared] $0"
29*44844408SAndroid Build Coastguard Worker  echo ""
30*44844408SAndroid Build Coastguard Worker  echo "Examples:"
31*44844408SAndroid Build Coastguard Worker  echo "           CXX=$(which clang++) BUILD_TYPE=release LIB_TYPE=shared DESTDIR=/tmp/meson_json_cpp $0"
32*44844408SAndroid Build Coastguard Worker  echo "           CXX=$(which clang++) BUILD_TYPE=debug   LIB_TYPE=shared DESTDIR=/tmp/meson_json_cpp $0"
33*44844408SAndroid Build Coastguard Worker  echo "           CXX=$(which clang++) BUILD_TYPE=release LIB_TYPE=static DESTDIR=/tmp/meson_json_cpp $0"
34*44844408SAndroid Build Coastguard Worker  echo "           CXX=$(which clang++) BUILD_TYPE=debug   LIB_TYPE=static DESTDIR=/tmp/meson_json_cpp $0"
35*44844408SAndroid Build Coastguard Worker
36*44844408SAndroid Build Coastguard Worker  echo "           CXX=$(which g++)     BUILD_TYPE=release LIB_TYPE=shared DESTDIR=/tmp/meson_json_cpp $0"
37*44844408SAndroid Build Coastguard Worker  echo "           CXX=$(which g++)     BUILD_TYPE=debug   LIB_TYPE=shared DESTDIR=/tmp/meson_json_cpp $0"
38*44844408SAndroid Build Coastguard Worker  echo "           CXX=$(which g++)     BUILD_TYPE=release LIB_TYPE=static DESTDIR=/tmp/meson_json_cpp $0"
39*44844408SAndroid Build Coastguard Worker  echo "           CXX=$(which g++)     BUILD_TYPE=debug   LIB_TYPE=static DESTDIR=/tmp/meson_json_cpp $0"
40*44844408SAndroid Build Coastguard Worker
41*44844408SAndroid Build Coastguard Worker  exit -1
42*44844408SAndroid Build Coastguard Workerfi
43*44844408SAndroid Build Coastguard Worker
44*44844408SAndroid Build Coastguard Workerif ${DESTDIR+false}; then
45*44844408SAndroid Build Coastguard Worker  DESTDIR="/usr/local"
46*44844408SAndroid Build Coastguard Workerfi
47*44844408SAndroid Build Coastguard Worker
48*44844408SAndroid Build Coastguard Worker# -e: fail on error
49*44844408SAndroid Build Coastguard Worker# -v: show commands
50*44844408SAndroid Build Coastguard Worker# -x: show expanded commands
51*44844408SAndroid Build Coastguard Workerset -vex
52*44844408SAndroid Build Coastguard Worker
53*44844408SAndroid Build Coastguard Worker
54*44844408SAndroid Build Coastguard Workerenv | sort
55*44844408SAndroid Build Coastguard Worker
56*44844408SAndroid Build Coastguard Workerwhich python3
57*44844408SAndroid Build Coastguard Workerwhich meson
58*44844408SAndroid Build Coastguard Workerwhich ninja
59*44844408SAndroid Build Coastguard Workerecho ${CXX}
60*44844408SAndroid Build Coastguard Worker${CXX} --version
61*44844408SAndroid Build Coastguard Workerpython3 --version
62*44844408SAndroid Build Coastguard Workermeson --version
63*44844408SAndroid Build Coastguard Workerninja --version
64*44844408SAndroid Build Coastguard Worker_COMPILER_NAME=`basename ${CXX}`
65*44844408SAndroid Build Coastguard Worker_BUILD_DIR_NAME="build-${BUILD_TYPE}_${LIB_TYPE}_${_COMPILER_NAME}"
66*44844408SAndroid Build Coastguard Worker
67*44844408SAndroid Build Coastguard Worker#./.travis_scripts/run-clang-format.sh
68*44844408SAndroid Build Coastguard Workermeson --fatal-meson-warnings --werror --buildtype ${BUILD_TYPE} --default-library ${LIB_TYPE} . "${_BUILD_DIR_NAME}"
69*44844408SAndroid Build Coastguard Workerninja -v -j 2 -C "${_BUILD_DIR_NAME}"
70*44844408SAndroid Build Coastguard Worker
71*44844408SAndroid Build Coastguard Workercd "${_BUILD_DIR_NAME}"
72*44844408SAndroid Build Coastguard Worker  meson test --no-rebuild --print-errorlogs
73*44844408SAndroid Build Coastguard Worker
74*44844408SAndroid Build Coastguard Worker  if [ "${DESTDIR}" != "/usr/local" ]; then
75*44844408SAndroid Build Coastguard Worker     ninja install
76*44844408SAndroid Build Coastguard Worker  fi
77*44844408SAndroid Build Coastguard Workercd -
78*44844408SAndroid Build Coastguard Worker
79*44844408SAndroid Build Coastguard Workerif ${CLEANUP+false}; then
80*44844408SAndroid Build Coastguard Worker  echo "Skipping cleanup:  build directory will persist."
81*44844408SAndroid Build Coastguard Workerelse
82*44844408SAndroid Build Coastguard Worker  rm -r "${_BUILD_DIR_NAME}"
83*44844408SAndroid Build Coastguard Workerfi
84