diff --git a/CMakePresets.json b/CMakePresets.json index 2fc3888..f9e256f 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -207,6 +207,40 @@ "description": "See descriptions of devel and arch-static-compat", "binaryDir": "$env{BUILD_DIR}/${sourceDirName}/arch-static-compat-devel" }, + { + "name": "arch-android", + "inherits": ["no-webview", "no-kde"], + "displayName": "Target Android using Arch Linux's Android packaging", + "description": "Build targeting Android, paths and flags are specific to Arch Linux's Android packaging", + "binaryDir": "$env{BUILD_DIR}/${sourceDirName}/arch-android-$env{ANDROID_ARCH}", + "toolchainFile": "$env{ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake", + "environment": { + "CROSS_INSTALL_PREFIX": "/opt/android-libs/$env{ANDROID_ARCH}", + "CPPFLAGS": "-D_FORTIFY_S OURCE=2 -D_GLIBCXX_ASSERTIONS", + "CFLAGS": "$env{CPPFLAGS} -O2 -pipe -fno-plt -fexceptions --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fcf-protection", + "CXXFLAGS": "$env{CPPFLAGS} -O2 -pipe -fno-plt -fexceptions --param=ssp-buffer-size=4 -Wformat -Werror=format-security -fcf-protection", + "LDFLAGS": "-Wl,-O1,--sort-common,--as-needed -fstack-protector", + "PATH": "$env{CROSS_INSTALL_PREFIX}/bin:$penv{PATH}" + }, + "cacheVariables": { + "ANDROID_ABI": {"type": "STRING", "value": "$env{ANDROID_ABI}"}, + "ANDROID_NDK": {"type": "STRING", "value": "$env{ANDROID_NDK_HOME}"}, + "ANDROID_NATIVE_API_LEVEL": {"type": "STRING", "value": "$env{ANDROID_MINIMUM_PLATFORM}"}, + "ANDROID_TOOLCHAIN": {"type": "STRING", "value": "clang"}, + "CMAKE_BUILD_TYPE": {"type": "STRING", "value": "Release"}, + "CMAKE_C_FLAGS_RELEASE": {"type": "STRING", "value": "$env{CFLAGS}"}, + "CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES": {"type": "PATH", "value": "$env{ANDROID_PREFIX_INCLUDE}"}, + "CMAKE_CXX_FLAGS_RELEASE": {"type": "STRING", "value": "$env{CXXFLAGS}"}, + "CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES": {"type": "PATH", "value": "$env{ANDROID_PREFIX_INCLUDE}"}, + "CMAKE_SHARED_LINKER_FLAGS_RELEASE": {"type": "STRING", "value": "$env{LDFLAGS}"}, + "CMAKE_INSTALL_PREFIX": {"type": "PATH", "value": "$env{ANDROID_PREFIX}"}, + "CMAKE_INSTALL_LIBDIR": {"type": "PATH", "value": "lib"}, + "INCLUDE_INSTALL_DIR": {"type": "PATH", "value": "$env{ANDROID_PREFIX_INCLUDE}"}, + "LIB_INSTALL_DIR": {"type": "PATH", "value": "$env{ANDROID_PREFIX_LIB}"}, + "SYSCONF_INSTALL_DIR": {"type": "PATH", "value": "$env{ANDROID_PREFIX_ETC}"}, + "SHARE_INSTALL_DIR": {"type": "PATH", "value": "$env{ANDROID_PREFIX_SHARE}"} + } + }, { "name": "win-x64-msvc-static", "inherits": ["no-webview", "no-kde", "qt6"], @@ -290,6 +324,7 @@ {"name": "arch-x86_64-w64-mingw32-devel", "configurePreset": "arch-x86_64-w64-mingw32-devel"}, {"name": "arch-static-compat", "configurePreset": "arch-static-compat"}, {"name": "arch-static-compat-devel", "configurePreset": "arch-static-compat-devel"}, + {"name": "arch-android", "configurePreset": "arch-android"}, {"name": "win-x64-msvc-static", "configurePreset": "win-x64-msvc-static"}, {"name": "win-x64-msvc-static-devel", "configurePreset": "win-x64-msvc-static-devel"}, {"name": "win-x64-msvc-static-debug", "configurePreset": "win-x64-msvc-static-debug"}