cmake_minimum_required(VERSION 3.12) project(Holesome) set(CMAKE_CXX_STANDARD 20) # Find and include SFML find_package(SFML 2.5 COMPONENTS graphics audio REQUIRED) include_directories(${SFML_INCLUDE_DIR}) # Find and include Eigen find_package(Eigen3 3.3 REQUIRED NO_MODULE) include_directories(${EIGEN3_INCLUDE_DIR}) # Include Box2D find_package(box2d REQUIRED) include_directories(${BOX2D_INCLUDE_DIR}) # Set up your project's source files set(SOURCES src/main.cpp src/game/game_object.cpp src/game/game_object.h src/game/game.h src/game/game.cpp src/logging/easylogging++.cc src/logging/easylogging++.h src/coordinates/coordinate_transformer.cpp src/coordinates/coordinate_transformer.h src/coordinates/translated_coordinates.cpp src/coordinates/translated_coordinates.h src/coordinates/coordinates.h src/game/input_handler.cpp src/game/input_handler.h src/primitives/circle_object.cpp src/primitives/circle_object.h src/game/game_factory.cpp src/game/game_factory.hpp src/config.h src/debug/grid_debug_layer.cpp src/debug/grid_debug_layer.h src/game/input/input_mapper.h src/game/input/input_mapper.cpp src/game/input/direction.h src/game/input/direction.cpp src/game/player/player.cpp src/game/player/player.hpp src/game/camera/tracking_view.cpp src/game/camera/tracking_view.h src/utilities/smart_list.cpp src/utilities/smart_list.h src/utilities/vector_utils.hpp src/game/camera/ITrackable.h src/game/input/input_identity.h src/utilities/magic_enum.hpp src/game/player/player_spawner.cpp src/game/player/player_spawner.hpp src/game/camera/tracking_area.h src/game/camera/tracking_view_options.hpp src/game/collectables/collectable.cpp src/game/collectables/collectable.hpp src/sprites/texture_manager.cpp src/sprites/texture_manager.hpp src/sprites/sprite_sheet.cpp src/sprites/sprite_sheet.hpp src/sprites/animated_sprite.cpp src/sprites/animated_sprite.hpp src/sprites/single_sprite.cpp src/sprites/single_sprite.hpp src/texture_config.h src/sprites/configs/sprite_config.hpp src/sprites/configs/sheet_config.hpp src/sprites/configs/animation_config.hpp src/sprites/versatile_sprite.cpp src/sprites/versatile_sprite.hpp src/sprites/sprite.hpp src/sprites/sprite_factory.cpp src/sprites/sprite_factory.hpp src/input_config.h src/game/input/button_config.hpp src/game/input/game_action.hpp src/game/input/button_config_factory.cpp src/game/input/button_config_factory.hpp src/game/input/game_action_config.hpp src/game/input/gamepad_buttons.hpp src/game/physics/map/map_simulation.cpp src/game/physics/map/map_simulation.hpp src/game/physics/map/map_player.hpp src/game/physics/map/map_player.cpp src/game/level/level_config.hpp src/game/level/level_loader.cpp src/game/level/level_loader.hpp src/levels.hpp) set(PHYSICS_00_SOURCES src/prototypes/physics_00.cpp) set(MATH_00_SOURCES src/prototypes/math_00.cpp) # Add an executable target add_executable(Holesome ${SOURCES}) add_executable(Physics_00 ${PHYSICS_00_SOURCES}) add_executable(Math_00 ${MATH_00_SOURCES}) # Link SFML and other libraries to your executable target target_link_libraries(Holesome sfml-graphics sfml-audio) target_link_libraries(Holesome Eigen3::Eigen) target_link_libraries(Holesome box2d::box2d) target_link_libraries(Physics_00 box2d::box2d) target_link_libraries(Math_00 Eigen3::Eigen) # Assets add_custom_target(copy_assets COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_LIST_DIR}/assets ${CMAKE_CURRENT_BINARY_DIR}/assets ) add_dependencies(Holesome copy_assets)