79 lines
2.4 KiB
CMake
79 lines
2.4 KiB
CMake
cmake_minimum_required(VERSION 3.20)
|
|
|
|
project(ManaPetWorld LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
pkg_check_modules(PUGIXML REQUIRED IMPORTED_TARGET pugixml)
|
|
pkg_check_modules(RAYLIB REQUIRED IMPORTED_TARGET raylib)
|
|
|
|
set(MANA_CORE_SOURCES
|
|
src/assets/EntityPreset.cpp
|
|
src/assets/ItemIconCatalog.cpp
|
|
src/assets/MinimapAsset.cpp
|
|
src/assets/MusicAssets.cpp
|
|
src/assets/SoundAssets.cpp
|
|
src/assets/SpriteAnimation.cpp
|
|
src/battle/BattleAssets.cpp
|
|
src/battle/BattleLayout.cpp
|
|
src/content/TonoriItems.cpp
|
|
src/core/ElementSystem.cpp
|
|
src/core/GameCore.cpp
|
|
src/core/PetGrowth.cpp
|
|
src/core/PetSpeciesCatalog.cpp
|
|
src/dialogue/DialogueEffects.cpp
|
|
src/dialogue/DialogueScript.cpp
|
|
src/dialogue/ScriptedInteractable.cpp
|
|
src/quest/QuestSystem.cpp
|
|
src/save/SaveGame.cpp
|
|
src/ui/InteractableVisual.cpp
|
|
src/ui/InventoryUiModel.cpp
|
|
src/world/MapAtmosphere.cpp
|
|
src/world/TmxMap.cpp
|
|
src/world/TmxMapPool.cpp
|
|
src/world/TmxWorld.cpp
|
|
src/world/TmxWorldLayout.cpp
|
|
src/world/WarpAuditReport.cpp
|
|
src/world/WarpInteraction.cpp
|
|
src/world/WildLevelZone.cpp
|
|
src/world/WildSpawn.cpp
|
|
)
|
|
|
|
add_library(mana_core ${MANA_CORE_SOURCES})
|
|
|
|
target_include_directories(mana_core
|
|
PUBLIC
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/assets
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/battle
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/content
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/core
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/dialogue
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/quest
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/save
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/ui
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/world
|
|
)
|
|
target_link_libraries(mana_core PUBLIC PkgConfig::PUGIXML)
|
|
target_compile_options(mana_core PRIVATE -Wall -Wextra -Wpedantic)
|
|
|
|
add_executable(mana_pet_world
|
|
src/app/LogicalViewport.cpp
|
|
src/app/main.cpp
|
|
src/battle/BattleScene.cpp
|
|
)
|
|
target_link_libraries(mana_pet_world PRIVATE mana_core PkgConfig::RAYLIB)
|
|
target_compile_options(mana_pet_world PRIVATE -Wall -Wextra -Wpedantic)
|
|
|
|
enable_testing()
|
|
|
|
add_executable(logical_viewport_test
|
|
tests/app/LogicalViewportTest.cpp
|
|
src/app/LogicalViewport.cpp
|
|
)
|
|
target_include_directories(logical_viewport_test PRIVATE src/app)
|
|
target_compile_options(logical_viewport_test PRIVATE -Wall -Wextra -Wpedantic)
|
|
add_test(NAME logical_viewport_test COMMAND logical_viewport_test)
|