Skip to content

Commit a8c488f

Browse files
committed
update dependency to latest version / separate dependency src/install dirs
1 parent 1bee64d commit a8c488f

File tree

6 files changed

+57
-31
lines changed

6 files changed

+57
-31
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
build/
1+
build/
2+
dependency/

.vscode/c_cpp_properties.json

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"configurations": [
3+
{
4+
"name": "Mac",
5+
"includePath": [
6+
"${workspaceFolder}/src/**",
7+
"${workspaceFolder}/dependency/src/**"
8+
],
9+
"defines": [],
10+
"compilerPath": "/usr/bin/clang",
11+
"cStandard": "c17",
12+
"cppStandard": "c++14",
13+
"intelliSenseMode": "macos-clang-arm64",
14+
"configurationProvider": "ms-vscode.cmake-tools"
15+
}
16+
],
17+
"version": 4
18+
}

.vscode/settings.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
"cmake.buildArgs": [],
66
"cmake.buildEnvironment": {},
77
"cmake.debugConfig": {
8-
"args": []
8+
"args": [],
9+
"cwd": "${workspaceFolder}",
10+
"MIMode": "lldb"
911
},
1012
"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools"
1113
}

CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
cmake_minimum_required(VERSION 3.10)
22

33
set(PROJECT_NAME cpp_template)
4-
set(CMAKE_CXX_STANDARD 17)
4+
set(CMAKE_CXX_STANDARD 20)
55
## for debugging build script
66
# set(CMAKE_VERBOSE_MAKEFILE ON)
77

Dependency.cmake

+29-23
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@ elseif()
66
set(LINK_DIR_OPTION -L)
77
endif()
88

9-
set(DEPENDENCY_INSTALL_DIR ${PROJECT_BINARY_DIR}/install)
9+
set(DEPENDENCY_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dependency)
10+
set(DEPENDENCY_INSTALL_DIR ${DEPENDENCY_SRC_DIR}/install)
1011
set(DEPENDENCY_INCLUDE_DIR ${DEPENDENCY_INSTALL_DIR}/include)
1112
set(DEPENDENCY_LIB_DIR ${DEPENDENCY_INSTALL_DIR}/lib)
1213
# set(DEPENDENCY_LIBS ${LINK_DIR_OPTION}${DEPENDENCY_LIB_DIR})
@@ -17,6 +18,7 @@ ExternalProject_Add(
1718
GIT_REPOSITORY "https://github.com/gabime/spdlog.git"
1819
GIT_TAG "v1.x"
1920
GIT_SHALLOW 1
21+
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dependency/src/spdlog
2022
UPDATE_COMMAND ""
2123
PATCH_COMMAND ""
2224
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR}
@@ -34,8 +36,9 @@ endif()
3436
ExternalProject_Add(
3537
dep-json
3638
GIT_REPOSITORY "https://github.com/nlohmann/json.git"
37-
GIT_TAG "v3.11.3"
39+
GIT_TAG "v3.12.0"
3840
GIT_SHALLOW 1
41+
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dependency/src/json
3942
UPDATE_COMMAND ""
4043
PATCH_COMMAND ""
4144
CMAKE_ARGS
@@ -49,8 +52,9 @@ set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep-json)
4952
ExternalProject_Add(
5053
dep_magic_enum
5154
GIT_REPOSITORY "https://github.com/Neargye/magic_enum.git"
52-
GIT_TAG "v0.9.6"
55+
GIT_TAG "v0.9.7"
5356
GIT_SHALLOW 1
57+
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dependency/src/magic_enum
5458
UPDATE_COMMAND ""
5559
PATCH_COMMAND ""
5660
CMAKE_ARGS
@@ -61,28 +65,13 @@ ExternalProject_Add(
6165
)
6266
set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep_magic_enum)
6367

