scripts: Respect CC when using CMake

only when TERMUX_PKG_ENABLE_CLANG16_PORTING is true for now, to provide
backward compatibility and to avoid unexpected build problems.
This commit is contained in:
Tee KOBAYASHI 2023-03-29 20:06:14 +09:00 committed by xtkoba
parent 5d71311261
commit 0ead023121
3 changed files with 29 additions and 0 deletions

View File

@ -9,6 +9,14 @@ termux_step_configure_cmake() {
CMAKE_PROC=$TERMUX_ARCH
test $CMAKE_PROC == "arm" && CMAKE_PROC='armv7-a'
local CMAKE_TERMUX_TOOL_C_COMPILER=False
if [ "$TERMUX_PKG_ENABLE_CLANG16_PORTING" = "true" ]; then
local _cc
if _cc="$(command -v ${CC-})"; then
CMAKE_TERMUX_TOOL_C_COMPILER="$_cc"
fi
fi
local CMAKE_ADDITIONAL_ARGS=()
if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ]; then
CXXFLAGS+=" --target=$CCTERMUX_HOST_PLATFORM"
@ -20,6 +28,7 @@ termux_step_configure_cmake() {
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_TERMUX_TOOL_C_COMPILER=$CMAKE_TERMUX_TOOL_C_COMPILER")
CMAKE_ADDITIONAL_ARGS+=("-DCMAKE_ANDROID_STANDALONE_TOOLCHAIN=$TERMUX_STANDALONE_TOOLCHAIN")
else
CMAKE_ADDITIONAL_ARGS+=("-DCMAKE_LINKER=$(command -v $LD) $LDFLAGS")

View File

@ -0,0 +1,13 @@
--- a/share/cmake-3.26/Modules/Platform/Android/Determine-Compiler.cmake
+++ b/share/cmake-3.26/Modules/Platform/Android/Determine-Compiler.cmake
@@ -71,6 +71,10 @@
set(_ANDROID_TOOL_CXX_TOOLCHAIN_SUFFIX "")
endif()
+if(CMAKE_TERMUX_TOOL_C_COMPILER)
+ set(_ANDROID_TOOL_C_COMPILER ${CMAKE_TERMUX_TOOL_C_COMPILER})
+endif()
+
unset(_ANDROID_HOST_EXT)
macro(__android_determine_compiler lang)

View File

@ -19,6 +19,13 @@ termux_setup_cmake() {
b1dfd11d50e2dfb3d18be86ca1a369da1c1131badc14b659491dd42be1fed704
rm -Rf "$TERMUX_PKG_TMPDIR/cmake-${TERMUX_CMAKE_VERSION}-linux-x86_64"
tar xf "$TERMUX_CMAKE_TARFILE" -C "$TERMUX_PKG_TMPDIR"
shopt -s nullglob
local f
for f in "$TERMUX_SCRIPTDIR"/scripts/build/setup/cmake-*.patch; do
echo "[${FUNCNAME[0]}]: Applying $(basename "$f")"
patch --silent -p1 -d "$TERMUX_PKG_TMPDIR/cmake-${TERMUX_CMAKE_VERSION}-linux-x86_64" < "$f"
done
shopt -u nullglob
mv "$TERMUX_PKG_TMPDIR/cmake-${TERMUX_CMAKE_VERSION}-linux-x86_64" \
"$TERMUX_CMAKE_FOLDER"
fi