• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# This file is part of the openHiTLS project.
2#
3# openHiTLS is licensed under the Mulan PSL v2.
4# You can use this software according to the terms and conditions of the Mulan PSL v2.
5# You may obtain a copy of Mulan PSL v2 at:
6#
7#     http://license.coscl.org.cn/MulanPSL2
8#
9# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
10# EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
11# MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
12# See the Mulan PSL v2 for more details.
13cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
14
15PROJECT(openHiTLS_TEST)
16
17set(openHiTLS_SRC "${PROJECT_SOURCE_DIR}/..")
18
19if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
20    option(__x86_64__ "x86" ON)
21endif()
22
23set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -Wformat=2 -Wno-format-nonliteral -Wno-deprecated-declarations -Wno-unused-but-set-variable -Wl,--wrap=REC_Read -Wl,--wrap=REC_Write")
24
25message(STATUS "System processor :${CMAKE_SYSTEM_PROCESSOR}")
26message(STATUS "Enable bsl uio sctp :${ENABLE_UIO_SCTP}")
27if(CMAKE_SIZEOF_VOID_P EQUAL 8)
28    message(STATUS "System architecture: 64")
29else()
30    message(STATUS "System architecture: 32")
31endif()
32
33if(ENABLE_GCOV)
34    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage -lgcov")
35endif()
36
37if(ENABLE_ASAN)
38    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-stack-protector -fno-omit-frame-pointer")
39endif()
40
41if(CUSTOM_CFLAGS)
42    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CUSTOM_CFLAGS}")
43endif()
44
45if(DEBUG)
46    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g")
47endif()
48
49if(PRINT_TO_TERMINAL)
50    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPRINT_TO_TERMINAL=${PRINT_TO_TERMINAL}")
51endif()
52
53if(ENABLE_FAIL_REPEAT)
54    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DENABLE_FAIL_REPEAT=${ENABLE_FAIL_REPEAT}")
55endif()
56
57if(OS_BIG_ENDIAN)
58    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mbig-endian")
59endif()
60
61set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_FILE_OFFSET_BITS=64")
62
63string(FIND "${CUSTOM_CFLAGS}" "-DHITLS_PKI" BUILD_PKI)
64string(FIND "${CUSTOM_CFLAGS}" "-DHITLS_AUTH" BUILD_AUTH)
65string(FIND "${CUSTOM_CFLAGS}" "-DHITLS_CRYPTO" BUILD_CRYPTO)
66string(FIND "${CUSTOM_CFLAGS}" "-DHITLS_TLS" BUILD_TLS)
67
68include(ExternalProject)
69ExternalProject_Add(gen_testcase
70    SOURCE_DIR            ${openHiTLS_SRC}
71    PREFIX                ""
72    BINARY_DIR            ${openHiTLS_SRC}/testcode/framework/gen_test/build/
73    INSTALL_DIR           ""
74    UPDATE_COMMAND        ""
75    CONFIGURE_COMMAND     cmake -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DPRINT_TO_TERMINAL=${ENABLE_PRINT} ..
76    BUILD_COMMAND         make
77    INSTALL_COMMAND       ""
78    BUILD_ALWAYS          FALSE
79    LOG_BUILD             TRUE
80    LOG_DOWNLOAD          TRUE
81    EXCLUDE_FROM_ALL      TRUE
82    LOG_OUTPUT_ON_FAILURE TRUE
83)
84
85add_subdirectory(${openHiTLS_SRC}/testcode/sdv)
86
87if(ENABLE_TLS AND ${BUILD_TLS} GREATER -1)
88    add_subdirectory(${openHiTLS_SRC}/testcode/framework/tls)
89    add_subdirectory(${openHiTLS_SRC}/testcode/framework/process)
90    add_dependencies(gen_testcase process)
91endif()
92