50 lines
1.1 KiB
CMake
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()
|