Skip to content

Commit 36a3dc6

Browse files
committed
Factor out common library flags to a function.
I assume I'll want to make more "global" changes at some point, so rather than copying the same add_compile_options into every project, create add_app_library() as a wrapper around add_library() which handles the common stuff.
1 parent 47f2fc7 commit 36a3dc6

File tree

7 files changed

+25
-9
lines changed

7 files changed

+25
-9
lines changed

audio-echo/app/src/main/cpp/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
cmake_minimum_required(VERSION 3.22.1)
22
project(echo LANGUAGES C CXX)
33

4-
add_compile_options(-Wall -Wextra -Werror)
4+
include(AppLibrary)
55

6-
add_library(echo
6+
add_app_library(echo
77
SHARED
88
audio_main.cpp
99
audio_player.cpp

base/src/main/cpp/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
cmake_minimum_required(VERSION 3.22.1)
22
project(Base LANGUAGES CXX)
33

4-
add_compile_options(-Wall -Werror -Wextra)
4+
include(AppLibrary)
55

6-
add_library(base
6+
add_app_library(base
77
STATIC
88
logging.cpp
99
)

bitmap-plasma/app/src/main/cpp/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
cmake_minimum_required(VERSION 3.22.1)
22
project(BitmapPlasma LANGUAGES CXX)
33

4-
add_compile_options(-Wall -Wextra -Werror)
4+
include(AppLibrary)
55

6-
add_library(plasma SHARED plasma.cpp)
6+
add_app_library(plasma SHARED plasma.cpp)
77

88
# Include libraries needed for plasma lib
99
target_link_libraries(plasma

build-logic/src/main/java/com/android/ndk/samples/buildlogic/AndroidApplicationConventionPlugin.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class AndroidApplicationConventionPlugin : Plugin<Project> {
3030
externalNativeBuild {
3131
cmake {
3232
arguments.add("-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON")
33+
arguments.add("-DCMAKE_MODULE_PATH=${rootDir.resolve("cmake")}")
3334
}
3435
}
3536

build-logic/src/main/java/com/android/ndk/samples/buildlogic/AndroidLibraryConventionPlugin.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class AndroidLibraryConventionPlugin : Plugin<Project> {
3333
externalNativeBuild {
3434
cmake {
3535
arguments.add("-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON")
36+
arguments.add("-DCMAKE_MODULE_PATH=${rootDir.resolve("cmake")}")
3637
}
3738
}
3839
ndk {

cmake/AppLibrary.cmake

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
include_guard()
2+
3+
# Wrapper for add_library which enables common options we want for all
4+
# libraries.
5+
function(add_app_library name)
6+
cmake_parse_arguments(PARSE_ARGV 1 arg "" "" "")
7+
add_library(${name} ${arg_UNPARSED_ARGUMENTS})
8+
9+
target_compile_options(${name}
10+
PRIVATE
11+
-Wall
12+
-Wextra
13+
-Werror
14+
)
15+
endfunction()

vectorization/src/main/cpp/CMakeLists.txt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
cmake_minimum_required(VERSION 3.22.1)
22
project(Vectorization LANGUAGES CXX)
33

4-
add_compile_options(-Wall -Wextra -Werror)
5-
4+
include(AppLibrary)
65
find_package(base REQUIRED CONFIG)
76

8-
add_library(app
7+
add_app_library(app
98
SHARED
109
benchmark.cpp
1110
jni.cpp

0 commit comments

Comments
 (0)