64-
# filesystem: c++14-based filesystem that implements c++17 filesystem
65-
ExternalProject_Add(
66-
dep_filesystem
67-
GIT_REPOSITORY "https://github.com/gulrak/filesystem.git"
68-
GIT_TAG "v1.5.14"
69-
GIT_SHALLOW 1
70-
UPDATE_COMMAND ""
71-
PATCH_COMMAND ""
72-
CMAKE_ARGS
73-
-DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR}
74-
-DGHC_FILESYSTEM_BUILD_TESTING=OFF
75-
-DGHC_FILESYSTEM_BUILD_EXAMPLES=OFF
76-
TEST_COMMAND ""
77-
)
78-
set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep_filesystem)
79-
80-
# sdl2
68+
# sdl3
8169
ExternalProject_Add(
8270
dep_sdl
8371
GIT_REPOSITORY "https://github.com/libsdl-org/SDL.git"
84-
GIT_TAG "release-2.30.5"
72+
GIT_TAG "release-3.2.10"
8573
GIT_SHALLOW 1
74+
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dependency/src/sdl
8675
UPDATE_COMMAND ""
8776
PATCH_COMMAND ""
8877
CMAKE_ARGS
@@ -92,9 +81,9 @@ ExternalProject_Add(
9281
)
9382
set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep_sdl)
9483
if (MSVC)
95-
set(DEPENDENCY_LIBS ${DEPENDENCY_LIBS} SDL2$<$<CONFIG:Debug>:d>)
84+
set(DEPENDENCY_LIBS ${DEPENDENCY_LIBS} SDL3$<$<CONFIG:Debug>:d>)
9685
else()
97-
set(DEPENDENCY_LIBS ${DEPENDENCY_LIBS} SDL2)
86+
set(DEPENDENCY_LIBS ${DEPENDENCY_LIBS} SDL3)
9887
endif()
9988

10089
## additional dependencies, for graphics programming
@@ -192,3 +181,20 @@ endif()
192181
# )
193182
# set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep_glfw)
194183
# set(DEPENDENCY_LIBS ${DEPENDENCY_LIBS} glfw3)
184+
185+
# # filesystem: c++14-based filesystem that implements c++17 filesystem
186+
# ExternalProject_Add(
187+
# dep_filesystem
188+
# GIT_REPOSITORY "https://github.com/gulrak/filesystem.git"
189+
# GIT_TAG "v1.5.14"
190+
# GIT_SHALLOW 1
191+
# UPDATE_COMMAND ""
192+
# PATCH_COMMAND ""
193+
# CMAKE_ARGS
194+
# -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR}
195+
# -DGHC_FILESYSTEM_BUILD_TESTING=OFF
196+
# -DGHC_FILESYSTEM_BUILD_EXAMPLES=OFF
197+
# TEST_COMMAND ""
198+
# )
199+
# set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep_filesystem)
200+

src/main.cpp

+4-5
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@
55
#include <spdlog/spdlog.h>
66

77
#define SDL_MAIN_HANDLED
8-
#include <SDL2/SDL.h>
8+
#include <SDL3/SDL.h>
99

1010
int main(int argc, const char** argv) {
11-
SPDLOG_INFO("Initialize SDL2");
11+
SPDLOG_INFO("Initialize SDL3");
1212

1313
SDL_Init(SDL_INIT_VIDEO);
14-
auto window = SDL_CreateWindow("CPP template", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
15-
1280, 720, 0);
14+
auto window = SDL_CreateWindow("CPP template", 1280, 720, 0);
1615

1716
SDL_Event e;
1817
bool bQuit = false;
@@ -21,7 +20,7 @@ int main(int argc, const char** argv) {
2120
// Handle events on queue
2221
while (SDL_PollEvent(&e) != 0) {
2322
// close the window when user alt-f4s or clicks the X button
24-
if (e.type == SDL_QUIT)
23+
if (e.type == SDL_EVENT_QUIT)
2524
bQuit = true;
2625
}
2726
}

0 commit comments

Comments
 (0)