mirror of
https://github.com/kichikuou/system3-sdl2.git
synced 2026-10-12 01:08:16 +03:00
Android: Build rules
This sets up Gradle / CMake rules for Android build.
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
out
|
||||
android/.gradle
|
||||
android/app/.externalNativeBuild
|
||||
android/app/build
|
||||
+13
-13
@@ -18,15 +18,11 @@ android {
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
externalNativeBuild {
|
||||
ndkBuild {
|
||||
arguments "APP_PLATFORM=android-16"
|
||||
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
|
||||
cmake {
|
||||
arguments "-DANDROID_APP_PLATFORM=android-16", "-DANDROID_STL=c++_static"
|
||||
// abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
|
||||
abiFilters 'arm64-v8a'
|
||||
}
|
||||
// cmake {
|
||||
// arguments "-DANDROID_APP_PLATFORM=android-16", "-DANDROID_STL=c++_static"
|
||||
// // abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
|
||||
// abiFilters 'arm64-v8a'
|
||||
// }
|
||||
}
|
||||
}
|
||||
buildTypes {
|
||||
@@ -40,12 +36,12 @@ android {
|
||||
jniLibs.srcDir 'libs'
|
||||
}
|
||||
externalNativeBuild {
|
||||
ndkBuild {
|
||||
path 'jni/Android.mk'
|
||||
cmake {
|
||||
// system3 requires CMake >=3.13, so SDK-bundled CMake
|
||||
// (3.6 or 3.10.2) cannot be used.
|
||||
version getInstalledCmakeVersion()
|
||||
path 'jni/CMakeLists.txt'
|
||||
}
|
||||
// cmake {
|
||||
// path 'jni/CMakeLists.txt'
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
@@ -69,3 +65,7 @@ android {
|
||||
dependencies {
|
||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||
}
|
||||
|
||||
String getInstalledCmakeVersion() {
|
||||
('cmake --version'.execute().text =~ /cmake version ([0-9.]+)/)[0][1]
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
cmake_minimum_required(VERSION 3.6)
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
|
||||
project(GAME)
|
||||
|
||||
@@ -6,15 +6,31 @@ project(GAME)
|
||||
# include(AndroidNdkModules)
|
||||
# android_ndk_import_module_cpufeatures()
|
||||
|
||||
include(FetchContent)
|
||||
# TODO: Use SDL2 2.0.11 once released
|
||||
FetchContent_Declare(
|
||||
SDL
|
||||
URL https://hg.libsdl.org/SDL/archive/a5f93b21dfe0.tar.gz # rev 13383
|
||||
URL_HASH SHA1=a7e9696f7ef8af7c4b89671b096c38d1a4cbf90c
|
||||
)
|
||||
# TODO: Use SDL2_ttf 2.0.16 once released
|
||||
FetchContent_Declare(
|
||||
SDL_ttf
|
||||
URL https://hg.libsdl.org/SDL_ttf/archive/d56d67db41d8.tar.gz # rev 420
|
||||
URL_HASH SHA1=143089a2b2973a5baeee0914af43608cfe8e1d87
|
||||
)
|
||||
|
||||
# SDL sources are in a subfolder named "SDL"
|
||||
add_subdirectory(SDL)
|
||||
|
||||
# Compilation of companion libraries
|
||||
#add_subdirectory(SDL_image)
|
||||
#add_subdirectory(SDL_mixer)
|
||||
#add_subdirectory(SDL_ttf)
|
||||
|
||||
# Your game and its CMakeLists.txt are in a subfolder named "src"
|
||||
add_subdirectory(src)
|
||||
# Compilation of SDL and companion libraries
|
||||
FetchContent_GetProperties(SDL)
|
||||
if(NOT sdl_POPULATED)
|
||||
FetchContent_Populate(SDL)
|
||||
add_subdirectory(${sdl_SOURCE_DIR} ${sdl_BINARY_DIR})
|
||||
endif()
|
||||
FetchContent_GetProperties(SDL_ttf)
|
||||
if(NOT sdl_ttf_POPULATED)
|
||||
FetchContent_Populate(SDL_ttf)
|
||||
add_subdirectory(${sdl_ttf_SOURCE_DIR} ${sdl_ttf_BINARY_DIR})
|
||||
endif()
|
||||
|
||||
# The main CMakeLists.txt of system3
|
||||
add_subdirectory(../../../src src)
|
||||
|
||||
+11
-2
@@ -59,12 +59,21 @@ target_compile_definitions(common INTERFACE
|
||||
target_include_directories(common INTERFACE . sys)
|
||||
target_sources(common INTERFACE ${SRC_COMMON} ${SRC_PLATFORM} ${SRC_MAKO})
|
||||
|
||||
add_executable(system3)
|
||||
if (ANDROID)
|
||||
add_library(system3 SHARED)
|
||||
else()
|
||||
add_executable(system3)
|
||||
endif()
|
||||
|
||||
target_sources(system3 PRIVATE sys/nact_sys3.cpp ${RES3} sys/ags_bmp.cpp sys/ags_pms.cpp)
|
||||
target_compile_definitions(system3 PRIVATE _SYSTEM3)
|
||||
target_link_libraries(system3 PRIVATE common)
|
||||
|
||||
if (NOT EMSCRIPTEN)
|
||||
if (ANDROID)
|
||||
|
||||
target_link_libraries(system3 PRIVATE SDL2 SDL2_ttf)
|
||||
|
||||
elseif (NOT EMSCRIPTEN)
|
||||
|
||||
add_executable(system1)
|
||||
target_sources(system1 PRIVATE sys/nact_sys1.cpp ${RES1} sys/ags_gl3.cpp sys/ags_gm3.cpp sys/ags_vsp2l.cpp)
|
||||
|
||||
Reference in New Issue
Block a user