Skip to content

Commit 2d58541

Browse files
Use LTO for building final binary. Remove -g flag from MinSizeRel build
1 parent d8ca7ef commit 2d58541

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

CMakeLists.txt

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,24 @@ include_directories(${FONTFORGE_INCLUDE_DIRS})
5959
link_directories(${FONTFORGE_LIBRARY_DIRS})
6060
set(PDF2HTMLEX_LIBS ${PDF2HTMLEX_LIBS} ${FONTFORGE_LIBRARIES})
6161

62-
if (NOT ANDROID)
62+
if (ANDROID)
63+
if(CMAKE_BUILD_TYPE STREQUAL MinSizeRel)
64+
STRING(REPLACE "-g " " " CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
65+
STRING(REPLACE "-g " " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
66+
endif()
67+
68+
# -flto does not work with -Os on Android
69+
# https://github.com/android-ndk/ndk/issues/721
70+
STRING(REPLACE "-Os " "-O2 " CMAKE_C_FLAGS_MINSIZEREL ${CMAKE_C_FLAGS_MINSIZEREL})
71+
STRING(REPLACE "-Os " "-O2 " CMAKE_CXX_FLAGS_MINSIZEREL ${CMAKE_CXX_FLAGS_MINSIZEREL})
72+
73+
STRING(APPEND CMAKE_C_FLAGS_MINSIZEREL " -flto=full ")
74+
STRING(APPEND CMAKE_CXX_FLAGS_MINSIZEREL " -flto=full ")
75+
STRING(APPEND CMAKE_EXE_LINKER_FLAGS_MINSIZEREL " -flto=full ")
76+
STRING(APPEND CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL " -flto=full ")
77+
STRING(APPEND CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL " -flto=full ")
78+
STRING(APPEND CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL " -flto=full ")
79+
else()
6380
# debug build flags (overwrite default cmake debug flags)
6481
set(CMAKE_C_FLAGS_DEBUG "-ggdb -pg")
6582
set(CMAKE_CXX_FLAGS_DEBUG "-ggdb -pg")
@@ -84,7 +101,8 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
84101
else()
85102
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -pthread")
86103
endif()
87-
endif (NOT ANDROID)
104+
105+
endif()
88106

89107
# check the C++11 features we need
90108
include(CheckCXXSourceCompiles)

0 commit comments

Comments
 (0)