find_package(PkgConfig)
+pkg_check_modules(PC_SAFEC libsafec)
-# LibSafeC is currently incompatible with Clang - https://github.com/rurban/safeclib/issues/58
-if (PKG_CONFIG_EXECUTABLE AND NOT CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
- execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --list-all
- OUTPUT_VARIABLE _pkgconfig_list_result
- OUTPUT_STRIP_TRAILING_WHITESPACE)
- string(REGEX MATCH "safec-([0-9]+\.[0-9])+" MATCHED ${_pkgconfig_list_result})
- if (MATCHED)
- set(SAFEC_VERSION ${CMAKE_MATCH_1})
- pkg_check_modules(PC_SAFEC safec-${SAFEC_VERSION})
-
- find_path(SAFEC_INCLUDE_DIR
- NAMES libsafec/safe_lib.h
- HINTS ${PC_SAFEC_INCLUDEDIR} ${PC_SAFEC_INCLUDEDIRS}
- NO_SYSTEM_ENVIRONMENT_PATH
- )
- find_library(SAFEC_LIBRARIES
- NAMES safec-${SAFEC_VERSION}
- HINTS ${PC_SAFEC_LIBDIR} ${PC-SAFEC_LIBRARY_DIRS}
- )
- endif()
-endif()
+find_path(SAFEC_INCLUDE_DIR
+ NAMES safe_lib.h
+ HINTS ${PC_SAFEC_INCLUDEDIR} ${PC_SAFEC_INCLUDE_DIRS}
+ NO_SYSTEM_ENVIRONMENT_PATH
+)
+find_library(SAFEC_LIBRARIES
+ NAMES ${PC_SAFEC_LIBRARIES}
+ HINTS ${PC_SAFEC_LIBDIR} ${PC_SAFEC_LIBRARY_DIRS}
+)
include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(SafeC
- REQUIRED_VARS SAFEC_INCLUDE_DIR SAFEC_LIBRARIES
+find_package_handle_standard_args(
+ SafeC
+ REQUIRED_VARS
+ SAFEC_INCLUDE_DIR
+ SAFEC_LIBRARIES
+ VERSION_VAR
+ PC_SAFEC_VERSION
)
mark_as_advanced(
--enable-code-coverage Whether to enable code coverage support
--enable-hardened-build Detect and use compile-time hardening options
--enable-pie Attempt to produce a position-independent executable
- --disable-safec do not use libsafec bounds checking even if available
+ --disable-safec do not use libsafec bounds checking even if available
--disable-static-ips-actions
do not include ips actions in binary
--disable-static-inspectors
* lzma >= 5.1.2 from http://tukaani.org/xz/ for decompression of SWF and
PDF files
-* safec from https://github.com/rurban/safeclib/ for runtime bounds
+* safec >= 3.5 from https://github.com/rurban/safeclib/ for runtime bounds
checks on certain legacy C-library calls
* source-highlight from http://www.gnu.org/software/src-highlite/ to
${OPENSSL_CRYPTO_LIBRARY}
${PCAP_LIBRARIES}
${PCRE_LIBRARIES}
- ${SAFEC_LIBRARIES}
${UUID_LIBRARY}
${ZLIB_LIBRARIES}
)
${OPENSSL_INCLUDE_DIR}
${PCAP_INCLUDE_DIR}
${PCRE_INCLUDE_DIR}
- ${SAFEC_INCLUDE_DIR}
${UUID_INCLUDE_DIR}
${ZLIB_INCLUDE_DIRS}
)
LIST(APPEND EXTERNAL_INCLUDES ${HS_INCLUDE_DIRS})
endif ()
+if ( HAVE_SAFEC )
+ LIST(APPEND EXTERNAL_LIBRARIES ${SAFEC_LIBRARIES})
+ LIST(APPEND EXTERNAL_INCLUDES ${SAFEC_INCLUDE_DIR})
+endif ()
+
if ( ICONV_FOUND )
LIST(APPEND EXTERNAL_LIBRARIES ${ICONV_LIBRARY})
LIST(APPEND EXTERNAL_INCLUDES ${ICONV_INCLUDE_DIR})