From 997daa2d495465b18d591e2c478ed993da12a217 Mon Sep 17 00:00:00 2001 From: Tulioh Date: Thu, 18 Dec 2014 00:31:28 -0200 Subject: [PATCH] Starting to create CMakeLists to android --- CMakeLists.txt | 23 +++++++++++++++++------ android/AndroidManifest.xml | 26 ++++++++++++++++++++++++++ android/default.properties | 11 +++++++++++ android/res/values/strings.xml | 4 ++++ compile_android.sh | 7 +++++++ compile_android.sh~ | 17 +++++++++++++++++ src/android.cpp | 10 ++++++++++ src/android.cpp~ | 10 ++++++++++ src/framework/CMakeLists.txt | 6 +++++- src/framework/cmake/FindLua.cmake | 2 +- 10 files changed, 108 insertions(+), 8 deletions(-) create mode 100644 android/AndroidManifest.xml create mode 100644 android/default.properties create mode 100644 android/res/values/strings.xml create mode 100644 compile_android.sh create mode 100644 compile_android.sh~ create mode 100644 src/android.cpp create mode 100644 src/android.cpp~ diff --git a/CMakeLists.txt b/CMakeLists.txt index 095ab291..e3adad12 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,10 +19,6 @@ endif() option(USE_PCH "Use precompiled header (speed up compile)" OFF) -set(executable_SOURCES - src/main.cpp -) - # add executable icon for win32 platforms if(WIN32) add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/otcicon.o @@ -35,8 +31,23 @@ endif() add_definitions(-D"VERSION=\\"${VERSION}\\"") -# add client executable -add_executable(${PROJECT_NAME} ${framework_SOURCES} ${client_SOURCES} ${executable_SOURCES}) + +if(NOT __ANDROID__) + set(executable_SOURCES + src/android.cpp + src/main.cpp + ) + + # add shared library for android + add_executable(${PROJECT_NAME} ${framework_SOURCES} ${client_SOURCES} ${executable_SOURCES}) +else() + set(executable_SOURCES + src/main.cpp + ) + # add client executable + add_executable(${PROJECT_NAME} ${framework_SOURCES} ${client_SOURCES} ${executable_SOURCES}) +endif() + target_link_libraries(${PROJECT_NAME} ${framework_LIBRARIES}) if(USE_PCH) diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml new file mode 100644 index 00000000..34fb699c --- /dev/null +++ b/android/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + diff --git a/android/default.properties b/android/default.properties new file mode 100644 index 00000000..8010039f --- /dev/null +++ b/android/default.properties @@ -0,0 +1,11 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system use, +# "build.properties", and override values to adapt the script to your +# project structure. + +# Project target. +target=android-10 diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml new file mode 100644 index 00000000..82a9ea07 --- /dev/null +++ b/android/res/values/strings.xml @@ -0,0 +1,4 @@ + + + OTClientMob + diff --git a/compile_android.sh b/compile_android.sh new file mode 100644 index 00000000..dafadbab --- /dev/null +++ b/compile_android.sh @@ -0,0 +1,7 @@ +#!/bin/sh +mkdir build && cd build + +cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_CMAKE/android.toolchain.cmake -DANDROID_ABI=x86 .. +make + +cd ../ && rm -r build && mkdir build && cd build diff --git a/compile_android.sh~ b/compile_android.sh~ new file mode 100644 index 00000000..a640666d --- /dev/null +++ b/compile_android.sh~ @@ -0,0 +1,17 @@ +#!/bin/sh +mkdir build && cd build + +cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_CMAKE/android.toolchain.cmake -DANDROID_ABI=armeabi-v7a .. +make + +cd ../ && rm -r build && mkdir build && cd build + +cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_CMAKE/android.toolchain.cmake -DANDROID_ABI=armeabi .. +make + +cd ../ && rm -r build && mkdir build && cd build + +cmake -DCMAKE_TOOLCHAIN_FILE=$ANDROID_CMAKE/android.toolchain.cmake -DANDROID_ABI=x86 .. +make + +cd ../ && rm -r build diff --git a/src/android.cpp b/src/android.cpp new file mode 100644 index 00000000..20758040 --- /dev/null +++ b/src/android.cpp @@ -0,0 +1,10 @@ +#include +#include + +void android_main( struct android_app* state ) { + int argc = 0; + char* argv[] = char[1]; + argv[0] = ""; + + main(argc, argv); +} diff --git a/src/android.cpp~ b/src/android.cpp~ new file mode 100644 index 00000000..aff08f86 --- /dev/null +++ b/src/android.cpp~ @@ -0,0 +1,10 @@ +#include +#include + +void android_main( struct android_app* state ) { + int argc = 0; + char* argv[] = char[1]; + argv[0] = ''; + + main(argc, argv); +} diff --git a/src/framework/CMakeLists.txt b/src/framework/CMakeLists.txt index 7ba95996..72659291 100644 --- a/src/framework/CMakeLists.txt +++ b/src/framework/CMakeLists.txt @@ -224,7 +224,11 @@ message(STATUS "LuaJIT: " ${LUAJIT}) find_package(PhysFS REQUIRED) find_package(OpenSSL REQUIRED) -find_package(ZLIB REQUIRED) + +# android already has zlib +if(NOT __ANDROID__) + find_package(ZLIB REQUIRED) +endif() set(framework_LIBRARIES ${framework_LIBRARIES} ${Boost_LIBRARIES} diff --git a/src/framework/cmake/FindLua.cmake b/src/framework/cmake/FindLua.cmake index ef4084eb..47a8767d 100644 --- a/src/framework/cmake/FindLua.cmake +++ b/src/framework/cmake/FindLua.cmake @@ -15,4 +15,4 @@ ELSE() ENDIF() INCLUDE(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(Lua DEFAULT_MSG LUA_LIBRARY LUA_INCLUDE_DIR) -MARK_AS_ADVANCED(LUA_LIBRARY LUA_INCLUDE_DIR) \ No newline at end of file +MARK_AS_ADVANCED(LUA_LIBRARY LUA_INCLUDE_DIR)