| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
- set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
- find_package(PkgConfig REQUIRED)
- find_package(OpenGL REQUIRED)
- find_package(GLEW REQUIRED)
- pkg_check_modules(TINYXML REQUIRED IMPORTED_TARGET tinyxml)
- SET(GCC4_HEADERS
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Actors/Actor.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Actors/ActorComponent.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Actors/ActorFactory.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Actors/AudioComponent.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Actors/BaseScriptComponent.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Actors/RenderComponent.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Actors/ScriptComponentInterface.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Actors/TransformComponent.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Debugging/Logger.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/EventManager/EventManager.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/EventManager/EventManagerImpl.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/EventManager/Events.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/GameCode4/BaseGameLogic.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/GameCode4/GameCode.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/GameCode4/interfaces.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/Geometry.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/Lights.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/Material.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/Mesh.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/MovementController.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/OpenGLRenderer.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/Scene.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/SceneNodes.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/Shaders.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/Sky.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/LUAScripting/LuaStateManager.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/LUAScripting/ScriptEvent.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/LUAScripting/ScriptExports.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/LUAScripting/ScriptProcess.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/LUAScripting/ScriptResource.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Mainloop/Initialization.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Mainloop/Process.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Multicore/CriticalSection.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/ResourceCache/ResCache.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/ResourceCache/XmlResource.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/ResourceCache/ZipFile.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Unix/GameCodeStd.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/UserInterface/HumanView.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Utilities/Dialogs.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Utilities/Math.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Utilities/String.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Utilities/templates.h
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Utilities/types.h
- )
- SET(GCC4_SOURCES
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Actors/Actor.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Actors/ActorFactory.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Actors/AudioComponent.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Actors/BaseScriptComponent.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Actors/RenderComponent.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Actors/TransformComponent.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Debugging/Logger.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/EventManager/EventManager.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/EventManager/EventManagerImpl.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/EventManager/Events.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/GameCode4/BaseGameLogic.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/GameCode4/GameCode.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/GameCode4/GameCode4.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/Geometry.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/Lights.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/Material.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/Mesh.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/MovementController.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/OpenGLRenderer.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/Scene.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/SceneNodes.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/Shaders.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Graphics3D/Sky.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/LUAScripting/LuaStateManager.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/LUAScripting/ScriptEvent.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/LUAScripting/ScriptExports.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/LUAScripting/ScriptProcess.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/LUAScripting/ScriptResource.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Mainloop/Initialization.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Mainloop/Process.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/ResourceCache/ResCache.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/ResourceCache/XmlResource.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/ResourceCache/ZipFile.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Unix/GameCodeStd.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/UserInterface/HumanView.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Utilities/Dialogs.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Utilities/Math.cpp
- ${PROJECT_SOURCE_DIR}/Source/GCC4/Utilities/String.cpp
- )
- add_library(gcc4 ${GCC4_HEADERS} ${GCC4_SOURCES})
- target_link_libraries(gcc4 PRIVATE PkgConfig::TINYXML)
- target_link_libraries(gcc4 PRIVATE GLEW::GLEW OpenGL::GL SDL3::SDL3 SDL3_image::SDL3_image)
- target_link_libraries(gcc4 PRIVATE imgui)
- target_link_libraries(gcc4 PUBLIC sol2::sol2 lua)
- target_link_libraries(gcc4 PUBLIC fastdelegate)
- target_link_libraries(gcc4 PUBLIC assimp)
- # target_include_directories(gcc4 PUBLIC ${LUA_INCLUDE_DIR})
- SET(TEAPOT_HEADERS
- ${PROJECT_SOURCE_DIR}/Source/GCC4/GameCode4/GameCode.h
- ${PROJECT_SOURCE_DIR}/Source/TeapotWars/TeapotEvents.h
- ${PROJECT_SOURCE_DIR}/Source/TeapotWars/TeapotWarsView.h
- ${PROJECT_SOURCE_DIR}/Source/TeapotWars/Unix/TeapotWars.h
- ${PROJECT_SOURCE_DIR}/Source/TeapotWars/Unix/TeapotWarsStd.h
- )
- SET(TEAPOT_SOURCES
- ${PROJECT_SOURCE_DIR}/Source/TeapotWars/TeapotEvents.cpp
- ${PROJECT_SOURCE_DIR}/Source/TeapotWars/TeapotWars.cpp
- ${PROJECT_SOURCE_DIR}/Source/TeapotWars/TeapotWarsView.cpp
- )
- add_executable(teapot-wars ${TEAPOT_HEADERS} ${TEAPOT_SOURCES} ${GCC4_HEADERS})
- target_link_libraries(teapot-wars PRIVATE
- gcc4
- GLEW::GLEW
- OpenGL::GL
- SDL3::SDL3
- SDL3_image::SDL3_image
- imgui
- ${CMAKE_DL_LIBS}
- )
- target_compile_options(gcc4 PRIVATE -Wall -Wextra -Wpedantic)
- target_compile_features(gcc4 PUBLIC cxx_std_20)
- target_compile_options(teapot-wars PRIVATE -Wall -Wextra -Wpedantic)
- target_compile_features(teapot-wars PUBLIC cxx_std_20)
- set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
- add_custom_command(
- TARGET teapot-wars PRE_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy_directory
- ${PROJECT_SOURCE_DIR}/Game
- ${CMAKE_BINARY_DIR}/)
- add_custom_command(
- TARGET teapot-wars PRE_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy_directory
- ${PROJECT_SOURCE_DIR}/Assets
- ${CMAKE_BINARY_DIR}/Assets)
|