93 lines
3.2 KiB
CMake
93 lines
3.2 KiB
CMake
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})
|
||
|
||
|
||
add_library(main SHARED
|
||
SDL_android_main.c
|
||
../../../../src/BoneAnimatedModel.cpp
|
||
../../../../src/Environment.cpp
|
||
../../../../src/Game.cpp
|
||
../../../../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/planet/PlanetData.cpp
|
||
../../../../src/planet/PlanetObject.cpp
|
||
../../../../src/planet/StoneObject.cpp
|
||
../../../../src/render/FrameBuffer.cpp
|
||
../../../../src/render/Renderer.cpp
|
||
../../../../src/render/ShaderManager.cpp
|
||
../../../../src/render/TextureManager.cpp
|
||
../../../../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
|
||
)
|
||
|
||
|
||
find_library(OPENGLES2_LIB GLESv2)
|
||
|
||
target_link_libraries(main
|
||
${OPENGLES2_LIB} # OpenGL ES 2.0/3.0
|
||
log
|
||
android
|
||
OpenSLES
|
||
dl
|
||
zip
|
||
)
|
||
|
||
add_dependencies(main sync_resources)
|