• 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.
13
14cmake_minimum_required(VERSION 3.16 FATAL_ERROR)
15
16project(openHiTLS_PROVIDER_TEST)
17
18set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -shared")
19
20# Set output directory
21set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR})
22
23# Define a function to recursively include directories
24function(include_directories_recursive dir)
25    include_directories(${dir})
26    file(GLOB children RELATIVE ${dir} ${dir}/*)
27    foreach(child ${children})
28        if(IS_DIRECTORY ${dir}/${child})
29            include_directories_recursive(${dir}/${child})
30        endif()
31    endforeach()
32endfunction()
33
34# Call the function to recursively include the specified directory
35include_directories_recursive(${CMAKE_SOURCE_DIR}/../../../include)
36
37# Define four file areas
38set(SOURCE_FILES_PATH1_SO
39    provider_load_test1.c
40)
41
42set(SOURCE_FILES_PATH1_LIBSO
43    provider_get_cap_test1.c
44    provider_load_test2.c
45    provider_load_test_no_fullfunc.c
46    provider_load_test_no_init.c
47    provider_load_test1.c
48    provider_load_test_providerNoInit.c
49    provider_load_test_providerNoFree.c
50    provider_self_decoder_test.c
51)
52
53set(SOURCE_FILES_PATH2_SO
54
55)
56
57set(SOURCE_FILES_PATH2_LIBSO
58    provider_load_test1.c
59)
60
61
62# Create shared library targets for files with %s.so format in path1 directory
63foreach(SOURCE_FILE ${SOURCE_FILES_PATH1_SO})
64    get_filename_component(FILE_NAME ${SOURCE_FILE} NAME_WE)
65    if(NOT TARGET ${FILE_NAME}_path1)
66        add_library(${FILE_NAME}_path1 SHARED ${SOURCE_FILE})
67        set_target_properties(${FILE_NAME}_path1 PROPERTIES
68        PREFIX ""
69        OUTPUT_NAME "${FILE_NAME}"
70        LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/path1"
71    )
72    endif()
73endforeach()
74
75# Create shared library targets for files with lib%s.so format in path1 directory
76foreach(SOURCE_FILE ${SOURCE_FILES_PATH1_LIBSO})
77    get_filename_component(FILE_NAME ${SOURCE_FILE} NAME_WE)
78    if(NOT TARGET lib${FILE_NAME}_path1)
79        add_library(lib${FILE_NAME}_path1 SHARED ${SOURCE_FILE} provider_test_utils.c)
80        target_include_directories(lib${FILE_NAME}_path1 PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
81        target_compile_options(lib${FILE_NAME}_path1 PRIVATE -g -O0)
82        set_target_properties(lib${FILE_NAME}_path1 PROPERTIES
83        PREFIX ""
84        OUTPUT_NAME "lib${FILE_NAME}"
85        LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/path1"
86    )
87    endif()
88endforeach()
89
90
91set(OPENHITLS_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
92add_library(provider_new_alg_test SHARED provider_new_alg_test.c provider_test_utils.c)
93target_link_directories(provider_new_alg_test PUBLIC ${OPENHITLS_ROOT}/build
94                                            ${OPENHITLS_ROOT}/platform/Secure_C/lib)
95target_include_directories(provider_new_alg_test PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
96                                               ${OPENHITLS_ROOT}/include/crypto
97                                               ${OPENHITLS_ROOT}/include/bsl
98                                               ${OPENHITLS_ROOT}/config/macro_config
99                                               ${OPENHITLS_ROOT}/bsl/obj/include
100                                               ${OPENHITLS_ROOT}/bsl/asn1/include
101                                               ${OPENHITLS_ROOT}/crypto/codecskey/include
102                                               ${OPENHITLS_ROOT}/platform/Secure_C/include)
103target_link_libraries(provider_new_alg_test  boundscheck)
104target_compile_options(provider_new_alg_test PUBLIC -g -O0 -DHITLS_BSL_OBJ -DHITLS_CRYPTO_CODECSKEY -DHITLS_CRYPTO_KEY_DECODE)
105set_target_properties(provider_new_alg_test PROPERTIES
106LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/path1"
107)
108
109# Create shared library targets for files with %s.so format in path2 directory
110foreach(SOURCE_FILE ${SOURCE_FILES_PATH2_SO})
111    get_filename_component(FILE_NAME ${SOURCE_FILE} NAME_WE)
112    if(NOT TARGET ${FILE_NAME}_path2)
113        add_library(${FILE_NAME}_path2 SHARED ${SOURCE_FILE})
114        target_compile_options(lib${FILE_NAME}_path2 PRIVATE -g -O0)
115        set_target_properties(${FILE_NAME}_path2 PROPERTIES
116            PREFIX ""
117            OUTPUT_NAME "${FILE_NAME}"
118            LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/path2"
119        )
120    endif()
121endforeach()
122
123# Create shared library targets for files with lib%s.so format in path2 directory
124foreach(SOURCE_FILE ${SOURCE_FILES_PATH2_LIBSO})
125    get_filename_component(FILE_NAME ${SOURCE_FILE} NAME_WE)
126    if(NOT TARGET lib${FILE_NAME}_path2)
127        add_library(lib${FILE_NAME}_path2 SHARED ${SOURCE_FILE})
128        set_target_properties(lib${FILE_NAME}_path2 PROPERTIES
129            PREFIX ""
130            OUTPUT_NAME "lib${FILE_NAME}"
131            LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/path2"
132        )
133    endif()
134endforeach()
135