Was supposed to be a linux distribution, now just a collection of build scripts for packages on top of (ideally) any distribution.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.9 KiB

compile_cmake() {
local olddir="$PWD"
local builddir='build'
local noinstall=false
local OPTIND=1
local opt
while getopts 'b:I' opt; do case "$opt" in
b) local builddir="$OPTARG" ;;
I) local noinstall=true ;;
esac; done
shift $(expr $OPTIND - 1)
[ "$#" -ge 1 ] && [ "$1" = '--' ] && shift || true
local generator='Unix Makefiles'
if command -v ninja > /dev/null 2> /dev/null; then
local generator='Ninja'
fi
case "$generator" in
'Unix Makefiles') local make='make' ;;
'Ninja') local make="ninja $NINJAFLAGS" ;;
esac
# https://github.com/Kitware/CMake/blob/master/Modules/GNUInstallDirs.cmake
mkdir -p "$builddir"; cd "$builddir"
cmake "$olddir" -G "$generator" \
-DCMAKE_AR="$(command -v ${AR:-ar})" \
-DCMAKE_NM="$(command -v ${NM:-nm})" \
-DCMAKE_RANLIB="$(command -v ${RANLIB:-ranlib})" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX="/$dir_prefix" \
-DCMAKE_INSTALL_FULL_BINDIR="/$dir_prefix/$dir_bin" \
-DCMAKE_INSTALL_FULL_SBINDIR="/$dir_prefix/$dir_sbin" \
-DCMAKE_INSTALL_FULL_LIBEXECDIR="/$dir_prefix/$dir_libexec" \
-DCMAKE_INSTALL_FULL_SYSCONFDIR="/$dir_prefix/$dir_sysconf" \
-DCMAKE_INSTALL_FULL_LOCALSTATEDIR="/$dir_prefix/$dir_localstate" \
-DCMAKE_INSTALL_FULL_LIBDIR="/$dir_prefix/$dir_lib" \
-DCMAKE_INSTALL_FULL_INCLUDEDIR="/$dir_prefix/$dir_include" \
-DCMAKE_INSTALL_FULL_DATADIR="/$dir_prefix/$dir_data" \
-DCMAKE_INSTALL_FULL_INFODIR="/$dir_prefix/$dir_info" \
-DCMAKE_INSTALL_FULL_LOCALEDIR="/$dir_prefix/$dir_locale" \
-DCMAKE_INSTALL_FULL_MANDIR="/$dir_prefix/$dir_man" \
-DCMAKE_INSTALL_FULL_DOCDIR="/$dir_prefix/$dir_doc/$name" \
"$@"
$make
if [ "$noinstall" = false ]; then
DESTDIR="$dir_install" $make install
fi
cd "$olddir"
}