Commit ccd92fcf02 for openssl.org
commit ccd92fcf02070d3ee27362c1da9e74c82f6d8c7a
Author: Richard Levitte <levitte@openssl.foundation>
Date: Sun Oct 25 05:44:35 2026 +0100
exporters/cmake: Unixify the include directories
All the paths that the exported CMake config derives from the
installation layout are run through unixify(), except the include
directories. On platforms where the native path separator is a
backslash, such as Windows, that leaves strings like
"${_ossl_prefix}/..\include" in the generated file, which CMake
rejects with "Invalid character escape", making find_package(OpenSSL)
unusable there.
Fixes: accd835f8d6e ("fix: for exporters to work for build config, there may be two include dirs")
Assisted-by: Pi:moonshotai/kimi-k3
Signed-off-by: Richard Levitte <levitte@openssl.foundation>
Reviewed-by: Andrew Dinh <andrewd@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
Merge-date: Sat Nov 14 17:36:40 2026
Merged-from: https://github.com/openssl/openssl/pull/32442
diff --git a/exporters/cmake/OpenSSLConfig.cmake.in b/exporters/cmake/OpenSSLConfig.cmake.in
index e435605321..aa3b20e4b2 100644
--- a/exporters/cmake/OpenSSLConfig.cmake.in
+++ b/exporters/cmake/OpenSSLConfig.cmake.in
@@ -131,7 +131,7 @@ set(OPENSSL_FOUND YES)
# Directories and names
set(OPENSSL_LIBRARY_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0], 1); -}")
set(OPENSSL_INCLUDE_DIR{- $OUT = '';
- $OUT .= ' "${_ossl_prefix}/' . $_ . '"'
+ $OUT .= ' "${_ossl_prefix}/' . unixify($_, 1) . '"'
foreach (@OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX); -})
set(OPENSSL_MODULES_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::LIBDIR_REL_PREFIX[0], 1); -}/{- unixify($OpenSSL::safe::installdata::MODULESDIR_REL_LIBDIR[0], 1); -}")
set(OPENSSL_RUNTIME_DIR "${_ossl_prefix}/{- unixify($OpenSSL::safe::installdata::BINDIR_REL_PREFIX[0], 1); -}")