Skip to content

Commit 1ecef14

Browse files
committed
Set optimization-related flags in CMakePlugin.kt
1 parent 68607f1 commit 1ecef14

File tree

2 files changed

+55
-37
lines changed

2 files changed

+55
-37
lines changed

‎app/jni/CMakeLists.txt

-25
Original file line numberDiff line numberDiff line change
@@ -70,31 +70,6 @@ else()
7070
endif()
7171
set(ORIGINAL_CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS}")
7272

73-
set(ADD_COMMON_FLAG
74-
-w -Werror=return-type
75-
-ferror-limit=0
76-
)
77-
if (${CMAKE_BUILD_TYPE} STREQUAL "Debug")
78-
list(APPEND ADD_COMMON_FLAG
79-
-O2
80-
-fno-omit-frame-pointer
81-
)
82-
else()
83-
list(APPEND ADD_COMMON_FLAG
84-
-O3
85-
-finline-functions -ffast-math
86-
-fno-rtti
87-
)
88-
endif()
89-
90-
Join(ADD_COMMON_FLAGS "${ADD_COMMON_FLAGS}" " ")
91-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ADD_COMMON_FLAGS} -D_LARGEFILE_SOURCE=1")
92-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${ADD_COMMON_FLAGS} -std=c++17")
93-
94-
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} \
95-
-Wl,--gc-sections,--icf=safe \
96-
-Wl,--build-id=sha1"
97-
)
9873
set(EXCLUDE_LIBS
9974
libjni-utils.a
10075
libflac.a

‎buildSrc/src/main/kotlin/me/vkryl/plugin/CMakePlugin.kt

+55-12
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,61 @@ open class CMakePlugin : Plugin<Project> {
2828
path("jni/CMakeLists.txt")
2929
}
3030
}
31-
defaultConfig {
32-
externalNativeBuild {
33-
cmake {
34-
arguments(
35-
"-DANDROID_STL=c++_shared",
36-
"-DANDROID_PLATFORM=android-${Config.MIN_SDK_VERSION}",
37-
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON",
38-
"-DCMAKE_SKIP_RPATH=ON",
39-
"-DCMAKE_C_VISIBILITY_PRESET=hidden",
40-
"-DCMAKE_CXX_VISIBILITY_PRESET=hidden",
41-
"-DCMAKE_BUILD_PARALLEL_LEVEL=${Runtime.getRuntime().availableProcessors()}"
42-
)
31+
buildTypes {
32+
getByName("debug") {
33+
externalNativeBuild {
34+
cmake {
35+
val flags = arrayOf(
36+
"-w",
37+
"-Werror=return-type",
38+
"-ferror-limit=0",
39+
40+
"-O2",
41+
"-fno-omit-frame-pointer"
42+
)
43+
arguments(
44+
"-DANDROID_STL=c++_shared",
45+
"-DANDROID_PLATFORM=android-${Config.MIN_SDK_VERSION}",
46+
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON",
47+
"-DCMAKE_SKIP_RPATH=ON",
48+
"-DCMAKE_C_VISIBILITY_PRESET=hidden",
49+
"-DCMAKE_CXX_VISIBILITY_PRESET=hidden",
50+
"-DCMAKE_BUILD_PARALLEL_LEVEL=${Runtime.getRuntime().availableProcessors()}",
51+
"-DCMAKE_SHARED_LINKER_FLAGS=-Wl,--gc-sections,--icf=safe -Wl,--build-id=sha1",
52+
"-DCMAKE_C_FLAGS=-D_LARGEFILE_SOURCE=1 ${flags.joinToString(" ")}",
53+
"-DCMAKE_CXX_FLAGS=-std=c++17 ${flags.joinToString(" ")}"
54+
)
55+
}
56+
}
57+
}
58+
59+
getByName("release") {
60+
externalNativeBuild {
61+
cmake {
62+
val flags = listOf(
63+
"-w",
64+
"-Werror=return-type",
65+
"-ferror-limit=0",
66+
67+
"-O3",
68+
"-finline-functions",
69+
"-ffast-math",
70+
"-fno-rtti"
71+
)
72+
73+
arguments(
74+
"-DANDROID_STL=c++_shared",
75+
"-DANDROID_PLATFORM=android-${Config.MIN_SDK_VERSION}",
76+
"-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON",
77+
"-DCMAKE_SKIP_RPATH=ON",
78+
"-DCMAKE_C_VISIBILITY_PRESET=hidden",
79+
"-DCMAKE_CXX_VISIBILITY_PRESET=hidden",
80+
"-DCMAKE_BUILD_PARALLEL_LEVEL=${Runtime.getRuntime().availableProcessors()}",
81+
"-DCMAKE_SHARED_LINKER_FLAGS=-Wl,--gc-sections,--icf=safe -Wl,--build-id=sha1",
82+
"-DCMAKE_C_FLAGS=-D_LARGEFILE_SOURCE=1 ${flags.joinToString(" ")}",
83+
"-DCMAKE_CXX_FLAGS=-std=c++17 ${flags.joinToString(" ")}"
84+
)
85+
}
4386
}
4487
}
4588
}

0 commit comments

Comments
 (0)