summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt44
1 files changed, 44 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..a900df3
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,44 @@
+cmake_minimum_required(VERSION 3.10)
+project(emulator C CXX)
+
+set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
+
+set(CMAKE_CXX_STANDARD 26)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_EXTENSIONS OFF)
+
+add_subdirectory(external/glfw)
+add_subdirectory(external/gtest)
+
+if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+ add_compile_definitions(Debug)
+ set(CMAKE_BUILD_TYPE Debug)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address,undefined -g")
+ message(STATUS "Building with debug mode.")
+else()
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fstack-protector")
+endif()
+
+find_package(OpenGL REQUIRED)
+
+file(GLOB_RECURSE SRC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp")
+file(GLOB IMGUI_SRC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/external/imgui/*.cpp")
+
+add_executable(emulator ${SRC_FILES}
+ ${CMAKE_CURRENT_SOURCE_DIR}/external/glad/src/glad.c
+ ${IMGUI_SRC_FILES}
+ "${CMAKE_CURRENT_SOURCE_DIR}/external/imgui/backends/imgui_impl_glfw.cpp"
+ "${CMAKE_CURRENT_SOURCE_DIR}/external/imgui/backends/imgui_impl_glfw.h"
+ "${CMAKE_CURRENT_SOURCE_DIR}/external/imgui/backends/imgui_impl_opengl3.cpp"
+ "${CMAKE_CURRENT_SOURCE_DIR}/external/imgui/backends/imgui_impl_opengl3.h"
+ "${CMAKE_CURRENT_SOURCE_DIR}/external/imgui/backends/imgui_impl_opengl3_loader.h"
+)
+
+target_link_libraries(emulator PRIVATE glfw OpenGL::GL)
+target_include_directories(emulator PRIVATE external/glfw/include
+ external/glad/include
+ external/imgui
+ external/imgui_club/imgui_memory_editor
+ )
+
+add_subdirectory(tests)