269 lines
12 KiB
CMake
269 lines
12 KiB
CMake
cmake_minimum_required(VERSION 3.31)
|
|
project(Dicewars_Siedler)
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
find_package(OpenGL REQUIRED)
|
|
|
|
add_subdirectory(lib/glfw)
|
|
|
|
add_library(glad STATIC
|
|
lib/glad/src/glad.c
|
|
)
|
|
target_include_directories(glad PUBLIC
|
|
lib/glad/include
|
|
)
|
|
|
|
find_package(Freetype REQUIRED)
|
|
include_directories(${FREETYPE_INCLUDE_DIRS})
|
|
|
|
|
|
add_executable(Dicewars_Siedler src/main.cpp
|
|
src/engine/core/Window.cpp
|
|
src/engine/core/Window.h
|
|
src/engine/platform/glfw/GLFWWindow.cpp
|
|
src/engine/platform/glfw/GLFWWindow.h
|
|
src/engine/core/Application.cpp
|
|
src/engine/core/Application.h
|
|
src/game/DicewarsApp.cpp
|
|
src/game/DicewarsApp.h
|
|
src/engine/renderer/model/RawModel.cpp
|
|
src/engine/renderer/model/RawModel.h
|
|
src/engine/renderer/loader/Loader.cpp
|
|
src/engine/renderer/loader/Loader.h
|
|
src/engine/renderer/Renderer.cpp
|
|
src/engine/renderer/Renderer.h
|
|
src/engine/layer/Layer.cpp
|
|
src/engine/layer/Layer.h
|
|
src/game/GameLayer.cpp
|
|
src/game/GameLayer.h
|
|
src/engine/renderer/shaders/ShaderProgram.cpp
|
|
src/engine/renderer/shaders/ShaderProgram.h
|
|
src/engine/renderer/shaders/StaticShader.cpp
|
|
src/engine/renderer/shaders/StaticShader.h
|
|
src/engine/renderer/loader/Texture2D.h
|
|
src/engine/renderer/loader/TextureLoader.cpp
|
|
src/engine/renderer/loader/TextureLoader.h
|
|
src/engine/renderer/textures/ModelTexture.cpp
|
|
src/engine/renderer/textures/ModelTexture.h
|
|
src/engine/renderer/model/TexturedModel.cpp
|
|
src/engine/renderer/model/TexturedModel.h
|
|
src/engine/toolbox/MathUtils.h
|
|
src/engine/layer/entities/Entity.cpp
|
|
src/engine/layer/entities/Entity.h
|
|
src/engine/layer/entities/Camera.cpp
|
|
src/engine/layer/entities/Camera.h
|
|
src/engine/platform/glfw/InputManager.cpp
|
|
src/engine/platform/glfw/InputManager.h
|
|
src/engine/renderer/loader/OBJLoader.cpp
|
|
src/engine/renderer/loader/OBJLoader.h
|
|
src/engine/layer/entities/Light.cpp
|
|
src/engine/layer/entities/Light.h
|
|
src/engine/platform/glfw/MousePicker.cpp
|
|
src/engine/platform/glfw/MousePicker.h
|
|
src/game/hexWorld/Map.cpp
|
|
src/game/hexWorld/Map.h
|
|
src/game/hexWorld/MapGenerator.cpp
|
|
src/game/hexWorld/MapGenerator.h
|
|
src/game/hexWorld/HexModelFactory.cpp
|
|
src/game/hexWorld/HexModelFactory.h
|
|
src/engine/renderer/MasterRenderer.cpp
|
|
src/engine/renderer/MasterRenderer.h
|
|
src/engine/renderer/TerrainRenderer.cpp
|
|
src/engine/renderer/TerrainRenderer.h
|
|
src/engine/renderer/shaders/TerrainShader.cpp
|
|
src/engine/renderer/shaders/TerrainShader.h
|
|
src/engine/renderer/loader/AssetManager.cpp
|
|
src/engine/renderer/loader/AssetManager.h
|
|
src/game/hexWorld/tileGenerator/HexTileGeneratorStrategy.cpp
|
|
src/game/hexWorld/tileGenerator/HexTileGeneratorStrategy.h
|
|
src/game/hexWorld/tileGenerator/ForestTileGenerator.cpp
|
|
src/game/hexWorld/tileGenerator/ForestTileGenerator.h
|
|
src/engine/toolbox/Random.cpp
|
|
src/engine/toolbox/Random.h
|
|
src/engine/core/ECS/Component.cpp
|
|
src/engine/core/ECS/Component.h
|
|
src/engine/core/ECS/TransformComponent.cpp
|
|
src/engine/core/ECS/TransformComponent.h
|
|
src/engine/core/ECS/ModelComponent.cpp
|
|
src/engine/core/ECS/ModelComponent.h
|
|
src/engine/core/ECS/EntityManager.cpp
|
|
src/engine/core/ECS/EntityManager.h
|
|
src/engine/core/ECS/RenderSystem.cpp
|
|
src/engine/core/ECS/RenderSystem.h
|
|
src/engine/core/ECS/TileRenderComponent.cpp
|
|
src/engine/core/ECS/TileRenderComponent.h
|
|
src/game/hexWorld/ecs/components/TileGameplayComponent.cpp
|
|
src/game/hexWorld/ecs/components/TileGameplayComponent.h
|
|
src/game/hexWorld/ecs/components/MapEntityComponent.h
|
|
src/engine/renderer/components/TerrainRenderingData.h
|
|
src/game/hexWorld/RessourceType.h
|
|
src/game/hexWorld/ecs/systems/TileHighlightSystem.cpp
|
|
src/game/hexWorld/ecs/systems/TileHighlightSystem.h
|
|
src/game/hexWorld/ecs/components/BuildingComponent.cpp
|
|
src/game/hexWorld/ecs/components/BuildingComponent.h
|
|
src/game/hexWorld/ecs/systems/BuildingPlacementSystem.cpp
|
|
src/game/hexWorld/ecs/systems/BuildingPlacementSystem.h
|
|
src/game/GameMode.cpp
|
|
src/game/GameMode.h
|
|
src/game/player/PlayerInventory.cpp
|
|
src/game/player/PlayerInventory.h
|
|
src/game/player/Player.cpp
|
|
src/game/player/Player.h
|
|
src/game/hexWorld/ecs/components/OwnerComponent.cpp
|
|
src/game/hexWorld/ecs/components/OwnerComponent.h
|
|
src/engine/renderer/model/GUITexture.cpp
|
|
src/engine/renderer/model/GUITexture.h
|
|
src/engine/renderer/GUIRenderer.cpp
|
|
src/engine/renderer/GUIRenderer.h
|
|
src/game/UILayer.cpp
|
|
src/game/UILayer.h
|
|
src/engine/renderer/shaders/GUIShader.cpp
|
|
src/engine/renderer/shaders/GUIShader.h
|
|
src/engine/core/gui/uiComponent/UiComponent.cpp
|
|
src/engine/core/gui/uiComponent/UiComponent.h
|
|
src/engine/core/gui/uiComponent/Dimensions.h
|
|
src/engine/core/gui/uiComponent/layout/UiPositioner.cpp
|
|
src/engine/core/gui/uiComponent/layout/UiPositioner.h
|
|
src/engine/core/gui/uiMain/UiContainer.cpp
|
|
src/engine/core/gui/uiMain/UiContainer.h
|
|
src/engine/core/gui/uiComponent/UiImage.cpp
|
|
src/engine/core/gui/uiComponent/UiImage.h
|
|
src/engine/core/gui/uiComponent/UiText.cpp
|
|
src/engine/core/gui/uiComponent/UiText.h
|
|
src/engine/core/gui/text/Font.cpp
|
|
src/engine/core/gui/text/Font.h
|
|
src/engine/renderer/components/UiRenderBundle.cpp
|
|
src/engine/renderer/components/UiRenderBundle.h
|
|
src/engine/renderer/shaders/TextShader.cpp
|
|
src/engine/renderer/shaders/TextShader.h
|
|
src/engine/renderer/TextRenderer.cpp
|
|
src/engine/renderer/TextRenderer.h
|
|
src/engine/renderer/model/TextQuadModel.cpp
|
|
src/engine/renderer/model/TextQuadModel.h
|
|
src/engine/core/gui/uiComponent/layout/LayoutStyle.h
|
|
src/engine/core/gui/uiComponent/UiButton.cpp
|
|
src/engine/core/gui/uiComponent/UiButton.h
|
|
src/engine/renderer/model/GUIText.cpp
|
|
src/engine/renderer/model/GUIText.h
|
|
src/game/ui/components/UiRessourceWidget.cpp
|
|
src/game/ui/components/UiRessourceWidget.h
|
|
src/game/ui/components/factorys/RessourceWidgetFactory.cpp
|
|
src/game/ui/components/factorys/RessourceWidgetFactory.h
|
|
src/game/ui/components/UiInventoryContainer.cpp
|
|
src/game/ui/components/UiInventoryContainer.h
|
|
src/game/hexWorld/building/BuildingDefinition.h
|
|
src/game/hexWorld/building/TemporaryBuildingDefinitionFactory.h
|
|
src/game/hexWorld/building/BuildingRules.cpp
|
|
src/game/hexWorld/building/BuildingRules.h
|
|
src/game/hexWorld/building/BuildingFactory.cpp
|
|
src/game/hexWorld/building/BuildingFactory.h
|
|
src/game/hexWorld/building/BuildingConfig.cpp
|
|
src/game/hexWorld/building/BuildingConfig.h
|
|
src/engine/toolbox/util.h
|
|
src/engine/core/events/EventBus.cpp
|
|
src/engine/core/events/EventBus.h
|
|
src/game/hexWorld/events/TurnChangedEvent.cpp
|
|
src/game/hexWorld/events/TurnChangedEvent.h
|
|
src/game/hexWorld/events/ResourceCollectEvent.cpp
|
|
src/game/hexWorld/events/ResourceCollectEvent.h
|
|
src/game/hexWorld/gameplay/TurnSystem.cpp
|
|
src/game/hexWorld/gameplay/TurnSystem.h
|
|
src/game/hexWorld/gameplay/TurnState.h
|
|
src/engine/renderer/model/SubModel.h
|
|
src/engine/renderer/model/ModelStageConfiguration.cpp
|
|
src/engine/renderer/model/ModelStageConfiguration.h
|
|
src/engine/renderer/model/ModelStageCondition.h
|
|
src/engine/renderer/model/ModelStages.cpp
|
|
src/engine/renderer/model/ModelStages.h
|
|
src/engine/toolbox/IndexedMap.cpp
|
|
src/engine/toolbox/IndexedMap.h
|
|
src/engine/core/ECS/ModelStateComponent.cpp
|
|
src/engine/core/ECS/ModelStateComponent.h
|
|
src/game/hexWorld/ecs/components/ProducingComponent.cpp
|
|
src/game/hexWorld/ecs/components/ProducingComponent.h
|
|
src/game/hexWorld/ecs/systems/ProducingSystem.cpp
|
|
src/game/hexWorld/ecs/systems/ProducingSystem.h
|
|
src/engine/core/ECS/WorldSpriteComponent.cpp
|
|
src/engine/core/ECS/WorldSpriteComponent.h
|
|
src/engine/renderer/WorldSpriteRenderer.cpp
|
|
src/engine/renderer/WorldSpriteRenderer.h
|
|
src/engine/renderer/components/WorldSpriteRenderingData.h
|
|
src/engine/renderer/shaders/WorldSpriteShader.cpp
|
|
src/engine/renderer/shaders/WorldSpriteShader.h
|
|
src/engine/core/animations/AnimationCurve.h
|
|
src/engine/core/animations/AnimationTrack.h
|
|
src/engine/core/animations/AnimationComponent.cpp
|
|
src/engine/core/animations/AnimationComponent.h
|
|
src/engine/core/animations/AnimationSystem.cpp
|
|
src/engine/core/animations/AnimationSystem.h
|
|
src/engine/core/EngineTime.cpp
|
|
src/engine/core/EngineTime.h
|
|
src/game/hexWorld/ecs/systems/CollectResourceSystem.cpp
|
|
src/game/hexWorld/ecs/systems/CollectResourceSystem.h
|
|
src/engine/renderer/model/FramebufferObject.cpp
|
|
src/engine/renderer/model/FramebufferObject.h
|
|
src/engine/renderer/MinimapRenderer.cpp
|
|
src/engine/renderer/MinimapRenderer.h
|
|
src/engine/renderer/components/MinimapRenderData.h
|
|
src/engine/renderer/shaders/MinimapShader.cpp
|
|
src/engine/renderer/shaders/MinimapShader.h
|
|
src/engine/renderer/model/RenderTargets.cpp
|
|
src/engine/renderer/model/RenderTargets.h
|
|
src/engine/renderer/model/GuiTextureBuilder.cpp
|
|
src/engine/renderer/model/GuiTextureBuilder.h
|
|
src/game/ui/components/UiBuildingMenuContainer.cpp
|
|
src/game/ui/components/UiBuildingMenuContainer.h
|
|
src/engine/core/inputsOutputs/stateControl/states/IState.cpp
|
|
src/engine/core/inputsOutputs/stateControl/states/IState.h
|
|
src/engine/core/inputsOutputs/stateControl/InputUser.cpp
|
|
src/engine/core/inputsOutputs/stateControl/InputUser.h
|
|
src/engine/core/inputsOutputs/inputs/Keyboard.cpp
|
|
src/engine/core/inputsOutputs/inputs/Keyboard.h
|
|
src/engine/core/inputsOutputs/inputs/Mouse.cpp
|
|
src/engine/core/inputsOutputs/inputs/Mouse.h
|
|
src/engine/core/inputsOutputs/inputs/MouseButton.h
|
|
src/engine/core/inputsOutputs/stateControl/RegisteredUsers.cpp
|
|
src/engine/core/inputsOutputs/stateControl/RegisteredUsers.h
|
|
src/engine/core/inputsOutputs/stateControl/StateManager.cpp
|
|
src/engine/core/inputsOutputs/stateControl/StateManager.h
|
|
src/engine/core/inputsOutputs/stateControl/states/State.cpp
|
|
src/engine/core/inputsOutputs/stateControl/states/State.h
|
|
src/engine/core/inputsOutputs/stateControl/states/EmptyState.cpp
|
|
src/engine/core/inputsOutputs/stateControl/states/EmptyState.h
|
|
src/engine/core/inputsOutputs/stateControl/inputUser/GameInputUser.cpp
|
|
src/engine/core/inputsOutputs/stateControl/inputUser/GameInputUser.h
|
|
src/engine/core/inputsOutputs/stateControl/StateRegistry.cpp
|
|
src/engine/core/inputsOutputs/stateControl/StateRegistry.h
|
|
src/engine/core/gui/uiComponent/ClickableUiComponent.cpp
|
|
src/engine/core/gui/uiComponent/ClickableUiComponent.h
|
|
src/engine/core/inputsOutputs/stateControl/inputUser/UiInputUser.cpp
|
|
src/engine/core/inputsOutputs/stateControl/inputUser/UiInputUser.h
|
|
src/engine/core/gui/uiComponent/EventData.cpp
|
|
src/engine/core/gui/uiComponent/EventData.h
|
|
)
|
|
|
|
target_compile_options(Dicewars_Siedler PRIVATE
|
|
-Wall
|
|
-Wextra
|
|
-Wpedantic
|
|
-Werror=return-type
|
|
)
|
|
|
|
|
|
target_include_directories(Dicewars_Siedler PRIVATE
|
|
lib/glfw/include
|
|
lib/glm
|
|
lib/stb_image
|
|
lib/tinyobjloader
|
|
lib/nlohmann
|
|
)
|
|
|
|
target_link_libraries(Dicewars_Siedler
|
|
PRIVATE
|
|
glfw
|
|
glad
|
|
OpenGL::GL
|
|
${FREETYPE_LIBRARIES}
|
|
) |