blob: ab53f70dc0d400c1b7fc5478b37c6b0d691c9e42 [file] [log] [blame]
Dávid Vincze92d3f892023-01-05 23:54:22 +01001#-------------------------------------------------------------------------------
2# Copyright (c) 2022-2023, Arm Limited. All rights reserved.
3#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6# See BSD-3-Clause license in README.md
7#-------------------------------------------------------------------------------
8
Dávid Vincze306cfc22022-12-19 20:02:39 +01009cmake_minimum_required(VERSION 3.15)
10
11# Validate value of BUILD_QCBOR_TEST config option
12if ((NOT BUILD_QCBOR_TEST STREQUAL "LIB") AND (NOT BUILD_QCBOR_TEST STREQUAL "APP"))
13 message(FATAL_ERROR "QCBOR | Invalid Config: BUILD_QCBOR_TEST=${BUILD_QCBOR_TEST}")
14endif()
15
16add_library(qcbor_test STATIC)
17
18target_sources(qcbor_test
19 PRIVATE
20 float_tests.c
21 half_to_double_from_rfc7049.c
22 qcbor_decode_tests.c
23 qcbor_encode_tests.c
24 run_tests.c
25 UsefulBuf_Tests.c
26)
27
28target_include_directories(qcbor_test
29 PUBLIC
30 .
31 PRIVATE
32 ../inc
33)
34
Dávid Vincze92d3f892023-01-05 23:54:22 +010035target_compile_definitions(qcbor_test
36 PUBLIC
37 $<$<BOOL:${QCBOR_OPT_DISABLE_FLOAT_HW_USE}>:QCBOR_DISABLE_FLOAT_HW_USE>
38 $<$<BOOL:${QCBOR_OPT_DISABLE_FLOAT_PREFERRED}>:QCBOR_DISABLE_PREFERRED_FLOAT>
39 $<$<BOOL:${QCBOR_OPT_DISABLE_FLOAT_ALL}>:USEFULBUF_DISABLE_ALL_FLOAT>
40)
41
Dávid Vincze306cfc22022-12-19 20:02:39 +010042target_link_libraries(qcbor_test
43 PRIVATE
44 qcbor
45 # The math library is needed for floating-point support.
46 # To avoid need for it #define QCBOR_DISABLE_FLOAT_HW_USE
Dávid Vincze92d3f892023-01-05 23:54:22 +010047 # Using GCC
48 $<$<AND:$<STREQUAL:${CMAKE_C_COMPILER_ID},"GNU">,$<NOT:$<BOOL:${QCBOR_OPT_DISABLE_FLOAT_HW_USE}>>>:m>
Dávid Vincze306cfc22022-12-19 20:02:39 +010049)
50
51if (BUILD_QCBOR_TEST STREQUAL "APP")
52 add_executable(qcbortest)
53
54 target_sources(qcbortest
55 PRIVATE
56 ../cmd_line_main.c
57 ../example.c
58 ../ub-example.c
59 )
60
61 target_include_directories(qcbortest
62 PRIVATE
63 ../
64 )
65
66 target_link_libraries(qcbortest
67 PRIVATE
68 qcbor
69 qcbor_test
70 )
71endif()