cmake_minimum_required(VERSION 3.6) project(MY_APP CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # Определение путей set(SOURCE_RES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../../../resources") set(TARGET_RES_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../src/main/assets/resources") # Получаем список всех файлов в исходной директории для отслеживания зависимостей file(GLOB_RECURSE RES_FILES RELATIVE "${SOURCE_RES_DIR}" "${SOURCE_RES_DIR}/*") set(COPY_COMMANDS "") foreach(RES_FILE ${RES_FILES}) set(SRC "${SOURCE_RES_DIR}/${RES_FILE}") set(DST "${TARGET_RES_DIR}/${RES_FILE}") # Команда копирования конкретного файла, если он изменился add_custom_command( OUTPUT "${DST}" COMMAND ${CMAKE_COMMAND} -E make_directory "${TARGET_RES_DIR}" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${SRC}" "${DST}" DEPENDS "${SRC}" COMMENT "Syncing resource: ${RES_FILE}" ) list(APPEND RES_OUTPUTS "${DST}") 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/main.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 ../../../../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(OPENGLES3_LIB GLESv3) target_link_libraries(main ${OPENGLES3_LIB} png_static z SDL2 SDL2_ttf SDL2_mixer log android OpenSLES dl 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)