54 lines
2.1 KiB
CMake
54 lines
2.1 KiB
CMake
|
|
cmake_minimum_required(VERSION 3.16)
|
||
|
|
project(squad_proto CXX)
|
||
|
|
|
||
|
|
set(CMAKE_CXX_STANDARD 17)
|
||
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
||
|
|
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
# raylib: системная, иначе выкачиваем 6.0 через FetchContent
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
find_package(raylib 6 QUIET)
|
||
|
|
|
||
|
|
if(NOT raylib_FOUND)
|
||
|
|
include(FetchContent)
|
||
|
|
set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
|
||
|
|
set(BUILD_GAMES OFF CACHE BOOL "" FORCE)
|
||
|
|
set(CUSTOMIZE_BUILD OFF CACHE BOOL "" FORCE)
|
||
|
|
FetchContent_Declare(
|
||
|
|
raylib
|
||
|
|
URL https://github.com/raysan5/raylib/archive/refs/tags/6.0.tar.gz
|
||
|
|
DOWNLOAD_EXTRACT_TIMESTAMP TRUE # CMP0135: иначе CMake ругается на таймстемпы
|
||
|
|
)
|
||
|
|
FetchContent_MakeAvailable(raylib)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
# Исходники
|
||
|
|
# ---------------------------------------------------------------------------
|
||
|
|
file(GLOB_RECURSE SQUAD_SOURCES CONFIGURE_DEPENDS
|
||
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp")
|
||
|
|
|
||
|
|
add_executable(squad_proto ${SQUAD_SOURCES})
|
||
|
|
|
||
|
|
target_include_directories(squad_proto PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src")
|
||
|
|
target_link_libraries(squad_proto PRIVATE raylib)
|
||
|
|
|
||
|
|
if(MSVC)
|
||
|
|
target_compile_options(squad_proto PRIVATE /W4 /utf-8 /permissive-)
|
||
|
|
else()
|
||
|
|
target_compile_options(squad_proto PRIVATE -Wall -Wextra)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
if(WIN32)
|
||
|
|
target_link_libraries(squad_proto PRIVATE winmm)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
# Единый каталог для бинарника при любом генераторе (VS/Ninja/Makefiles)
|
||
|
|
set_target_properties(squad_proto PROPERTIES
|
||
|
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
|
||
|
|
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_BINARY_DIR}/bin"
|
||
|
|
RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_BINARY_DIR}/bin"
|
||
|
|
RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_BINARY_DIR}/bin"
|
||
|
|
RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_BINARY_DIR}/bin")
|