Проблема:
При сборке вашего пакета conan вы видите эту ошибку CMake:
cmake_findopenssl_error.txt
CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the
system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY
OPENSSL_INCLUDE_DIR)
Call Stack (most recent call first):
/usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.16/Modules/FindOpenSSL.cmake:447 (find_package_handle_standard_args)
../_deps/curl-src/CMakeLists.txt:365 (find_package)хотя ваш conanfile.py объявляет OpenSSL как зависимость:
conanfile.py
class MyPackageConan(ConanFile):
# ...
requires = ("openssl/1.1.1l", )Решение
Убедитесь, что CMakeLists.txt проекта содержит эти строки:
CMakeLists_conan_setup.cmake
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()Обычно способ сделать это — использовать этот код, который автоматически генерируется conan new:
conan_source_replace.py
# This small hack might be useful to guarantee proper /MT /MD linkage
# in MSVC if the packaged project doesn't have variables to set it
# properly
tools.replace_in_file("hello/CMakeLists.txt", "PROJECT(HelloWorld)",
'''PROJECT(HelloWorld)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()''')в source() следующим образом:
conan_source.py
def source(self):
self.run("git clone https://github.com/conan-io/hello.git")
# This small hack might be useful to guarantee proper /MT /MD linkage
# in MSVC if the packaged project doesn't have variables to set it
# properly
tools.replace_in_file("hello/CMakeLists.txt", "PROJECT(HelloWorld)",
'''PROJECT(HelloWorld)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()''')Обратите внимание, что вам нужно заменить оба hello/CMakeLists.txt на правильное имя файла (обычно просто замените hello на). Также вам нужно заменить оба экземпляра PROJECT(HelloWorld) на фактическую строку из вашего CMakeLists.txt, чтобы команда замены сработала.
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow