summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt32
1 files changed, 32 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..b5ac51e
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,32 @@
+cmake_minimum_required(VERSION 3.16)
+project(demo64k LANGUAGES C CXX)
+
+option(DEMO_SIZE_OPT "Enable size optimization flags" OFF)
+
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+add_executable(demo64k
+ src/main.cpp
+ src/platform.cpp
+ src/gpu/gpu.cpp
+ src/audio/audio.cpp
+)
+
+target_include_directories(demo64k PRIVATE
+ src
+ third_party
+)
+
+find_package(glfw3 REQUIRED)
+target_link_libraries(demo64k PRIVATE glfw)
+
+if (DEMO_SIZE_OPT)
+ if (MSVC)
+ target_compile_options(demo64k PRIVATE /Os /GS-)
+ target_link_options(demo64k PRIVATE /OPT:REF /OPT:ICF /INCREMENTAL:NO)
+ else()
+ target_compile_options(demo64k PRIVATE -Os -ffunction-sections -fdata-sections)
+ target_link_options(demo64k PRIVATE -Wl,--gc-sections -s)
+ endif()
+endif()