From 5a7f214a5db06b86f12a83844d982dbc6ad58454 Mon Sep 17 00:00:00 2001 From: Stephen Seo Date: Tue, 21 Jul 2020 20:03:22 +0900 Subject: [PATCH] Init skeleton project --- .gitignore | 1 + .gitmodules | 6 ++++ CMakeLists.txt | 57 +++++++++++++++++++++++++++++++++++++ include/imconfig.h | 1 + include/imgui-SFML_export.h | 1 + include/imgui.h | 1 + include/imgui_internal.h | 1 + include/imstb_rectpack.h | 1 + include/imstb_textedit.h | 1 + include/imstb_truetype.h | 1 + src/main.cpp | 7 +++++ third_party/imgui | 1 + third_party/imgui-sfml | 1 + 13 files changed, 80 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 CMakeLists.txt create mode 120000 include/imconfig.h create mode 120000 include/imgui-SFML_export.h create mode 120000 include/imgui.h create mode 120000 include/imgui_internal.h create mode 120000 include/imstb_rectpack.h create mode 120000 include/imstb_textedit.h create mode 120000 include/imstb_truetype.h create mode 100644 src/main.cpp create mode 160000 third_party/imgui create mode 160000 third_party/imgui-sfml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a5309e6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build*/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..c79a8df --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "third_party/imgui"] + path = third_party/imgui + url = https://github.com/ocornut/imgui.git +[submodule "third_party/imgui-sfml"] + path = third_party/imgui-sfml + url = https://github.com/eliasdaler/imgui-sfml.git diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..05ee37d --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,57 @@ +cmake_minimum_required(VERSION 3.0) +project(Triangles LANGUAGES CXX VERSION 1.0) + +if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/imgui) + message(FATAL_ERROR "third_party/imgui is missing!\nPlease update the \ +GameDevTools submodule by running 'git submodule init' and 'git submodule \ +update'!") +endif() +if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/imgui-sfml) + message(FATAL_ERROR "third_party/imgui-sfml is missing!\nPlease update the \ +GameDevTools submodule by running 'git submodule init' and 'git submodule \ +update'!") +endif() + +set(ImGuiDemo "") +if((NOT CMAKE_BUILD_TYPE) OR (${CMAKE_BUILD_TYPE} MATCHES "Debug")) + set(ImGuiDemo "third_party/imgui/imgui_demo.cpp") +endif() + +set(Triangles_SOURCES + src/main.cpp + third_party/imgui/imgui.cpp + third_party/imgui/imgui_draw.cpp + third_party/imgui/imgui_widgets.cpp + third_party/imgui-sfml/imgui-SFML.cpp +) + +set(CMAKE_CXX_FLAGS "-Wall -Wextra -Wpedantic -Wsuggest-override") +set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g") +set(CMAKE_CXX_FLAGS_RELEASE "-O3 -D NDEBUG") + +add_executable(Triangles ${Triangles_SOURCES}) + +target_compile_features(Triangles PUBLIC cxx_std_17) + +if(BUILD_SHARED_LIBS OR (UNIX AND NOT CYGWIN)) + find_package(SFML 2 REQUIRED + COMPONENTS audio network graphics window system) +else() + find_package(SFML 2 REQUIRED + COMPONENTS audio-s network-s graphics-s window-s system-s) + add_definitions(-DSFML_STATIC) +endif() + +target_link_libraries(Triangles + sfml-graphics sfml-window sfml-system + GL +) + +target_include_directories(Triangles PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/src + ${SFML_INCLUDE_DIR} + ${CMAKE_CURRENT_SOURCE_DIR}/include # imgui related headers +) +# Use macro to override imgui config header +target_compile_definitions(Triangles PRIVATE + "IMGUI_USER_CONFIG=\"${CMAKE_CURRENT_SOURCE_DIR}/third_party/imgui-sfml/imconfig-SFML.h\"") diff --git a/include/imconfig.h b/include/imconfig.h new file mode 120000 index 0000000..b087668 --- /dev/null +++ b/include/imconfig.h @@ -0,0 +1 @@ +../third_party/imgui-sfml/imconfig-SFML.h \ No newline at end of file diff --git a/include/imgui-SFML_export.h b/include/imgui-SFML_export.h new file mode 120000 index 0000000..6597ef8 --- /dev/null +++ b/include/imgui-SFML_export.h @@ -0,0 +1 @@ +../third_party/imgui-sfml/imgui-SFML_export.h \ No newline at end of file diff --git a/include/imgui.h b/include/imgui.h new file mode 120000 index 0000000..a826818 --- /dev/null +++ b/include/imgui.h @@ -0,0 +1 @@ +../third_party/imgui/imgui.h \ No newline at end of file diff --git a/include/imgui_internal.h b/include/imgui_internal.h new file mode 120000 index 0000000..af37369 --- /dev/null +++ b/include/imgui_internal.h @@ -0,0 +1 @@ +../third_party/imgui/imgui_internal.h \ No newline at end of file diff --git a/include/imstb_rectpack.h b/include/imstb_rectpack.h new file mode 120000 index 0000000..850bd4e --- /dev/null +++ b/include/imstb_rectpack.h @@ -0,0 +1 @@ +../third_party/imgui/imstb_rectpack.h \ No newline at end of file diff --git a/include/imstb_textedit.h b/include/imstb_textedit.h new file mode 120000 index 0000000..266b3ee --- /dev/null +++ b/include/imstb_textedit.h @@ -0,0 +1 @@ +../third_party/imgui/imstb_textedit.h \ No newline at end of file diff --git a/include/imstb_truetype.h b/include/imstb_truetype.h new file mode 120000 index 0000000..4a8033e --- /dev/null +++ b/include/imstb_truetype.h @@ -0,0 +1 @@ +../third_party/imgui/imstb_truetype.h \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..817b524 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,7 @@ +#include +#include +#include + +int main(int argc, char **argv) { + return 0; +} diff --git a/third_party/imgui b/third_party/imgui new file mode 160000 index 0000000..9418dcb --- /dev/null +++ b/third_party/imgui @@ -0,0 +1 @@ +Subproject commit 9418dcb69355558f70de260483424412c5ca2fce diff --git a/third_party/imgui-sfml b/third_party/imgui-sfml new file mode 160000 index 0000000..488c321 --- /dev/null +++ b/third_party/imgui-sfml @@ -0,0 +1 @@ +Subproject commit 488c321155547cb499697dac155aa6269d53c21f