unified_retro_keyboard/firmware/asdf/test/CmakeLists.txt
Dave 51022040f1 Update to automate firmware builds
- build on checkin to asdf-release or asdf-built-test
- deploy to https://dfnr2.github.io/unified-retro-keyboard
2022-09-07 15:38:28 -05:00

115 lines
2.2 KiB
Plaintext

configure_file(${PROJECT_SRC_DIR}/Arch/asdf_arch_test.h ${CMAKE_CURRENT_BINARY_DIR}/asdf_arch.h COPYONLY)
list(APPEND C_FLAGS
"-std=c99"
"-Wall"
"-Wextra"
"-Wpointer-arith"
"-Wcast-align"
"-Wwrite-strings"
"-Wswitch-default"
"-Wunreachable-code"
"-Winit-self"
"-Wmissing-field-initializers"
"-Wno-unknown-pragmas"
"-Wstrict-prototypes"
"-Wundef"
"-Wold-style-definition"
"-g"
)
list(APPEND TEST_INCLUDES
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${PROJECT_SRC_DIR}
${PROJECT_SRC_DIR}/Arch
)
add_library(unity
STATIC
${CMAKE_CURRENT_SOURCE_DIR}/unity/unity.c
)
target_include_directories(unity
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/unity
)
add_library(asdf_core
STATIC
asdf_keymap_table.c
${PROJECT_SRC_DIR}/asdf.c
${PROJECT_SRC_DIR}/asdf_buffer.c
${PROJECT_SRC_DIR}/asdf_hook.c
${PROJECT_SRC_DIR}/asdf_keymaps.c
${PROJECT_SRC_DIR}/asdf_modifiers.c
${PROJECT_SRC_DIR}/asdf_physical.c
${PROJECT_SRC_DIR}/asdf_repeat.c
${PROJECT_SRC_DIR}/asdf_virtual.c
${PROJECT_SRC_DIR}/Arch/asdf_arch_test.c
)
target_include_directories(asdf_core
PRIVATE
${PROJECT_SRC_DIR}
${PROJECT_SRC_DIR}/Arch
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
add_library(test_helpers
STATIC
${CMAKE_CURRENT_SOURCE_DIR}/test_asdf_lib.c
${CMAKE_CURRENT_SOURCE_DIR}/test_asdf_keymap_defs.c
${CMAKE_CURRENT_SOURCE_DIR}/asdf_keymap_table.c
)
target_include_directories(test_helpers
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${PROJECT_SRC_DIR}
${CMAKE_CURRENT_BINARY_DIR}
)
target_compile_options(test_helpers
PRIVATE
${CFLAGS}
)
function(setup_test testname)
add_executable(${testname}
${testname}.c
)
target_compile_options(${testname}
PRIVATE
${CFLAGS}
)
target_include_directories(${testname}
PRIVATE
${TEST_INCLUDES}
)
target_link_libraries(${testname} unity asdf_core test_helpers)
add_test(
NAME ${testname}
COMMAND ${CMAKE_BINARY_DIR}/test/${testname}
)
endfunction()
enable_testing()
setup_test(test_asdf_repeat)
setup_test(test_asdf_modifiers)
setup_test(test_asdf_keymaps)
setup_test(test_asdf_buffer)
setup_test(test_asdf_virtual)
setup_test(test_asdf_hook)