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