Working on Android version
This commit is contained in:
1 parent
0975f3b9cd
commit
e773b51985
19 files changed
+418
-264
No files matched your search
@@ -11,10 +11,10 @@ android {
|
||||
if (buildAsApplication) {
|
||||
namespace "org.libsdl.app"
|
||||
}
|
||||
compileSdkVersion 34
|
||||
compileSdkVersion 37
|
||||
defaultConfig {
|
||||
minSdkVersion 19
|
||||
targetSdkVersion 34
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 37
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
externalNativeBuild {
|
||||
@@ -23,8 +23,8 @@ android {
|
||||
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
|
||||
}*/
|
||||
cmake {
|
||||
arguments "-DANDROID_APP_PLATFORM=android-19", "-DANDROID_STL=c++_static"
|
||||
cppFlags "-std=c++11 -frtti -fexceptions"
|
||||
arguments /*"-DANDROID_APP_PLATFORM=android-19",*/ "-DANDROID_STL=c++_static"
|
||||
cppFlags "-std=c++17 -frtti -fexceptions"
|
||||
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
|
||||
}
|
||||
}
|
||||
@@ -32,7 +32,7 @@ android {
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
applicationVariants.all { variant ->
|
||||
|
||||
@@ -21,7 +21,7 @@ set(TP_ROOT "${THIRDPARTY_DIR}")
|
||||
# ==============================================================================
|
||||
|
||||
# --- ZLIB ---
|
||||
add_subdirectory("${TP_ROOT}/zlib-1.3.1" zlib-build)
|
||||
#add_subdirectory("${TP_ROOT}/zlib-1.3.2" zlib-build)
|
||||
|
||||
# --- LIBPNG ---
|
||||
set(PNG_STATIC ON CACHE BOOL "Build static library" FORCE)
|
||||
@@ -39,6 +39,9 @@ add_subdirectory("${TP_ROOT}/libpng-1.6.51" libpng-build)
|
||||
# --- SDL2 ---
|
||||
# Android-версия SDL требует специфичных настроек, но add_subdirectory обычно подхватывает их сама
|
||||
add_subdirectory("${TP_ROOT}/SDL-release-2.32.10" sdl-build)
|
||||
#add_subdirectory("${TP_ROOT}/SDL_mixer-release-2.8.0" sdl-mixer-build)
|
||||
|
||||
add_subdirectory("${TP_ROOT}/SDL_ttf-release-2.24.0" sdl-ttf-build)
|
||||
|
||||
# --- LIBZIP ---
|
||||
# Отключаем поиск системных крипто-библиотек, так как в NDK их может не быть в стандартных путях
|
||||
|
||||
@@ -33,62 +33,143 @@ endforeach()
|
||||
# Создаем кастомную цель, которая будет запускать процесс копирования
|
||||
add_custom_target(sync_resources ALL DEPENDS ${RES_OUTPUTS})
|
||||
|
||||
set(LUA_SRC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../../thirdparty/lua-5.4.8")
|
||||
file(GLOB LUA_SOURCES "${LUA_SRC_DIR}/*.c")
|
||||
list(REMOVE_ITEM LUA_SOURCES
|
||||
"${LUA_SRC_DIR}/lua.c"
|
||||
"${LUA_SRC_DIR}/luac.c"
|
||||
"${LUA_SRC_DIR}/onelua.c"
|
||||
)
|
||||
add_library(lua_static STATIC ${LUA_SOURCES})
|
||||
target_include_directories(lua_static PUBLIC "${LUA_SRC_DIR}")
|
||||
|
||||
|
||||
|
||||
add_library(main SHARED
|
||||
SDL_android_main.c
|
||||
../../../../src/BoneAnimatedModel.cpp
|
||||
../../../../src/Environment.cpp
|
||||
../../../../src/Game.cpp
|
||||
SDL_android_main.c
|
||||
../../../../src/main.cpp
|
||||
../../../../src/Projectile.cpp
|
||||
../../../../src/SparkEmitter.cpp
|
||||
../../../../src/TextModel.cpp
|
||||
../../../../src/UiManager.cpp
|
||||
../../../../src/utils/Perlin.cpp
|
||||
../../../../src/utils/TaskManager.cpp
|
||||
../../../../src/utils/Utils.cpp
|
||||
../../../../src/navigation/PathFinder.cpp
|
||||
../../../../src/planet/PlanetData.cpp
|
||||
../../../../src/planet/PlanetObject.cpp
|
||||
../../../../src/planet/StoneObject.cpp
|
||||
../../../../src/render/FrameBuffer.cpp
|
||||
../../../../src/render/ShadowMap.cpp
|
||||
../../../../src/Game.cpp
|
||||
../../../../src/Game.h
|
||||
../../../../src/Character.cpp
|
||||
../../../../src/Character.h
|
||||
../../../../src/CharacterState.cpp
|
||||
../../../../src/CharacterState.h
|
||||
../../../../src/Environment.cpp
|
||||
../../../../src/Environment.h
|
||||
../../../../src/Localization.cpp
|
||||
../../../../src/Localization.h
|
||||
../../../../src/render/Renderer.cpp
|
||||
../../../../src/render/Renderer.h
|
||||
../../../../src/render/ShaderManager.cpp
|
||||
../../../../src/render/ShaderManager.h
|
||||
../../../../src/render/TextureManager.cpp
|
||||
../../../../src/render/TextureManager.h
|
||||
../../../../src/TextModel.cpp
|
||||
../../../../src/TextModel.h
|
||||
../../../../src/AudioPlayerAsync.cpp
|
||||
../../../../src/AudioPlayerAsync.h
|
||||
../../../../src/BoneAnimatedModelNew.cpp
|
||||
../../../../src/BoneAnimatedModelNew.h
|
||||
../../../../src/render/OpenGlExtensions.cpp
|
||||
)
|
||||
|
||||
# Подключаем заголовки
|
||||
target_include_directories(main PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../SDL/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../zlib
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libpng
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../../../thirdparty/eigen-5.0.0
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../../../thirdparty/boost_1_90_0
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../libzip
|
||||
)
|
||||
|
||||
# ВАЖНО: Линкуемся с png_static (статика) или png_shared (динамика)
|
||||
# Так как мы установили PNG_STATIC=ON и PNG_SHARED=OFF,
|
||||
# должна создаться цель png_static
|
||||
target_link_libraries(main
|
||||
png_static # ← ЭТО ПРАВИЛЬНОЕ ИМЯ ЦЕЛИ!
|
||||
z
|
||||
SDL2
|
||||
../../../../src/render/OpenGlExtensions.h
|
||||
../../../../src/utils/Utils.cpp
|
||||
../../../../src/utils/Utils.h
|
||||
../../../../src/SparkEmitter.cpp
|
||||
../../../../src/SparkEmitter.h
|
||||
../../../../src/TeleportZone.h
|
||||
../../../../src/TeleportZone.cpp
|
||||
../../../../src/utils/TaskManager.cpp
|
||||
../../../../src/utils/TaskManager.h
|
||||
../../../../src/render/FrameBuffer.cpp
|
||||
../../../../src/render/FrameBuffer.h
|
||||
../../../../src/render/ShadowMap.cpp
|
||||
../../../../src/render/ShadowMap.h
|
||||
../../../../src/UiManager.cpp
|
||||
../../../../src/UiManager.h
|
||||
../../../../src/render/TextRenderer.h
|
||||
../../../../src/render/TextRenderer.cpp
|
||||
../../../../src/MenuManager.h
|
||||
../../../../src/MenuManager.cpp
|
||||
../../../../src/Location.h
|
||||
../../../../src/Location.cpp
|
||||
../../../../src/LocationState.h
|
||||
../../../../src/LocationState.cpp
|
||||
../../../../src/LocationEditor.h
|
||||
../../../../src/LocationEditor.cpp
|
||||
../../../../src/NpcCar.h
|
||||
../../../../src/NpcCar.cpp
|
||||
../../../../src/GameConstants.h
|
||||
../../../../src/GameConstants.cpp
|
||||
../../../../src/GameState.h
|
||||
../../../../src/GameState.cpp
|
||||
../../../../src/ScriptEngine.h
|
||||
../../../../src/ScriptEngine.cpp
|
||||
../../../../src/navigation/PathFinder.h
|
||||
../../../../src/navigation/PathFinder.cpp
|
||||
../../../../src/items/GameObjectLoader.h
|
||||
../../../../src/items/GameObjectLoader.cpp
|
||||
../../../../src/items/Item.h
|
||||
../../../../src/items/Item.cpp
|
||||
../../../../src/items/ItemRegistry.h
|
||||
../../../../src/items/ItemRegistry.cpp
|
||||
../../../../src/items/InteractiveObject.h
|
||||
../../../../src/items/InteractiveObject.cpp
|
||||
../../../../src/items/InteractiveObjectState.h
|
||||
../../../../src/dialogue/DialogueTypes.h
|
||||
../../../../src/dialogue/DialogueDatabase.h
|
||||
../../../../src/dialogue/DialogueDatabase.cpp
|
||||
../../../../src/dialogue/DialogueRuntime.h
|
||||
../../../../src/dialogue/DialogueRuntime.cpp
|
||||
../../../../src/dialogue/DialogueOverlay.h
|
||||
../../../../src/dialogue/DialogueOverlay.cpp
|
||||
../../../../src/dialogue/DialogueSystem.h
|
||||
../../../../src/dialogue/DialogueSystem.cpp
|
||||
../../../../src/dialogue/TranslationDatabase.h
|
||||
../../../../src/dialogue/TranslationDatabase.cpp
|
||||
../../../../src/quest/QuestTypes.h
|
||||
../../../../src/quest/QuestJournal.h
|
||||
../../../../src/quest/QuestJournal.cpp
|
||||
../../../../src/cutscene/CutsceneTypes.h
|
||||
../../../../src/cutscene/CutsceneDatabase.h
|
||||
../../../../src/cutscene/CutsceneDatabase.cpp
|
||||
../../../../src/cutscene/CutsceneRuntime.h
|
||||
../../../../src/cutscene/CutsceneRuntime.cpp
|
||||
../../../../src/cutscene/CutsceneOverlay.h
|
||||
../../../../src/cutscene/CutsceneOverlay.cpp
|
||||
../../../../src/render/UiQuad.h
|
||||
)
|
||||
|
||||
|
||||
find_library(OPENGLES2_LIB GLESv2)
|
||||
|
||||
|
||||
find_library(OPENGLES3_LIB GLESv3)
|
||||
|
||||
target_link_libraries(main
|
||||
${OPENGLES2_LIB} # OpenGL ES 2.0/3.0
|
||||
${OPENGLES3_LIB}
|
||||
png_static
|
||||
z
|
||||
SDL2
|
||||
SDL2_ttf
|
||||
log
|
||||
android
|
||||
OpenSLES
|
||||
dl
|
||||
zip
|
||||
zip
|
||||
lua_static
|
||||
#freetype
|
||||
)
|
||||
|
||||
# Подключаем заголовки
|
||||
target_include_directories(main PRIVATE
|
||||
#${CMAKE_CURRENT_SOURCE_DIR}/../SDL/include
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../../../thirdparty/SDL_ttf-release-2.24.0/external/freetype/include
|
||||
#${CMAKE_CURRENT_SOURCE_DIR}/../zlib
|
||||
#${CMAKE_CURRENT_SOURCE_DIR}/../libpng
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../../../thirdparty/eigen-5.0.0
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../../../thirdparty/boost_1_90_0
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../../../src
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../../../thirdparty/sol2-3.3.0/include
|
||||
#${CMAKE_CURRENT_SOURCE_DIR}/../libzip
|
||||
)
|
||||
|
||||
add_dependencies(main sync_resources)
|
||||
@@ -8,7 +8,7 @@
|
||||
android:installLocation="auto">
|
||||
|
||||
<!-- OpenGL ES 2.0 -->
|
||||
<uses-feature android:glEsVersion="0x00020000" />
|
||||
<uses-feature android:glEsVersion="0x00030000" />
|
||||
|
||||
<!-- Touchscreen support -->
|
||||
<uses-feature
|
||||
@@ -68,7 +68,7 @@
|
||||
<!-- Example of setting SDL hints from AndroidManifest.xml:
|
||||
<meta-data android:name="SDL_ENV.SDL_ACCELEROMETER_AS_JOYSTICK" android:value="0"/>
|
||||
-->
|
||||
|
||||
|
||||
<activity android:name="SDLActivity"
|
||||
android:label="@string/app_name"
|
||||
android:alwaysRetainTaskState="true"
|
||||
|
||||
@@ -6,7 +6,7 @@ buildscript {
|
||||
google()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:8.1.1'
|
||||
classpath 'com.android.tools.build:gradle:9.3.0'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
|
||||
@@ -9,6 +9,17 @@
|
||||
|
||||
# Specifies the JVM arguments used for the daemon process.
|
||||
# The setting is particularly useful for tweaking memory settings.
|
||||
android.builtInKotlin=false
|
||||
android.defaults.buildfeatures.resvalues=true
|
||||
android.dependency.useConstraints=true
|
||||
android.enableAppCompileTimeRClass=false
|
||||
android.newDsl=false
|
||||
android.r8.optimizedResourceShrinking=false
|
||||
android.r8.strictFullModeForKeepRules=false
|
||||
android.sdk.defaultTargetSdkToCompileSdkIfUnset=false
|
||||
android.uniquePackageNames=false
|
||||
android.useAndroidX=false
|
||||
android.usesSdkInManifest.disallowed=false
|
||||
org.gradle.jvmargs=-Xmx1536m
|
||||
|
||||
# When configured, Gradle will run in incubating parallel mode.
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
#Sat Jan 10 10:31:05 MSK 2026
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.0-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
Reference in new issue
Block a user