]> git.proxmox.com Git - ceph.git/blame - ceph/do_cmake.sh
backport compat fix for python 3.10+ PEP 620
[ceph.git] / ceph / do_cmake.sh
CommitLineData
81eedcae 1#!/usr/bin/env bash
9f95a23c
TL
2set -ex
3
f67539c2
TL
4if [ -d .git ]; then
5 git submodule update --init --recursive
6fi
9f95a23c
TL
7
8: ${BUILD_DIR:=build}
9: ${CEPH_GIT_DIR:=..}
10
11if [ -e $BUILD_DIR ]; then
12 echo "'$BUILD_DIR' dir already exists; either rm -rf '$BUILD_DIR' and re-run, or set BUILD_DIR env var to a different directory name"
7c673cae
FG
13 exit 1
14fi
31f18b77 15
20effc67
TL
16PYBUILD="3"
17ARGS="-GNinja"
9f95a23c
TL
18if [ -r /etc/os-release ]; then
19 source /etc/os-release
20 case "$ID" in
21 fedora)
20effc67
TL
22 if [ "$VERSION_ID" -ge "35" ] ; then
23 PYBUILD="3.10"
adb31ebb 24 elif [ "$VERSION_ID" -ge "33" ] ; then
20effc67
TL
25 PYBUILD="3.9"
26 elif [ "$VERSION_ID" -ge "32" ] ; then
27 PYBUILD="3.8"
28 else
29 PYBUILD="3.7"
9f95a23c
TL
30 fi
31 ;;
32 rhel|centos)
33 MAJOR_VER=$(echo "$VERSION_ID" | sed -e 's/\..*$//')
20effc67
TL
34 if [ "$MAJOR_VER" -ge "9" ] ; then
35 PYBUILD="3.9"
36 elif [ "$MAJOR_VER" -ge "8" ] ; then
9f95a23c
TL
37 PYBUILD="3.6"
38 fi
39 ;;
40 opensuse*|suse|sles)
41 PYBUILD="3"
42 ARGS+=" -DWITH_RADOSGW_AMQP_ENDPOINT=OFF"
43 ARGS+=" -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF"
44 ;;
45 esac
46elif [ "$(uname)" == FreeBSD ] ; then
47 PYBUILD="3"
48 ARGS+=" -DWITH_RADOSGW_AMQP_ENDPOINT=OFF"
49 ARGS+=" -DWITH_RADOSGW_KAFKA_ENDPOINT=OFF"
50else
51 echo Unknown release
52 exit 1
53fi
54
20effc67 55ARGS+=" -DWITH_PYTHON3=${PYBUILD}"
11fdf7f2
TL
56
57if type ccache > /dev/null 2>&1 ; then
31f18b77 58 echo "enabling ccache"
9f95a23c 59 ARGS+=" -DWITH_CCACHE=ON"
11fdf7f2 60fi
31f18b77 61
9f95a23c
TL
62mkdir $BUILD_DIR
63cd $BUILD_DIR
11fdf7f2
TL
64if type cmake3 > /dev/null 2>&1 ; then
65 CMAKE=cmake3
66else
67 CMAKE=cmake
68fi
9f95a23c
TL
69${CMAKE} $ARGS "$@" $CEPH_GIT_DIR || exit 1
70set +x
7c673cae
FG
71
72# minimal config to find plugins
73cat <<EOF > ceph.conf
9f95a23c 74[global]
7c673cae
FG
75plugin dir = lib
76erasure code dir = lib
77EOF
78
7c673cae 79echo done.
9f95a23c 80
f67539c2 81if [[ ! "$ARGS $@" =~ "-DCMAKE_BUILD_TYPE" ]]; then
9f95a23c 82 cat <<EOF
11fdf7f2
TL
83
84****
85WARNING: do_cmake.sh now creates debug builds by default. Performance
86may be severely affected. Please use -DCMAKE_BUILD_TYPE=RelWithDebInfo
87if a performance sensitive build is required.
88****
89EOF
9f95a23c
TL
90fi
91