aboutsummaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2026-01-06 14:19:58 +0100
committerFelix Morgner <felix.morgner@gmail.com>2026-01-06 14:19:58 +0100
commit66e986572d65e622e78190aa971313ed7e3c8b9b (patch)
treed3bcdaf2eeb66da2d3898e037224c99c3ad426c1 /cmake
parentd9ab9b52be6950f5429d9b9b4d3596599f53449d (diff)
downloadnewtype-develop.tar.xz
newtype-develop.zip
build: clean up configurationHEADdevelop
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Modules/AddExample.cmake25
1 files changed, 25 insertions, 0 deletions
diff --git a/cmake/Modules/AddExample.cmake b/cmake/Modules/AddExample.cmake
new file mode 100644
index 0000000..e5a78e6
--- /dev/null
+++ b/cmake/Modules/AddExample.cmake
@@ -0,0 +1,25 @@
+function(newtype_add_example SOURCE_FILE)
+ get_filename_component(NAME "${SOURCE_FILE}" NAME_WE)
+
+ add_executable("ex_${NAME}")
+
+ target_sources("ex_${NAME}" PRIVATE
+ ${SOURCE_FILE}
+ )
+
+ target_link_libraries("ex_${NAME}" PRIVATE
+ "newtype::lib"
+ )
+
+ target_compile_options("ex_${NAME}" PRIVATE
+ "$<$<CXX_COMPILER_ID:GNU,Clang>:-Wall>"
+ "$<$<CXX_COMPILER_ID:GNU,Clang>:-Wextra>"
+ "$<$<CXX_COMPILER_ID:GNU,Clang>:-Werror>"
+ "$<$<CXX_COMPILER_ID:GNU,Clang>:-pedantic-errors>"
+ )
+
+ set_target_properties("ex_${NAME}" PROPERTIES
+ CMAKE_CXX_EXTENSIONS OFF
+ CMAKE_CXX_STANDARD_REQUIRED YES
+ )
+endfunction()