-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
85 lines (76 loc) · 3.38 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
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 -fmodules-ts")
# создаём новый проект
project(rpggame_sfml)
#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 -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 ()
#endif ()
find_package(SFML COMPONENTS graphics window system)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
add_executable(rpggame_sfml
# src/define.h
# src/audio.h
# src/font.h
# src/texture.h
src/game.h
src/game.cpp
# src/base.cpp
# src/base.h
src/constants.h
# src/global_data_itf.h
# src/global_data.h
src/main.cpp
# src/game_object.h
)
find_package(SFML 2.6 COMPONENTS graphics audio network REQUIRED)
target_link_libraries(rpggame_sfml sfml-system sfml-graphics sfml-audio sfml-network)
# в текущем проекте ничего не нужно дополнительно компилировать
#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} OpenGL::OpenGL GLEW::GLEW glfw sfml-graphics sfml-window sfml-system)
#target_compile_features(CMakeSFMLProject PRIVATE cxx_std_20)