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()