From b6423d2d81ca0867570bf8ff021c30205cb7fd57 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Tue, 4 Nov 2025 09:58:12 +0800 Subject: Fixed build files for Termux. --- CMakeLists.txt | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 613019e..2d155b1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,7 +44,7 @@ if (LUA_LIBRARIES MATCHES "LUA_LIBRARIES-NOTFOUND") endif() else () message(STATUS "Lua: using information from luarocks") -endif() +endif() message(STATUS "Lua: " ${LUA}) message(STATUS "Lua include: " ${LUA_INCLUDE_DIR}) @@ -54,6 +54,24 @@ enable_language(CXX) include_directories(src src/3rdParty ${LUA_INCLUDE_DIR}) add_definitions(-std=c++17 -O3 -fPIC) +# Detect Android Termux environment +# Termux typically has ANDROID_ROOT environment variable set and PREFIX points to Termux directory +set(IS_TERMUX FALSE) +if (DEFINED ENV{ANDROID_ROOT}) + # Check if PREFIX environment variable points to Termux directory + if (DEFINED ENV{PREFIX}) + if ("$ENV{PREFIX}" MATCHES "com.termux") + set(IS_TERMUX TRUE) + message(STATUS "Detected Android Termux environment (via PREFIX: $ENV{PREFIX})") + endif() + endif() + # Alternative check: verify if Termux installation path exists + if (NOT IS_TERMUX AND EXISTS "/data/data/com.termux/files/usr") + set(IS_TERMUX TRUE) + message(STATUS "Detected Android Termux environment (via filesystem check)") + endif() +endif() + if (APPLE) add_compile_options(-Wno-deprecated-declarations) endif () @@ -70,6 +88,11 @@ set_target_properties(libyue PROPERTIES PREFIX "") set_target_properties(libyue PROPERTIES OUTPUT_NAME "yue") target_link_libraries(libyue ${LUA_LIBRARIES}) +# Add YUE_NO_WATCHER macro for Termux environment +if (IS_TERMUX) + target_compile_definitions(libyue PRIVATE YUE_NO_WATCHER) +endif() + add_executable(yue src/yuescript/ast.cpp src/yuescript/parser.cpp @@ -154,6 +177,11 @@ else () target_compile_options(yue PRIVATE -Wall -Wno-long-long -fPIC) endif() +# Add YUE_NO_WATCHER macro for Termux environment +if (IS_TERMUX) + target_compile_definitions(yue PRIVATE YUE_NO_WATCHER) +endif() + if (${CMAKE_BUILD_TYPE} MATCHES "Debug") target_compile_definitions(yue PRIVATE DEBUG) elseif (${CMAKE_BUILD_TYPE} MATCHES "Release") @@ -169,9 +197,9 @@ elseif (NOT (${CMAKE_SYSTEM_NAME} MATCHES "Haiku") AND NOT WIN32) else () target_link_libraries(yue PRIVATE ${LUA_LIBRARIES}) endif() - + if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - target_link_options(yue PRIVATE -lstdc++fs -ldl) + target_link_options(yue PRIVATE -ldl) endif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") install(CODE "") -- cgit v1.2.3-55-g6feb