# CMake function to find the headerfile x509_vfy.h and search for all occurrences # of X509_V_ERR_ and replace them by #ifdef x V_ERR(x) #endif if (OPENSSL_INCLUDE_DIR) set(OPENSSL_V_ERR_H "${OPENSSL_INCLUDE_DIR}/openssl/x509_vfy.h") if (EXISTS "${OPENSSL_V_ERR_H}") message(STATUS "Parsing ${OPENSSL_V_ERR_H} for X509_V_ERR_") file(READ "${OPENSSL_V_ERR_H}" X509_VFY_H) string(REGEX MATCHALL "X509_V_ERR_[A-Z_0-9]+" X509_VFY_ERRORS ${X509_VFY_H}) foreach(ERR ${X509_VFY_ERRORS}) string(APPEND X509_VFY_ERRORS_C "#ifdef ${ERR}\n V_ERR(${ERR})\n#endif\n") endforeach() file(WRITE ${CMAKE_BINARY_DIR}/openssl_v_err.c ${X509_VFY_ERRORS_C}) endif() endif()