@@ -62,8 +62,13 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
6262 STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo" )
6363endif ()
6464
65- # Enable asserts regardless of build type
66- add_definitions (-UNDEBUG)
65+ # Do not disable assertions based on CMAKE_BUILD_TYPE
66+ foreach (_build_type "Release" "MinSizeRel" "RelWithDebInfo" )
67+ foreach (_lang C CXX)
68+ string (TOUPPER "CMAKE_${_lang} _FLAGS_${_build_type} " _var)
69+ string (REGEX REPLACE "(^| )[/-]D *NDEBUG($| )" " " ${_var} "${${_var} }" )
70+ endforeach ()
71+ endforeach ()
6772
6873set (BUILD_NC true )
6974
@@ -84,16 +89,16 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
8489 set (PLATFORM_LIBS ${PLATFORM_LIBS} pthread)
8590endif ()
8691
87- if (WIN32 OR ( CMAKE_SYSTEM_NAME MATCHES "MINGW" ) )
92+ if (WIN32 )
8893 set (BUILD_NC false )
89- add_definitions (-D_GNU_SOURCE)
90- add_definitions (-D_POSIX)
91- add_definitions (-D_POSIX_SOURCE)
92- add_definitions (-D__USE_MINGW_ANSI_STDIO)
94+ if (MINGW)
95+ add_definitions (-D_GNU_SOURCE)
96+ add_definitions (-D_POSIX)
97+ add_definitions (-D_POSIX_SOURCE)
98+ add_definitions (-D__USE_MINGW_ANSI_STDIO)
99+ endif ()
93100endif ()
94101
95- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall" )
96-
97102if (CMAKE_SYSTEM_NAME MATCHES "HP-UX" )
98103 if (CMAKE_C_COMPILER MATCHES "gcc" )
99104 set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -fno-strict-aliasing" )
@@ -129,7 +134,7 @@ if(WIN32)
129134 add_definitions (-D_CRT_SECURE_NO_WARNINGS)
130135 add_definitions (-D_CRT_DEPRECATED_NO_WARNINGS)
131136 add_definitions (-D_REENTRANT -D_POSIX_THREAD_SAFE_FUNCTIONS)
132- add_definitions (-DCPPFLAGS - DNO_SYSLOG -DNO_CRYPT )
137+ add_definitions (-DNO_SYSLOG)
133138 add_definitions (-DWIN32_LEAN_AND_MEAN)
134139 if (NOT CMAKE_SYSTEM_NAME MATCHES "WindowsStore" )
135140 add_definitions (-D_WIN32_WINNT=0x0600)
@@ -140,6 +145,15 @@ endif()
140145if (MSVC )
141146 add_definitions (-Dinline=__inline)
142147 message (STATUS "Using [${CMAKE_C_COMPILER_ID} ] compiler" )
148+
149+ include (TestBigEndian)
150+ TEST_BIG_ENDIAN(HAVE_BIG_ENDIAN)
151+ if (HAVE_BIG_ENDIAN)
152+ add_definitions (-DHAVE_BIG_ENDIAN)
153+ else ()
154+ add_definitions (-DHAVE_LITTLE_ENDIAN)
155+ endif ()
156+
143157 if (CMAKE_C_COMPILER_ID MATCHES "MSVC" OR CMAKE_C_COMPILER_ID MATCHES "Clang" )
144158 set (MSVC_DISABLED_WARNINGS_LIST
145159 "C4018" # 'expression' : signed/unsigned mismatch
@@ -182,6 +196,8 @@ if(MSVC)
182196 ${MSVC_DISABLED_WARNINGS_LIST} )
183197 string (REGEX REPLACE "[/-]W[1234][ ]?" "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS} )
184198 set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -MP -W4 ${MSVC_DISABLED_WARNINGS_STR} " )
199+ else ()
200+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall" )
185201endif ()
186202
187203check_function_exists(asprintf HAVE_ASPRINTF)
@@ -234,6 +250,11 @@ if(HAVE_STRSEP)
234250 add_definitions (-DHAVE_STRSEP)
235251endif ()
236252
253+ check_function_exists(strtonum HAVE_STRTONUM)
254+ if (HAVE_STRTONUM)
255+ add_definitions (-DHAVE_STRTONUM)
256+ endif ()
257+
237258check_function_exists(timegm HAVE_TIMEGM)
238259if (HAVE_TIMEGM)
239260 add_definitions (-DHAVE_TIMEGM)
@@ -295,8 +316,8 @@ if(HAVE_TIMINGSAFE_BCMP)
295316endif ()
296317
297318check_function_exists(timingsafe_memcmp HAVE_TIMINGSAFE_MEMCMP)
298- if (HAVE_MEMCMP )
299- add_definitions (-DHAVE_MEMCMP )
319+ if (HAVE_TIMINGSAFE_MEMCMP )
320+ add_definitions (-DHAVE_TIMINGSAFE_MEMCMP )
300321endif ()
301322
302323check_function_exists(memmem HAVE_MEMMEM)
@@ -333,49 +354,53 @@ if(APPLE AND (NOT CMAKE_OSX_ARCHITECTURES STREQUAL ""))
333354 set (CMAKE_SYSTEM_PROCESSOR "${CMAKE_OSX_ARCHITECTURES} " )
334355endif ()
335356
336- if (" ${ CMAKE_SYSTEM_PROCESSOR} " MATCHES "(aarch64|arm64|ARM64)" )
357+ if (CMAKE_SYSTEM_PROCESSOR MATCHES "(aarch64|arm64|ARM64)" )
337358 set (HOST_AARCH64 true )
338- elseif ("${CMAKE_SYSTEM_PROCESSOR} " MATCHES "arm" )
359+ if (WIN32 )
360+ set (ENABLE_ASM false )
361+ endif ()
362+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "arm" )
339363 set (HOST_ARM true )
340- elseif (" ${ CMAKE_SYSTEM_NAME} " STREQUAL "SunOS" AND " ${ CMAKE_SYSTEM_PROCESSOR} " STREQUAL "i386" )
364+ elseif (CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_PROCESSOR MATCHES "i386" )
341365 set (HOST_X86_64 true )
342- elseif (" ${ CMAKE_SYSTEM_PROCESSOR} " MATCHES "(x86_64|amd64|AMD64)" )
366+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64|AMD64)" )
343367 set (HOST_X86_64 true )
344- elseif (" ${ CMAKE_SYSTEM_PROCESSOR} " MATCHES "(i[3-6]86|[xX]86)" )
368+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|[xX]86)" )
345369 set (ENABLE_ASM false )
346370 set (HOST_I386 true )
347- elseif (" ${ CMAKE_SYSTEM_PROCESSOR} " MATCHES "mips64" )
371+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "mips64" )
348372 set (HOST_MIPS64 true )
349- elseif (" ${ CMAKE_SYSTEM_PROCESSOR} " MATCHES "mips" )
373+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "mips" )
350374 set (HOST_MIPS true )
351- elseif (" ${ CMAKE_SYSTEM_PROCESSOR} " MATCHES "powerpc" )
375+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "powerpc" )
352376 set (HOST_POWERPC true )
353- elseif (" ${ CMAKE_SYSTEM_PROCESSOR} " MATCHES "ppc64" )
377+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64" )
354378 set (HOST_PPC64 true )
355- elseif (" ${ CMAKE_SYSTEM_PROCESSOR} " MATCHES "riscv64" )
379+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "riscv64" )
356380 set (HOST_RISCV64 true )
357- elseif (" ${ CMAKE_SYSTEM_PROCESSOR} " MATCHES "sparc64" )
381+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "sparc64" )
358382 set (HOST_SPARC64 true )
359383else ()
360384 set (ENABLE_ASM false )
361385endif ()
362386
363387if (ENABLE_ASM)
364- if (" ${ CMAKE_C_COMPILER_ABI} " STREQUAL "ELF" )
365- if (" ${ CMAKE_SYSTEM_PROCESSOR} " MATCHES "(x86_64|amd64)" )
388+ if (CMAKE_C_COMPILER_ABI STREQUAL "ELF" )
389+ if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64)" )
366390 set (HOST_ASM_ELF_X86_64 true )
367- elseif ("${CMAKE_SYSTEM_PROCESSOR} " MATCHES "arm" )
391+ elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "arm" AND
392+ NOT CMAKE_SYSTEM_PROCESSOR MATCHES "arm64" )
368393 set (HOST_ASM_ELF_ARMV4 true )
369- elseif (CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND " ${ CMAKE_SYSTEM_PROCESSOR} " STREQUAL "i386" )
394+ elseif (CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND CMAKE_SYSTEM_PROCESSOR MATCHES "i386" )
370395 set (HOST_ASM_ELF_X86_64 true )
371396 endif ()
372397 add_definitions (-DHAVE_GNU_STACK)
373- elseif (APPLE AND " ${ CMAKE_SYSTEM_PROCESSOR} " STREQUAL "x86_64" )
398+ elseif (APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" )
374399 set (HOST_ASM_MACOSX_X86_64 true )
375- elseif (MSVC AND (" ${ CMAKE_GENERATOR} " MATCHES "Win64" OR " ${ CMAKE_GENERATOR_PLATFORM} " STREQUAL "x64" ))
400+ elseif (MSVC AND (CMAKE_GENERATOR MATCHES "Win64" OR CMAKE_GENERATOR_PLATFORM STREQUAL "x64" ))
376401 set (HOST_ASM_MASM_X86_64 true )
377402 ENABLE_LANGUAGE (ASM_MASM)
378- elseif (MINGW AND " ${ CMAKE_SYSTEM_PROCESSOR} " STREQUAL "x86_64" )
403+ elseif (MINGW AND CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64" )
379404 set (HOST_ASM_MINGW64_X86_64 true )
380405 endif ()
381406endif ()
@@ -407,11 +432,23 @@ set(LIBTLS_LIBS tls ${PLATFORM_LIBS})
407432
408433# libraries for regression test
409434if (BUILD_SHARED_LIBS )
410- set (OPENSSL_TEST_LIBS ssl-static crypto-static ${PLATFORM_LIBS} )
411- set (LIBTLS_TEST_LIBS tls-static ${PLATFORM_LIBS} )
435+ set (OPENSSL_TEST_LIBS ssl-static crypto-static ${PLATFORM_LIBS} compat_obj )
436+ set (LIBTLS_TEST_LIBS tls-static ${OPENSSL_TEST_LIBS} tls_compat_obj )
412437else ()
413- set (OPENSSL_TEST_LIBS ssl crypto ${PLATFORM_LIBS} )
414- set (LIBTLS_TEST_LIBS tls ${PLATFORM_LIBS} )
438+ set (OPENSSL_TEST_LIBS ssl crypto ${PLATFORM_LIBS} compat_obj)
439+ set (LIBTLS_TEST_LIBS tls ${PLATFORM_LIBS} compat_obj tls_compat_obj)
440+ endif ()
441+
442+ if (OPENSSLDIR STREQUAL "" )
443+ if (WIN32 )
444+ set (OPENSSLDIR "C:/Windows/libressl/ssl" )
445+ else ()
446+ set (OPENSSLDIR "${CMAKE_INSTALL_PREFIX} /etc/ssl" )
447+ endif ()
448+
449+ set (CONF_DIR "${CMAKE_INSTALL_PREFIX} /etc/ssl" )
450+ else ()
451+ set (CONF_DIR "${OPENSSLDIR} " )
415452endif ()
416453
417454add_subdirectory (include )
@@ -495,12 +532,6 @@ if(ENABLE_LIBRESSL_INSTALL)
495532 endif ()
496533endif (ENABLE_LIBRESSL_INSTALL)
497534
498- if (NOT "${OPENSSLDIR} " STREQUAL "" )
499- set (CONF_DIR "${OPENSSLDIR} " )
500- else ()
501- set (CONF_DIR "${CMAKE_INSTALL_PREFIX} /etc/ssl" )
502- endif ()
503-
504535if (ENABLE_LIBRESSL_INSTALL)
505536 install (FILES cert.pem openssl.cnf x509v3.cnf DESTINATION ${CONF_DIR} )
506537 install (DIRECTORY DESTINATION ${CONF_DIR} /certs)
0 commit comments