snake-cpp-game/CMakeLists.txt

50 lines
1.1 KiB
CMake

cmake_minimum_required(VERSION 3.10)
project(Snake VERSION 1.0.0 LANGUAGES CXX)
# Set C++ standard
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Set build type if not specified
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
# Compiler flags
set(CMAKE_CXX_FLAGS "-Wall -Wextra")
set(CMAKE_CXX_FLAGS_DEBUG "-g")
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
# Find SFML
find_package(SFML 2.5 COMPONENTS graphics window system REQUIRED)
# Source files
file(GLOB_RECURSE SOURCES
"src/*.cpp"
"src/*.c"
)
# Create executable
add_executable(${PROJECT_NAME} ${SOURCES})
# Include directories
target_include_directories(${PROJECT_NAME} PRIVATE include)
# Link libraries
target_link_libraries(${PROJECT_NAME}
sfml-graphics
sfml-window
sfml-system
)
# Copy assets to build directory
if(EXISTS ${CMAKE_SOURCE_DIR}/assets)
file(COPY assets DESTINATION ${CMAKE_BINARY_DIR})
endif()
# Install rules
install(TARGETS ${PROJECT_NAME} DESTINATION bin)
if(EXISTS ${CMAKE_SOURCE_DIR}/assets)
install(DIRECTORY assets DESTINATION share/${PROJECT_NAME})
endif()