From ad4b3dfad11ffb9ae5e2196389409e514e1f6251 Mon Sep 17 00:00:00 2001 From: Dmitriy Karpushin Date: Tue, 27 Dec 2022 15:37:58 +0300 Subject: [PATCH] [WIP] cmake build for android --- CMakeLists.txt | 4 ++++ client/3rd/QtSsh/src/botan/botan.cmake | 12 ++++++++---- client/CMakeLists.txt | 6 ++---- client/ui/pages_logic/QrDecoderLogic.cpp | 4 ---- client/ui/pages_logic/ServerSettingsLogic.cpp | 3 +-- client/ui/pages_logic/StartPageLogic.cpp | 2 +- client/vpnconnection.cpp | 2 +- 7 files changed, 17 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6236396e..d8f2b7ed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,10 @@ cmake_minimum_required(VERSION 3.23.0 FATAL_ERROR) set(PROJECT AmneziaVPN) project(${PROJECT}) +#if(ANDROID) +# set(QT_ANDROID_BUILD_ALL_ABIS ON) +#endif() + add_subdirectory(client) if(NOT IOS AND NOT ANDROID) diff --git a/client/3rd/QtSsh/src/botan/botan.cmake b/client/3rd/QtSsh/src/botan/botan.cmake index d363fe71..0dce1f5e 100644 --- a/client/3rd/QtSsh/src/botan/botan.cmake +++ b/client/3rd/QtSsh/src/botan/botan.cmake @@ -38,11 +38,15 @@ if(ANDROID) # We need to include qtprivate api's # As QAndroidBinder is not yet implemented with a public api set(LIBS ${LIBS} Qt6::CorePrivate) - set(ANDROID_ABIS ANDROID_TARGET_ARCH) - link_directories(${CMAKE_CURRENT_LIST_DIR}/android/${ANDROID_TARGET_ARCH}) - set(HEADERS ${HEADERS} ${CMAKE_CURRENT_LIST_DIR}/android/${ANDROID_TARGET_ARCH}/botan_all.h) - set(SOURCES ${SOURCES} ${CMAKE_CURRENT_LIST_DIR}/android/${ANDROID_TARGET_ARCH}/botan_all.cpp) + message("botan target arch ${CMAKE_ANDROID_ARCH_ABI}") + set(abi ${CMAKE_ANDROID_ARCH_ABI}) + + include_directories(${CMAKE_CURRENT_LIST_DIR}/android/${abi}) + link_directories(${CMAKE_CURRENT_LIST_DIR}/android/${abi}) + set(HEADERS ${HEADERS} ${CMAKE_CURRENT_LIST_DIR}/android/${abi}/botan_all.h) + set(SOURCES ${SOURCES} ${CMAKE_CURRENT_LIST_DIR}/android/${abi}/botan_all.cpp) + endif() if(IOS) diff --git a/client/CMakeLists.txt b/client/CMakeLists.txt index 3c8c5949..e78e03c9 100644 --- a/client/CMakeLists.txt +++ b/client/CMakeLists.txt @@ -268,7 +268,7 @@ if(ANDROID) # We need to include qtprivate api's # As QAndroidBinder is not yet implemented with a public api set(LIBS ${LIBS} Qt6::CorePrivate) - set(ANDROID_ABIS ANDROID_TARGET_ARCH) + # set(ANDROID_ABIS ANDROID_TARGET_ARCH) add_compile_definitions(MVPN_ANDROID) @@ -283,7 +283,7 @@ if(ANDROID) ) set(SOURCES ${SOURCES} - ${CMAKE_CURRENT_LIST_DIR}/platforms/android/android_controller.cp + ${CMAKE_CURRENT_LIST_DIR}/platforms/android/android_controller.cpp ${CMAKE_CURRENT_LIST_DIR}/platforms/android/android_notificationhandler.cpp ${CMAKE_CURRENT_LIST_DIR}/platforms/android/androidutils.cpp ${CMAKE_CURRENT_LIST_DIR}/platforms/android/androidvpnactivity.cpp @@ -469,8 +469,6 @@ set_source_files_properties( endif() if(ANDROID) - set(QT_ANDROID_BUILD_ALL_ABIS ON) - add_custom_command( TARGET ${PROJECT} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy diff --git a/client/ui/pages_logic/QrDecoderLogic.cpp b/client/ui/pages_logic/QrDecoderLogic.cpp index 0c24ca1c..764a6e4b 100644 --- a/client/ui/pages_logic/QrDecoderLogic.cpp +++ b/client/ui/pages_logic/QrDecoderLogic.cpp @@ -3,10 +3,6 @@ #include "ui/uilogic.h" #include "ui/pages_logic/StartPageLogic.h" -#if defined(Q_OS_ANDROID) -#include "android_controller.h" -#endif - using namespace amnezia; using namespace PageEnumNS; diff --git a/client/ui/pages_logic/ServerSettingsLogic.cpp b/client/ui/pages_logic/ServerSettingsLogic.cpp index 14927f9f..05d44905 100644 --- a/client/ui/pages_logic/ServerSettingsLogic.cpp +++ b/client/ui/pages_logic/ServerSettingsLogic.cpp @@ -2,7 +2,6 @@ #include "vpnconnection.h" #include "../uilogic.h" -#include "ServerListLogic.h" #include "ShareConnectionLogic.h" #include "VpnLogic.h" @@ -11,7 +10,7 @@ #include #if defined(Q_OS_ANDROID) -#include "androidutils.h" +#include "../../platforms/android/androidutils.h" #endif ServerSettingsLogic::ServerSettingsLogic(UiLogic *logic, QObject *parent): diff --git a/client/ui/pages_logic/StartPageLogic.cpp b/client/ui/pages_logic/StartPageLogic.cpp index 03ace70a..8c59369a 100644 --- a/client/ui/pages_logic/StartPageLogic.cpp +++ b/client/ui/pages_logic/StartPageLogic.cpp @@ -12,7 +12,7 @@ #ifdef Q_OS_ANDROID #include -#include "androidutils.h" +#include "../../platforms/android/androidutils.h" #endif StartPageLogic::StartPageLogic(UiLogic *logic, QObject *parent): diff --git a/client/vpnconnection.cpp b/client/vpnconnection.cpp index 07d81caf..69b5b9a5 100644 --- a/client/vpnconnection.cpp +++ b/client/vpnconnection.cpp @@ -19,7 +19,7 @@ #endif #ifdef Q_OS_ANDROID -#include "android_controller.h" +#include "../../platforms/android/android_controller.h" #include "protocols/android_vpnprotocol.h" #endif