File: configure

package info (click to toggle)
brewtarget 4.2.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 35,468 kB
  • sloc: cpp: 56,958; xml: 19,031; python: 1,266; sh: 183; makefile: 11
file content (109 lines) | stat: -rwxr-xr-x 3,732 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#!/bin/bash
#----------------------------------------------------------------------------------------------------------------------
# configure is part of Brewtarget, and is copyright the following authors 2009-2024:
#   • Matt Young <mfsy@yahoo.com>
#   • Philip Greggory Lee <rocketman768@gmail.com>
#
# Brewtarget is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
# version.
#
# Brewtarget is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with this program.  If not, see
# <http://www.gnu.org/licenses/>.
#----------------------------------------------------------------------------------------------------------------------

#
# This script can be used to help set up the build directory for doing CMake builds.
#
# ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
# NB: Meson and the `bt` build tool Python script are now the primary way of building and packaging the software.  You
#     can also still CMake to compile the product and install it locally, but we no longer support using CMake to do
#     packaging.
# ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
#

# Stop when something failed
set -e

PREFIX=""
CMAKEOPTIONS="-DDO_RELEASE_BUILD=ON"

function printUsageAndExit {
   echo -e "Usage\n" \
           "   Options:\n" \
           "      -m T   Set mac arch (\"i386;ppc\" for universal binary)\n" \
           "      -p T   Set prefix to T.\n" \
           "      -t     Update translation files (*.ts).\n" \
           "      -v     Verbose compilation.\n" \
           "      -h     Print this help message.\n"
   exit 0
}

# Ensures cmake exists.
function findCMake {

   if [ -z $(which cmake) ]
   then
      echo "ERROR: cmake not installed"
      exit 1
   fi

}

findCMake

# Get options.
while getopts "m:p:t:h:v" option
do
   case $option in
      m) CMAKEOPTIONS="$CMAKEOPTIONS -DCMAKE_OSX_ARCHITECTURES=$OPTARG";;
      p) PREFIX="$OPTARG";;
      t) CMAKEOPTIONS="$CMAKEOPTIONS -DUPDATE_TRANSLATIONS=ON";;
      v) CMAKEOPTIONS="$CMAKEOPTIONS -DCMAKE_VERBOSE_MAKEFILE=TRUE";;
      h) printUsageAndExit ;;
   esac
done

# Cmake defaults CMAKE_INSTALL_PREFIX=/usr/local.
# This is not good for debian, so try to detect debian/ubuntu.
if [ `uname` == 'Linux' ]
then
   if grep -q -s -i -E -e 'ubuntu|debian' /etc/issue
   then
     PREFIX=/usr
   fi
fi

echo "Prefix: $PREFIX"

# If we have a prefix...
if [ -n "$PREFIX" ]
then
   #...define the prefix.
   CMAKEOPTIONS="$CMAKEOPTIONS -DCMAKE_INSTALL_PREFIX=$PREFIX"
fi

echo "CMAKEOPTIONS: $CMAKEOPTIONS"

# When a git repository is cloned, the submodules don't get cloned until you specifically ask for it
if [ ! -d third-party ]
then
   echo "Pulling in submodules"
   mkdir -p third-party
   git submodule init
   git submodule update
fi

# Create dir only if needed
mkdir -p build

# Do all the building in build/
cd build/
cmake $CMAKEOPTIONS ../

# Tell the user what to do (if everything went well...)
echo -e "\n\n\tNow, cd to build/ and run \"make\" (or \"cmake --build .\" on Windows)\n"