aboutsummaryrefslogtreecommitdiff
path: root/cmake/Modules/AddExample.cmake
blob: e5a78e68012967b1a67e3697a0d686a853f8658e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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()