Skip to content

Commit 1bee64d

Browse files
committed
update version of packages / use sdl instead of glfw3
1 parent c5bdede commit 1bee64d

File tree

2 files changed

+71
-54
lines changed

2 files changed

+71
-54
lines changed

Dependency.cmake

+53-33
Original file line numberDiff line numberDiff line change
@@ -24,36 +24,17 @@ ExternalProject_Add(
2424
)
2525
set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep-spdlog)
2626
# if (GENERATOR_IS_MULTI_CONFIG)
27-
if (WIN32)
27+
if (MSVC)
2828
set(DEPENDENCY_LIBS ${DEPENDENCY_LIBS} spdlog$<$<CONFIG:Debug>:d>)
2929
else()
3030
set(DEPENDENCY_LIBS ${DEPENDENCY_LIBS} spdlog)
3131
endif()
3232

33-
# clipp: header-only good c++ argument parser
34-
ExternalProject_Add(
35-
dep-clipp
36-
GIT_REPOSITORY "https://github.com/muellan/clipp.git"
37-
GIT_TAG "v1.2.2"
38-
GIT_SHALLOW 1
39-
UPDATE_COMMAND ""
40-
PATCH_COMMAND ""
41-
CONFIGURE_COMMAND ""
42-
BUILD_COMMAND ""
43-
INSTALL_COMMAND
44-
${CMAKE_COMMAND} -E make_directory ${DEPENDENCY_INSTALL_DIR}/include &&
45-
${CMAKE_COMMAND} -E copy
46-
${CMAKE_CURRENT_BINARY_DIR}/dep-clipp-prefix/src/dep-clipp/include/clipp.h
47-
${DEPENDENCY_INSTALL_DIR}/include
48-
TEST_COMMAND ""
49-
)
50-
set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep-clipp)
51-
5233
# json: header-only json parser using modern c++
5334
ExternalProject_Add(
5435
dep-json
5536
GIT_REPOSITORY "https://github.com/nlohmann/json.git"
56-
GIT_TAG "v3.9.0"
37+
GIT_TAG "v3.11.3"
5738
GIT_SHALLOW 1
5839
UPDATE_COMMAND ""
5940
PATCH_COMMAND ""
@@ -68,7 +49,7 @@ set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep-json)
6849
ExternalProject_Add(
6950
dep_magic_enum
7051
GIT_REPOSITORY "https://github.com/Neargye/magic_enum.git"
71-
GIT_TAG "v0.7.3"
52+
GIT_TAG "v0.9.6"
7253
GIT_SHALLOW 1
7354
UPDATE_COMMAND ""
7455
PATCH_COMMAND ""
@@ -84,7 +65,7 @@ set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep_magic_enum)
8465
ExternalProject_Add(
8566
dep_filesystem
8667
GIT_REPOSITORY "https://github.com/gulrak/filesystem.git"
87-
GIT_TAG "v1.3.2"
68+
GIT_TAG "v1.5.14"
8869
GIT_SHALLOW 1
8970
UPDATE_COMMAND ""
9071
PATCH_COMMAND ""
@@ -96,26 +77,47 @@ ExternalProject_Add(
9677
)
9778
set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep_filesystem)
9879

99-
# glfw
80+
# sdl2
10081
ExternalProject_Add(
101-
dep_glfw
102-
GIT_REPOSITORY "https://github.com/glfw/glfw.git"
103-
GIT_TAG "3.3-stable"
82+
dep_sdl
83+
GIT_REPOSITORY "https://github.com/libsdl-org/SDL.git"
84+
GIT_TAG "release-2.30.5"
10485
GIT_SHALLOW 1
10586
UPDATE_COMMAND ""
10687
PATCH_COMMAND ""
10788
CMAKE_ARGS
10889
-DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR}
109-
-DGLFW_BUILD_EXAMPLES=OFF
110-
-DGLFW_BUILD_TESTS=OFF
111-
-DGLFW_BUILD_DOCS=OFF
90+
-DSDL_TEST_LIBRARY=OFF
11291
TEST_COMMAND ""
11392
)
114-
set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep_glfw)
115-
set(DEPENDENCY_LIBS ${DEPENDENCY_LIBS} glfw3)
93+
set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep_sdl)
94+
if (MSVC)
95+
set(DEPENDENCY_LIBS ${DEPENDENCY_LIBS} SDL2$<$<CONFIG:Debug>:d>)
96+
else()
97+
set(DEPENDENCY_LIBS ${DEPENDENCY_LIBS} SDL2)
98+
endif()
11699

