summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt9
1 files changed, 9 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fc4ea81..1238a8a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,6 +2,12 @@ cmake_minimum_required(VERSION 3.16)
project(demo64k LANGUAGES C CXX)
option(DEMO_SIZE_OPT "Enable size optimization flags" OFF)
+option(DEMO_STRIP_ALL "Strip all unnecessary code for final build" OFF)
+
+if (DEMO_STRIP_ALL)
+ add_definitions(-DSTRIP_ALL)
+ set(DEMO_SIZE_OPT ON)
+endif()
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -53,6 +59,9 @@ if (DEMO_SIZE_OPT)
if (MSVC)
target_compile_options(demo64k PRIVATE /Os /GS-)
target_link_options(demo64k PRIVATE /OPT:REF /OPT:ICF /INCREMENTAL:NO)
+ elseif (APPLE)
+ target_compile_options(demo64k PRIVATE -Os)
+ target_link_options(demo64k PRIVATE -Wl,-dead_strip)
else()
target_compile_options(demo64k PRIVATE -Os -ffunction-sections -fdata-sections)
target_link_options(demo64k PRIVATE -Wl,--gc-sections -s)