blob: f9596d401570ef02d104986a643544752ecf0d6c [file] [log] [blame]
Dávid Vincze92d3f892023-01-05 23:54:22 +01001#-------------------------------------------------------------------------------
2# Copyright (c) 2022-2023, Arm Limited. All rights reserved.
Laurence Lundblade721b56e2024-10-22 03:02:04 -07003# Copyright (c) 2024, Laurence Lundblade. All rights reserved.
Dávid Vincze92d3f892023-01-05 23:54:22 +01004#
5# SPDX-License-Identifier: BSD-3-Clause
6#
7# See BSD-3-Clause license in README.md
8#-------------------------------------------------------------------------------
9
Dávid Vincze306cfc22022-12-19 20:02:39 +010010cmake_minimum_required(VERSION 3.15)
11
12# Validate value of BUILD_QCBOR_TEST config option
13if ((NOT BUILD_QCBOR_TEST STREQUAL "LIB") AND (NOT BUILD_QCBOR_TEST STREQUAL "APP"))
14 message(FATAL_ERROR "QCBOR | Invalid Config: BUILD_QCBOR_TEST=${BUILD_QCBOR_TEST}")
15endif()
16
17add_library(qcbor_test STATIC)
18
19target_sources(qcbor_test
20 PRIVATE
21 float_tests.c
22 half_to_double_from_rfc7049.c
23 qcbor_decode_tests.c
24 qcbor_encode_tests.c
25 run_tests.c
26 UsefulBuf_Tests.c
27)
28
29target_include_directories(qcbor_test
30 PUBLIC
31 .
32 PRIVATE
33 ../inc
34)
35
Dávid Vincze92d3f892023-01-05 23:54:22 +010036target_compile_definitions(qcbor_test
37 PUBLIC
38 $<$<BOOL:${QCBOR_OPT_DISABLE_FLOAT_HW_USE}>:QCBOR_DISABLE_FLOAT_HW_USE>
39 $<$<BOOL:${QCBOR_OPT_DISABLE_FLOAT_PREFERRED}>:QCBOR_DISABLE_PREFERRED_FLOAT>
40 $<$<BOOL:${QCBOR_OPT_DISABLE_FLOAT_ALL}>:USEFULBUF_DISABLE_ALL_FLOAT>
41)
42
Dávid Vincze306cfc22022-12-19 20:02:39 +010043target_link_libraries(qcbor_test
44 PRIVATE
45 qcbor
46 # The math library is needed for floating-point support.
47 # To avoid need for it #define QCBOR_DISABLE_FLOAT_HW_USE
Dávid Vincze92d3f892023-01-05 23:54:22 +010048 # Using GCC
49 $<$<AND:$<STREQUAL:${CMAKE_C_COMPILER_ID},"GNU">,$<NOT:$<BOOL:${QCBOR_OPT_DISABLE_FLOAT_HW_USE}>>>:m>
Dávid Vincze306cfc22022-12-19 20:02:39 +010050)
51
52if (BUILD_QCBOR_TEST STREQUAL "APP")
53 add_executable(qcbortest)
54
55 target_sources(qcbortest
56 PRIVATE
57 ../cmd_line_main.c
58 ../example.c
Laurence Lundblade721b56e2024-10-22 03:02:04 -070059 ../tag-examples.c
Dávid Vincze306cfc22022-12-19 20:02:39 +010060 ../ub-example.c
61 )
62
63 target_include_directories(qcbortest
64 PRIVATE
65 ../
66 )
67
68 target_link_libraries(qcbortest
69 PRIVATE
70 qcbor
71 qcbor_test
72 )
Brian Sipos3bc24ae2025-01-03 23:54:07 -050073
74 message(STATUS "Adding test qcbortest")
75 add_test(
76 NAME qcbortest
77 COMMAND qcbortest
78 )
Dávid Vincze306cfc22022-12-19 20:02:39 +010079endif()