-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
101 lines (91 loc) · 3.9 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
cmake_minimum_required(VERSION 3.22)
message("starting cmake compiling apples")
#set(CMAKE_CXX_STANDARD C17)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20")
# создаём новый проект
project(applegame)
#add_subdirectory (src)
set("${PROJECT}_BINARY_DIR" bin)
#set ("${PROJECT}_SOURCE_DIR" src:include)
set("${PROJECT}_LIB_DIR" lib)
set(CMAKE_INCLUDE_PATH ${${PROJECT}_SOURCE_DIR})
#set (CMAKE_LIBRARY_PATH ${${PROJECT}_LIB_DIR})
#set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/${${PROJECT}_BINARY_DIR})
set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_BUILD_TYPE Debug)
set(ERR_NO_UNIX "Cannot build on non Unix systems")
if (WITH_DEBUG_MODE)
ADD_DEFINITIONS(-DMY_DEBUG_MODE=1)
endif ()
if (CMAKE_COMPILER_IS_GNUCXX)
set(MY_CXX_FLAGS "-Wall -std=c++20 -fmessage-length=0 -v -L/usr/local/lib -L/usr/lib -lsfml-graphics -lsfml-window -lsfml-network -lsfml-audio -lsfml-system")
set(CMAKE_CXX_FLAGS "-O0 ${MY_CXX_FLAGS}")
# я отключил настройку разных флагов для релиза и отладки. Пока что не нужно.
#set(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -fno-reorder-blocks -fno-schedule-insns -fno-inline")
#set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
else ()
message(FATAL_ERROR ${ERR_NO_UNIX})
endif ()
set(SOURCE main.cpp Apple.cpp Game.cpp Math.cpp Player.cpp Rock.cpp)
set(HEADER Apple.h config.h Constants.h Game.h Math.h Player.h Rock.h)
find_package(SFML COMPONENTS graphics window system)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
include_directories("src/")
add_executable(applegame src/main.cpp
src/Apple.cpp
src/Game.cpp
src/Math.cpp
src/Player.cpp
src/Rock.cpp
src/UI.h
src/UI.cpp
src/MainMenu.h
src/Window.cpp
src/Window.h
src/EventManager.cpp
src/EventManager.h
src/StateManager.cpp
src/StateManager.h
src/State_Intro.cpp
src/State_Intro.h
src/State_MainMenu.cpp
src/State_MainMenu.h
src/State_Game.cpp
src/State_Game.h
src/State_Paused.cpp
src/State_Paused.h
src/SharedContext.h
src/BaseState.h
)
find_package(SFML 2.6 COMPONENTS graphics audio network REQUIRED)
# в текущем проекте ничего не нужно дополнительно компилировать
#set (LIBRARIES)
# следующий код нужен для компиляции и подключения сторонних библиотек
# foreach (LIBRARY ${LIBRARIES})
# find_library("${LIBRARY}_FOUND" ${LIBRARY})
# message(STATUS "Check the ${LIBRARY} is installed: " ${${LIBRARY}_FOUND})
# if ( "${${LIBRARY}_FOUND}" STREQUAL "${LIBRARY}_FOUND-NOTFOUND" )
# message(STATUS "Adding library sources")
# add_subdirectory (../${LIBRARY} lib/${LIBRARY})
# endif ()
# endforeach ()
# никаких дополнительных целей нет
#set (TARGETS "")
#CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/src/ ${CMAKE_CURRENT_BINARY_DIR}/bin/)
#find_package(OpenGL)
#find_package(GLEW)
#find_package(glfw3 3.3 REQUIRED)
#option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
#include(FetchContent)
#FetchContent_Declare(SFML
# GIT_REPOSITORY https://github.com/SFML/SFML.git
# GIT_TAG 2.6.x)
#FetchContent_MakeAvailable(SFML)
#add_executable(CMakeSFMLProject src/main.cpp)
#add_executable(${PROJECT_NAME} main.cpp Apple.cpp Apple.h config.h Constants.h Game.cpp Game.h Math.h Math.cpp Player.cpp Player.h Rock.cpp Rock.h)
#target_link_libraries(CMakeSFMLProject PRIVATE sfml-graphics)
#target_link_libraries (${PROJECT_NAME} PUBLIC sfml-system sfml-graphics sfml-audio sfml-network)
#target_link_libraries(${PROJECT_NAME} OpenGL::OpenGL GLEW::GLEW glfw sfml-graphics sfml-window sfml-system)
#target_compile_features(CMakeSFMLProject PRIVATE cxx_std_20)