aboutsummaryrefslogtreecommitdiff
path: root/cmake/Modules/AddExample.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/Modules/AddExample.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()