There is a mode to build with a real Android NDK that requires setting
up cmake to build with the NDK and so.
For quick&dirty compile tests that do not actually use the Android NDK
on Linux, -DFAKE_ANDROID on Linux can be used to compile a binary using
TARGET_ANDROID.
Change-Id: If6afa1108f9234f98afdbe0de7b7320403871772
Signed-off-by: Arne Schwabe <arne@rfc2549.org>
Acked-by: Frank Lichtenheld <frank@lichtenheld.com>
Message-Id: <20250214125238.17558-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg30885.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
| ... | ... |
@@ -39,6 +39,7 @@ option(ENABLE_LZ4 "BUILD with lz4" ON) |
| 39 | 39 |
option(ENABLE_LZO "BUILD with lzo" ON) |
| 40 | 40 |
option(ENABLE_PKCS11 "BUILD with pkcs11-helper" ON) |
| 41 | 41 |
option(USE_WERROR "Treat compiler warnings as errors (-Werror)" ON) |
| 42 |
+option(FAKE_ANDROID "Target Android but do not use actual cross compile/Android cmake to build for simple compile checks on Linux") |
|
| 42 | 43 |
|
| 43 | 44 |
set(PLUGIN_DIR /usr/local/lib/openvpn/plugins CACHE FILEPATH "Location of the plugin directory") |
| 44 | 45 |
|
| ... | ... |
@@ -122,7 +123,14 @@ set(OPENVPN_VERSION_RESOURCE ${PRODUCT_VERSION_RESOURCE})
|
| 122 | 122 |
set(CMAKE_C_STANDARD 11) |
| 123 | 123 |
|
| 124 | 124 |
# Set the various defines for config.h.cmake.in |
| 125 |
-if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
|
| 125 |
+if (${CMAKE_SYSTEM_NAME} STREQUAL "Android" OR ${FAKE_ANDROID})
|
|
| 126 |
+ set(TARGET_ANDROID YES) |
|
| 127 |
+ set(ENABLE_ASYNC_PUSH YES) |
|
| 128 |
+ set(ENABLE_SITNL YES) |
|
| 129 |
+ set(HAVE_LINUX_TYPES_H 1) |
|
| 130 |
+ # Wacky workaround as OpenSSL package detection is otherwise broken (https://stackoverflow.com/questions/45958214/android-cmake-could-not-find-openssl) |
|
| 131 |
+ list(APPEND CMAKE_FIND_ROOT_PATH ${OPENSSL_ROOT_DIR})
|
|
| 132 |
+elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
|
| 126 | 133 |
set(TARGET_LINUX YES) |
| 127 | 134 |
set(ENABLE_ASYNC_PUSH YES) |
| 128 | 135 |
set(ENABLE_LINUXDCO YES) |
| ... | ... |
@@ -432,6 +432,9 @@ don't. */ |
| 432 | 432 |
/* Are we running WIN32? */ |
| 433 | 433 |
#cmakedefine TARGET_WIN32 |
| 434 | 434 |
|
| 435 |
+/* Are we targeting Android? */ |
|
| 436 |
+#cmakedefine TARGET_ANDROID |
|
| 437 |
+ |
|
| 435 | 438 |
#define TARGET_ALIAS "@CMAKE_SYSTEM_NAME@" |
| 436 | 439 |
|
| 437 | 440 |
/* Enable GNU extensions on systems that have them. */ |