cmake_minimum_required(VERSION 3.16) project(StrategyGame LANGUAGES CXX) # C++ Standard set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # Build type if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Debug) endif() # Output directory set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) # Find SFML find_package(SFML 3 COMPONENTS Graphics Window System Network REQUIRED) # Source files set(SOURCES src/main.cpp ) # Create executable add_executable(${PROJECT_NAME} ${SOURCES}) # Link SFML target_link_libraries(${PROJECT_NAME} PRIVATE SFML::Graphics SFML::Window SFML::System SFML::Network ) # Windows specific: Copy DLLs to output directory if(WIN32) # Copy SFML DLLs after build add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different $ $ $ $ $ ) endif() # Enable more warnings if(MSVC) target_compile_options(${PROJECT_NAME} PRIVATE /W4) else() target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -pedantic) endif() # Print build info message(STATUS "Build type: ${CMAKE_BUILD_TYPE}") message(STATUS "C++ standard: ${CMAKE_CXX_STANDARD}") message(STATUS "SFML version: ${SFML_VERSION}")