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.
This commit is contained in:
Dan Albert
2025-09-03 15:25:19 -07:00
committed by Dan Albert
parent 47f2fc7731
commit 36a3dc6811
7 changed files with 25 additions and 9 deletions

View File

@@ -1,9 +1,9 @@
cmake_minimum_required(VERSION 3.22.1)
project(echo LANGUAGES C CXX)
add_compile_options(-Wall -Wextra -Werror)
include(AppLibrary)
add_library(echo
add_app_library(echo
SHARED
audio_main.cpp
audio_player.cpp

View File

@@ -1,9 +1,9 @@
cmake_minimum_required(VERSION 3.22.1)
project(Base LANGUAGES CXX)
add_compile_options(-Wall -Werror -Wextra)
include(AppLibrary)
add_library(base
add_app_library(base
STATIC
logging.cpp
)

View File

@@ -1,9 +1,9 @@
cmake_minimum_required(VERSION 3.22.1)
project(BitmapPlasma LANGUAGES CXX)
add_compile_options(-Wall -Wextra -Werror)
include(AppLibrary)
add_library(plasma SHARED plasma.cpp)
add_app_library(plasma SHARED plasma.cpp)
# Include libraries needed for plasma lib
target_link_libraries(plasma

View File

@@ -30,6 +30,7 @@ class AndroidApplicationConventionPlugin : Plugin<Project> {
externalNativeBuild {
cmake {
arguments.add("-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON")
arguments.add("-DCMAKE_MODULE_PATH=${rootDir.resolve("cmake")}")
}
}

View File

@@ -33,6 +33,7 @@ class AndroidLibraryConventionPlugin : Plugin<Project> {
externalNativeBuild {
cmake {
arguments.add("-DANDROID_SUPPORT_FLEXIBLE_PAGE_SIZES=ON")
arguments.add("-DCMAKE_MODULE_PATH=${rootDir.resolve("cmake")}")
}
}
ndk {

15
cmake/AppLibrary.cmake Normal file
View File

@@ -0,0 +1,15 @@
include_guard()
# Wrapper for add_library which enables common options we want for all
# libraries.
function(add_app_library name)
cmake_parse_arguments(PARSE_ARGV 1 arg "" "" "")
add_library(${name} ${arg_UNPARSED_ARGUMENTS})
target_compile_options(${name}
PRIVATE
-Wall
-Wextra
-Werror
)
endfunction()

View File

@@ -1,11 +1,10 @@
cmake_minimum_required(VERSION 3.22.1)
project(Vectorization LANGUAGES CXX)
add_compile_options(-Wall -Wextra -Werror)
include(AppLibrary)
find_package(base REQUIRED CONFIG)
add_library(app
add_app_library(app
SHARED
benchmark.cpp
jni.cpp