117100
## additional dependencies, for graphics programming
118101

102+
# # clipp: header-only good c++ argument parser
103+
# ExternalProject_Add(
104+
# dep-clipp
105+
# GIT_REPOSITORY "https://github.com/muellan/clipp.git"
106+
# GIT_TAG "v1.2.2"
107+
# GIT_SHALLOW 1
108+
# UPDATE_COMMAND ""
109+
# PATCH_COMMAND ""
110+
# CONFIGURE_COMMAND ""
111+
# BUILD_COMMAND ""
112+
# INSTALL_COMMAND
113+
# ${CMAKE_COMMAND} -E make_directory ${DEPENDENCY_INSTALL_DIR}/include &&
114+
# ${CMAKE_COMMAND} -E copy
115+
# ${CMAKE_CURRENT_BINARY_DIR}/dep-clipp-prefix/src/dep-clipp/include/clipp.h
116+
# ${DEPENDENCY_INSTALL_DIR}/include
117+
# TEST_COMMAND ""
118+
# )
119+
# set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep-clipp)
120+
119121
# # stb: the king of header-only libraries
120122
# ExternalProject_Add(
121123
# dep-stb
@@ -171,4 +173,22 @@ set(DEPENDENCY_LIBS ${DEPENDENCY_LIBS} glfw3)
171173
# )
172174
# add_dependencies(dep-imgui dep-glfw)
173175
# set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep-imgui)
174-
# set(DEPENDENCY_LIBS ${DEPENDENCY_LIBS} imgui)
176+
# set(DEPENDENCY_LIBS ${DEPENDENCY_LIBS} imgui)
177+
178+
# # glfw
179+
# ExternalProject_Add(
180+
# dep_glfw
181+
# GIT_REPOSITORY "https://github.com/glfw/glfw.git"
182+
# GIT_TAG "3.3-stable"
183+
# GIT_SHALLOW 1
184+
# UPDATE_COMMAND ""
185+
# PATCH_COMMAND ""
186+
# CMAKE_ARGS
187+
# -DCMAKE_INSTALL_PREFIX=${DEPENDENCY_INSTALL_DIR}
188+
# -DGLFW_BUILD_EXAMPLES=OFF
189+
# -DGLFW_BUILD_TESTS=OFF
190+
# -DGLFW_BUILD_DOCS=OFF
191+
# TEST_COMMAND ""
192+
# )
193+
# set(DEPENDENCY_LIST ${DEPENDENCY_LIST} dep_glfw)
194+
# set(DEPENDENCY_LIBS ${DEPENDENCY_LIBS} glfw3)

src/main.cpp

+18-21
Original file line numberDiff line numberDiff line change
@@ -3,33 +3,30 @@
33
#endif
44

55
#include <spdlog/spdlog.h>
6-
#include <nlohmann/json.hpp>
7-
#include <ghc/filesystem.hpp>
8-
#include <magic_enum.hpp>
9-
#include <clipp.h>
10-
#include <GLFW/glfw3.h>
6+
7+
#define SDL_MAIN_HANDLED
8+
#include <SDL2/SDL.h>
119

1210
int main(int argc, const char** argv) {
13-
SPDLOG_INFO("Initialize glfw");
14-
if (!glfwInit()) {
15-
const char* description = nullptr;
16-
glfwGetError(&description);
17-
SPDLOG_ERROR("failed to initialize glfw: {}", description);
18-
return -1;
19-
}
11+
SPDLOG_INFO("Initialize SDL2");
2012

21-
auto window = glfwCreateWindow(640, 480, "First window", nullptr, nullptr);
22-
if (!window) {
23-
SPDLOG_ERROR("failed to create glfw window");
24-
glfwTerminate();
25-
return -1;
26-
}
13+
SDL_Init(SDL_INIT_VIDEO);
14+
auto window = SDL_CreateWindow("CPP template", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED,
15+
1280, 720, 0);
2716

28-
while (!glfwWindowShouldClose(window)) {
29-
glfwPollEvents();
17+
SDL_Event e;
18+
bool bQuit = false;
19+
// main loop
20+
while (!bQuit) {
21+
// Handle events on queue
22+
while (SDL_PollEvent(&e) != 0) {
23+
// close the window when user alt-f4s or clicks the X button
24+
if (e.type == SDL_QUIT)
25+
bQuit = true;
26+
}
3027
}
3128

32-
glfwTerminate();
29+
SDL_DestroyWindow(window);
3330
return 0;
3431
}
3532

0 commit comments

Comments
 (0)