Skip to content

Commit f744043

Browse files
committed
change the way "wolfssl/options.h.in" is generated
1 parent 5f46809 commit f744043

3 files changed

Lines changed: 350 additions & 56 deletions

File tree

CMakeLists.txt

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@ add_option(WOLFSSL_ALPN
437437
"no" "yes;no")
438438

439439
if(WOLFSSL_ALPN)
440-
list(APPEND WOLFSSL_DEFINITIONS "-DHAVE_ALPN" "-DHAVE_TLS_EXTENSIONS")
440+
list(APPEND WOLFSSL_DEFINITIONS "-DHAVE_ALPN" "-DHAVE_TLS_EXTENSIONS")
441441
endif()
442442

443443
# altcertchains
@@ -2236,32 +2236,6 @@ endif()
22362236

22372237
file(REMOVE ${OPTION_FILE})
22382238

2239-
file(APPEND ${OPTION_FILE} "/* wolfssl options.h\n")
2240-
file(APPEND ${OPTION_FILE} " * generated from configure options\n")
2241-
file(APPEND ${OPTION_FILE} " *\n")
2242-
file(APPEND ${OPTION_FILE} " * Copyright (C) 2006-2023 wolfSSL Inc.\n")
2243-
file(APPEND ${OPTION_FILE} " *\n")
2244-
file(APPEND ${OPTION_FILE} " * This file is part of wolfSSL. (formerly known as CyaSSL)\n")
2245-
file(APPEND ${OPTION_FILE} " *\n")
2246-
file(APPEND ${OPTION_FILE} " */\n\n")
2247-
file(APPEND ${OPTION_FILE} "#ifndef WOLFSSL_OPTIONS_H\n")
2248-
file(APPEND ${OPTION_FILE} "#define WOLFSSL_OPTIONS_H\n\n\n")
2249-
file(APPEND ${OPTION_FILE} "#ifdef __cplusplus\n")
2250-
file(APPEND ${OPTION_FILE} "extern \"C\" {\n")
2251-
file(APPEND ${OPTION_FILE} "#endif\n\n")
2252-
2253-
add_to_options_file("${WOLFSSL_DEFINITIONS}" "${OPTION_FILE}")
2254-
# CMAKE_C_FLAGS is just a string of space-separated flags to pass to the C
2255-
# compiler. We need to replace those spaces with semicolons in order to treat it
2256-
# as a CMake list.
2257-
string(REPLACE " " ";" CMAKE_C_FLAGS_LIST "${CMAKE_C_FLAGS}")
2258-
add_to_options_file("${CMAKE_C_FLAGS_LIST}" "${OPTION_FILE}")
2259-
2260-
file(APPEND ${OPTION_FILE} "\n#ifdef __cplusplus\n")
2261-
file(APPEND ${OPTION_FILE} "}\n")
2262-
file(APPEND ${OPTION_FILE} "#endif\n\n\n")
2263-
file(APPEND ${OPTION_FILE} "#endif /* WOLFSSL_OPTIONS_H */\n\n")
2264-
22652239
####################################################
22662240
# Library Target
22672241
####################################################
@@ -2339,6 +2313,19 @@ if(WOLFSSL_ARIA)
23392313
message(STATUS "ARIA Check: WOLFSSL_LINK_LIBS = ${WOLFSSL_LINK_LIBS}")
23402314
endif()
23412315

2316+
foreach(DEF IN LISTS WOLFSSL_DEFINITIONS)
2317+
string(REGEX MATCH "^(-D)?([^=]+)(=(.*))?$" DEF_MATCH ${DEF})
2318+
if (DEFINED CMAKE_MATCH_4)
2319+
set(${CMAKE_MATCH_2} ${CMAKE_MATCH_4})
2320+
# message("set(${CMAKE_MATCH_2} ${CMAKE_MATCH_4})")
2321+
else()
2322+
set(${CMAKE_MATCH_2} 1)
2323+
# message("set(${CMAKE_MATCH_2} 1)")
2324+
endif()
2325+
endforeach()
2326+
2327+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/wolfssl/options.h.in ${OPTION_FILE})
2328+
23422329
set_target_properties(wolfssl
23432330
PROPERTIES
23442331
SOVERSION ${WOLFSSL_LIBRARY_VERSION_FIRST}

cmake/functions.cmake

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -918,35 +918,6 @@ function(generate_lib_src_list LIB_SOURCES)
918918
set(LIB_SOURCES ${LIB_SOURCES} PARENT_SCOPE)
919919
endfunction()
920920

921-
function(add_to_options_file DEFINITIONS OPTION_FILE)
922-
list(REMOVE_DUPLICATES DEFINITIONS)
923-
foreach(DEF IN LISTS DEFINITIONS)
924-
if(DEF MATCHES "^-D")
925-
if(DEF MATCHES "^-D(N)?DEBUG(=.+)?")
926-
message("not outputting (N)DEBUG to ${OPTION_FILE}")
927-
endif()
928-
929-
# allow user to ignore system options
930-
if(DEF MATCHES "^-D_.*")
931-
file(APPEND ${OPTION_FILE} "#ifndef WOLFSSL_OPTIONS_IGNORE_SYS\n")
932-
endif()
933-
934-
string(REGEX REPLACE "^-D" "" DEF_NO_PREFIX ${DEF})
935-
string(REGEX REPLACE "=.*$" "" DEF_NO_EQUAL_NO_VAL ${DEF_NO_PREFIX})
936-
string(REPLACE "=" " " DEF_NO_EQUAL ${DEF_NO_PREFIX})
937-
938-
file(APPEND ${OPTION_FILE} "#undef ${DEF_NO_EQUAL_NO_VAL}\n")
939-
file(APPEND ${OPTION_FILE} "#define ${DEF_NO_EQUAL}\n")
940-
941-
if(DEF MATCHES "^-D_.*")
942-
file(APPEND ${OPTION_FILE} "#endif\n")
943-
endif()
944-
945-
file(APPEND ${OPTION_FILE} "\n")
946-
endif()
947-
endforeach()
948-
endfunction()
949-
950921
# Function: set_wolfssl_definitions
951922
# Parameter: SEARCH_VALUE The string to search for. (e.g. "WOLFSSL_SHA3")
952923
# Returns: RESULT

0 commit comments

Comments
 (0)