termux_step_configure_cmake() { termux_setup_cmake local BUILD_TYPE=MinSizeRel test -n "$TERMUX_DEBUG" && BUILD_TYPE=Debug local CMAKE_PROC=$TERMUX_ARCH test $CMAKE_PROC == "arm" && CMAKE_PROC='armv7-a' local MAKE_PROGRAM_PATH if [ $TERMUX_CMAKE_BUILD = Ninja ]; then termux_setup_ninja MAKE_PROGRAM_PATH=$(which ninja) else MAKE_PROGRAM_PATH=$(which make) fi CXXFLAGS+=" -fno-addrsig" CFLAGS+=" -fno-addrsig" local CMAKE_ADDITIONAL_ARGS=() if [ -z "$TERMUX_ON_DEVICE_BUILD" ]; then CXXFLAGS+=" --target=$CCTERMUX_HOST_PLATFORM" CFLAGS+=" --target=$CCTERMUX_HOST_PLATFORM" LDFLAGS+=" --target=$CCTERMUX_HOST_PLATFORM" CMAKE_ADDITIONAL_ARGS+=("-DCMAKE_CROSSCOMPILING=True") CMAKE_ADDITIONAL_ARGS+=("-DCMAKE_LINKER=$TERMUX_STANDALONE_TOOLCHAIN/bin/$LD $LDFLAGS") CMAKE_ADDITIONAL_ARGS+=("-DCMAKE_SYSTEM_NAME=Android") CMAKE_ADDITIONAL_ARGS+=("-DCMAKE_SYSTEM_VERSION=$TERMUX_PKG_API_LEVEL") CMAKE_ADDITIONAL_ARGS+=("-DCMAKE_SYSTEM_PROCESSOR=$CMAKE_PROC") CMAKE_ADDITIONAL_ARGS+=("-DCMAKE_ANDROID_STANDALONE_TOOLCHAIN=$TERMUX_STANDALONE_TOOLCHAIN") else CMAKE_ADDITIONAL_ARGS+=("-DCMAKE_LINKER=$(which $LD) $LDFLAGS") fi # XXX: CMAKE_{AR,RANLIB} needed for at least jsoncpp build to not # pick up cross compiled binutils tool in $TERMUX_PREFIX/bin: cmake -G "$TERMUX_CMAKE_BUILD" "$TERMUX_PKG_SRCDIR" \ -DCMAKE_AR="$(which $AR)" \ -DCMAKE_UNAME="$(which uname)" \ -DCMAKE_RANLIB="$(which $RANLIB)" \ -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ -DCMAKE_C_FLAGS="$CFLAGS $CPPFLAGS" \ -DCMAKE_CXX_FLAGS="$CXXFLAGS $CPPFLAGS" \ -DCMAKE_FIND_ROOT_PATH=$TERMUX_PREFIX \ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \ -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \ -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \ -DCMAKE_INSTALL_PREFIX=$TERMUX_PREFIX \ -DCMAKE_MAKE_PROGRAM=$MAKE_PROGRAM_PATH \ -DCMAKE_SKIP_INSTALL_RPATH=ON \ -DCMAKE_USE_SYSTEM_LIBRARIES=True \ -DDOXYGEN_EXECUTABLE= \ -DBUILD_TESTING=OFF \ "${CMAKE_ADDITIONAL_ARGS[@]}" \ $TERMUX_PKG_EXTRA_CONFIGURE_ARGS }