Skip to content

Commit 6733703

Browse files
committed
more build fixes: openssl
1 parent 7174c1f commit 6733703

1 file changed

Lines changed: 27 additions & 4 deletions

File tree

CMakeLists.txt

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ if(USE_CONAN AND CONAN_TOOLCHAIN_FOUND)
116116
find_package(cpprestsdk REQUIRED)
117117
find_package(fmt REQUIRED)
118118
find_package(rxcpp QUIET)
119+
find_package(OpenSSL REQUIRED)
119120

120121
# Verify packages were found
121122
if(TARGET Catch2::Catch2)
@@ -135,9 +136,9 @@ if(USE_CONAN AND CONAN_TOOLCHAIN_FOUND)
135136
list(APPEND CONAN_LIBS RxCpp::RxCpp)
136137
message(STATUS "Found rxcpp from Conan")
137138
endif()
138-
# Add openssl explicitly to ensure headers are available
139-
if(TARGET openssl::openssl)
140-
list(APPEND CONAN_LIBS openssl::openssl)
139+
# Add openssl explicitly to ensure headers are available
140+
if(TARGET OpenSSL::SSL)
141+
list(APPEND CONAN_LIBS OpenSSL::SSL OpenSSL::Crypto)
141142
message(STATUS "Found openssl from Conan")
142143
endif()
143144
else()
@@ -164,13 +165,35 @@ list(FILTER INFLUXDB_CPP_REST_SOURCES EXCLUDE REGEX ".*\\.h$")
164165
add_library(influxdb-cpp-rest STATIC
165166
${INFLUXDB_CPP_REST_SOURCES}
166167
)
167-
target_include_directories(influxdb-cpp-rest PUBLIC
168+
target_include_directories(influxdb-cpp-rest PUBLIC
168169
src/influxdb-cpp-rest
169170
)
170171
target_link_libraries(influxdb-cpp-rest
171172
PUBLIC
172173
${CONAN_LIBS}
173174
)
175+
# Workaround: Conan OpenSSL CMakeDeps doesn't set include directories
176+
if(TARGET OpenSSL::SSL)
177+
# Read openssl package folder from the data file
178+
file(GLOB _OPENSSL_DATA_FILES "${CMAKE_CURRENT_LIST_DIR}/OpenSSL-*-data.cmake")
179+
if(_OPENSSL_DATA_FILES)
180+
list(GET _OPENSSL_DATA_FILES 0 _OPENSSL_DATA_FILE)
181+
endif()
182+
if(_OPENSSL_DATA_FILE)
183+
file(READ "${_OPENSSL_DATA_FILE}" _OPENSSL_DATA_CONTENT)
184+
string(REGEX MATCH "set\\(openssl_PACKAGE_FOLDER_RELEASE \"([^\"]+)\"\\)" _MATCH "${_OPENSSL_DATA_CONTENT}")
185+
if(_MATCH)
186+
string(REGEX REPLACE ".*openssl_PACKAGE_FOLDER_RELEASE \"([^\"]+)\".*" "\\1" OPENSSL_PKG_FOLDER "${_MATCH}")
187+
set(OPENSSL_INCLUDE_DIR "${OPENSSL_PKG_FOLDER}/include")
188+
if(EXISTS "${OPENSSL_INCLUDE_DIR}")
189+
set_target_properties(OpenSSL::SSL OpenSSL::Crypto PROPERTIES
190+
INTERFACE_INCLUDE_DIRECTORIES "${OPENSSL_INCLUDE_DIR}"
191+
)
192+
message(STATUS "Set OpenSSL include dir: ${OPENSSL_INCLUDE_DIR}")
193+
endif()
194+
endif()
195+
endif()
196+
endif()
174197

175198
# Shared library: influx-c-rest
176199
file(GLOB_RECURSE INFLUX_C_REST_SOURCES

0 commit comments

Comments
 (0)