termux-packages/packages/neovim/custom-bin/cmake
vhqtvn d220576dfb
fix some non-building packages (#7058)
* fix ccache building failed due to sse

* gogs require go-bindata to be built

* mariadb's cmake need to change END to ENDIF

* fix neovim building due to gitsubmodule usage

* php-redis: add blacklist from php dep

* rlwrap update to new version

* stfl disable perl and ruby

* util-linux comment out shm & sem support

* weechat disable ruby

* tor building need glob
2021-06-27 17:33:45 +03:00

78 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
if [ -z $TERMUX_ORIGINAL_CMAKE ]; then
SCRIPTPATH="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
TERMUX_ORIGINAL_CMAKE="$SCRIPTPATH/cmake.orig"
fi
# Need to move --build argument to first due to following error:
# CMake Error: Unknown argument --build
# CMake Error: Run 'cmake --help' for all supported options.
HAS_BUILD=false
for arg in "$@"; do
if [ "$arg" == "--build" ]; then
HAS_BUILD=true
fi
done
if ! $HAS_BUILD; then
$TERMUX_ORIGINAL_CMAKE "$@"
exit $?
fi
BUILD_FLAG=false
BUILD_VALUE=
NEW_ARGS=()
UPDATE_CMAKE_CACHE=()
for arg in "$@"
do
if [ "$arg" == "--build" ]; then
BUILD_FLAG=true
else
if $BUILD_FLAG; then
BUILD_VALUE="$arg"
BUILD_FLAG=false
else
case "$arg" in
-D*=*)
UPDATE_CMAKE_CACHE+=("${arg:2}")
;;
*)
NEW_ARGS+=("$arg")
;;
esac
fi
fi
done
if [ ! -z $BUILD_VALUE ]; then
NEW_ARGS=(--build "$BUILD_VALUE" "${NEW_ARGS[@]}")
fi
function update_cmake_cache() {
[ ${#UPDATE_CMAKE_CACHE[@]} -eq 0 ] && return
[ -z $BUILD_VALUE ] && return
if [ -f "$BUILD_VALUE/CMakeCache.txt" ]; then
rm -rf "$BUILD_VALUE/.tmp-orig.CMakeCache.tmp"
cp "$BUILD_VALUE/CMakeCache.txt" "$BUILD_VALUE/.tmp-orig.CMakeCache.tmp"
cat "$BUILD_VALUE/.tmp-orig.CMakeCache.tmp" | sed -E "$(python3 -c 'import os, sys
def z(x): return x.replace("/","\\/")
for a in sys.argv[2:]: print("-e s/^"+z(a.split("=",1)[0])+":(.*)=.*$/"+z(a.split("=",1)[0])+":\\1="+z(a.split("=",1)[1])+"/g", end=" ")
' -- "${UPDATE_CMAKE_CACHE[@]}")" > "$BUILD_VALUE/CMakeCache.txt"
fi
}
function undo_update_cmake_cache() {
[ ${#UPDATE_CMAKE_CACHE[@]} -eq 0 ] && return
[ -z $BUILD_VALUE ] && return
[ ! -f "$BUILD_VALUE/.tmp-orig.CMakeCache.tmp" ] && return
mv -f "$BUILD_VALUE/.tmp-orig.CMakeCache.tmp" "$BUILD_VALUE/CMakeCache.txt"
}
update_cmake_cache
trap undo_update_cmake_cache EXIT
$TERMUX_ORIGINAL_CMAKE "${NEW_ARGS[@]}"