Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Configure error while building CPR in ubuntu22.0.4 with cmake 3.28.3 #1169

Open
HeenaBansal20 opened this issue Jan 29, 2025 · 3 comments
Open

Comments

@HeenaBansal20
Copy link

HeenaBansal20 commented Jan 29, 2025

Description

I am building CPR from source and getting configure error while building with CPR_ENABLE_SSL ON.

FetchContent_Declare(cpr GIT_REPOSITORY https://github.com/libcpr/cpr.git GIT_TAG 1.10.5)
FetchContent_GetProperties(cpr)
if(NOT cpr_POPULATED)
    FetchContent_Populate(cpr)
        set(CPR_ENABLE_SSL ON)
    endif()
    set(CURL_ZLIB OFF CACHE STRING "" FORCE)
    set(HAVE_LIBSOCKET OFF)
    set(USE_LIBIDN2 OFF)
    add_subdirectory(${cpr_SOURCE_DIR} ${cpr_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()

Example/How to Reproduce

  • cmake --version
    3.28.3
  • uname -a:
Linux 4bd2ace2f332 6.8.0-40-generic #40-Ubuntu SMP PREEMPT_DYNAMIC Fri Jul  5 10:34:03 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
  • building openSSL from source
wget -qO- "https://www.openssl.org/source/openssl-3.0.4.tar.gz" | tar -zxf - -C /usr/src \
    && cd /usr/src/openssl-3.0.4 \
    && ./config --prefix=/opt/ssl3.0 -Wl,-rpath,/opt/ssl3.0/lib \
    && make -j \
    && make install_sw \
    && rm -fr /opt/ssl3.0/ssl \
    && ln -s /etc/ssl /opt/ssl3.0/ssl \
    && make clean \
    && rm -fr /usr/src/openssl-3.0.4

# Build libraries against OpenSSL 3.0
 wget -qO- https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-2.5.17.tgz | tar -zxf - -C /usr/src \
    && cd /usr/src/openldap-2.5.17 \
    && CFLAGS="-I/opt/ssl3.0/include" CPPFLAGS="-I/opt/ssl3.0/include" LDFLAGS="-L/opt/ssl3.0/lib" ./configure --prefix=/opt/ssl3.0 --with-tls=openssl \
    && make -j \
    && make install \
    && make clean \
    && rm -fr /usr/src/openldap-2.5.17

wget -qO- "https://curl.se/download/curl-8.8.0.tar.gz" | tar -zxf - -C /usr/src \
    && cd /usr/src/curl-8.8.0 \
    && ./configure --enable-versioned-symbols --with-openssl=/opt/ssl3.0 --prefix=/opt/ssl3.0 \
    && make -j \
    && make install \
    && make clean \
    && ./configure --enable-versioned-symbols --with-openssl \
    && make -j \
    && make install \
    && make clean \
    && rm -fr /usr/src/curl-8.8.0
  • configure command:
cmake -B build -D CMAKE_BUILD_TYPE=Debug  -D OPENSSL_ROOT_DIR=/opt/ssl3.0/  -D OPENSSL_INCLUDE_DIR=/opt/ssl3.0/include -D  OPENSSL_LIBRARIES=/opt/ssl3.0/lib -D OPENSSL_CRYPTO_LIBRARY=/opt/ssl3.0/lib/libcrypto.so -D OPENSSL_SSL_LIBRARY=/opt/ssl3.0/lib/libssl.so -G Ninja

Possible Fix

No response

Where did you get it from?

GitHub (branch e.g. master)

Additional Context/Your Environment

Configure logs

--   CPR_GENERATE_COVERAGE: OFF
--   CPR_CURL_NOSIGNAL: OFF
--   CURL_VERBOSE_LOGGING: OFF
--   CPR_USE_SYSTEM_GTEST: OFF
--   CPR_USE_SYSTEM_CURL: OFF
--   CPR_ENABLE_CURL_HTTP_ONLY: ON
--   CPR_ENABLE_SSL: ON
--   CPR_FORCE_OPENSSL_BACKEND: OFF
--   CPR_FORCE_WINSSL_BACKEND: OFF
--   CPR_FORCE_DARWINSSL_BACKEND: OFF
--   CPR_FORCE_MBEDTLS_BACKEND: OFF
--   CPR_ENABLE_LINTING: OFF
--   CPR_ENABLE_CPPCHECK: OFF
--   CPR_BUILD_TESTS: OFF
--   CPR_BUILD_TESTS_SSL: OFF
--   CPR_BUILD_TESTS_PROXY: OFF
--   CPR_SKIP_CA_BUNDLE_SEARCH: OFF
--   CPR_USE_BOOST_FILESYSTEM: OFF
--   CPR_DEBUG_SANITIZER_FLAG_THREAD: OFF
--   CPR_DEBUG_SANITIZER_FLAG_ADDR: OFF
--   CPR_DEBUG_SANITIZER_FLAG_LEAK: OFF
--   CPR_DEBUG_SANITIZER_FLAG_UB: OFF
--   CPR_DEBUG_SANITIZER_FLAG_ALL: OFF
-- =======================================================
-- Automatically detecting SSL backend.
-- Detecting SSL backend...
-- Found OpenSSL: /opt/ssl3.0/lib/libcrypto.so (found version "3.0.4")
-- SSL auto detect: Using OpenSSL.
-- Configuring built-in curl...
-- Enabled curl SSL
-- curl version=[8.4.0]
-- Picky compiler options: -Wextra -Wall -pedantic -Wbad-function-cast -Wconversion -Winline -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wno-long-long -Wno-multichar -Wpointer-arith -Wshadow -Wsign-compare -Wundef -Wunused -Wwrite-strings -Wcast-align -Wdeclaration-after-statement -Wempty-body -Wendif-labels -Wfloat-equal -Wignored-qualifiers -Wno-format-nonliteral -Wno-sign-conversion -Wno-system-headers -Wstrict-prototypes -Wtype-limits -Wvla -Wshift-sign-overflow -Wshorten-64-to-32 -Wdouble-promotion -Wenum-conversion -Wunused-const-variable -Wcomma -Wmissing-variable-declarations -Wassign-enum -Wextra-semi-stmt
-- Performing Test HAVE_SOCKADDR_IN6_SIN6_ADDR
-- Performing Test HAVE_SOCKADDR_IN6_SIN6_ADDR - Success
-- Performing Test HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
-- Performing Test HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID - Success
-- Found Perl: /usr/bin/perl (found version "5.34.0")
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Looking for gethostname
-- Looking for gethostname - found
-- Looking for OPENSSL_IS_BORINGSSL
-- Looking for OPENSSL_IS_BORINGSSL - not found
-- Looking for OPENSSL_IS_AWSLC
-- Looking for OPENSSL_IS_AWSLC - not found
-- Looking for SSL_set0_wbio
-- Looking for SSL_set0_wbio - found
-- Looking for SSL_CTX_set_srp_username
-- Looking for SSL_CTX_set_srp_username - found
-- Could NOT find LibPSL (missing: LIBPSL_LIBRARY LIBPSL_INCLUDE_DIR) 
-- Could NOT find LibSSH2 (missing: LIBSSH2_LIBRARY LIBSSH2_INCLUDE_DIR) 
-- Performing Test USE_UNIX_SOCKETS
-- Performing Test USE_UNIX_SOCKETS - Success
-- Looking for include file inttypes.h
-- Looking for include file inttypes.h - found
-- Looking for include files inttypes.h, sys/filio.h
-- Looking for include files inttypes.h, sys/filio.h - not found
-- Looking for include files inttypes.h, sys/wait.h
-- Looking for include files inttypes.h, sys/wait.h - found
-- Looking for 3 include files inttypes.h, ..., sys/ioctl.h
-- Looking for 3 include files inttypes.h, ..., sys/ioctl.h - found
-- Looking for 4 include files inttypes.h, ..., sys/param.h
-- Looking for 4 include files inttypes.h, ..., sys/param.h - found
-- Looking for 5 include files inttypes.h, ..., sys/poll.h
-- Looking for 5 include files inttypes.h, ..., sys/poll.h - found
-- Looking for 6 include files inttypes.h, ..., sys/resource.h
-- Looking for 6 include files inttypes.h, ..., sys/resource.h - found
-- Looking for 7 include files inttypes.h, ..., sys/select.h
-- Looking for 7 include files inttypes.h, ..., sys/select.h - found
-- Looking for 8 include files inttypes.h, ..., sys/socket.h
-- Looking for 8 include files inttypes.h, ..., sys/socket.h - found
-- Looking for 9 include files inttypes.h, ..., sys/sockio.h
-- Looking for 9 include files inttypes.h, ..., sys/sockio.h - not found
-- Looking for 9 include files inttypes.h, ..., sys/stat.h
-- Looking for 9 include files inttypes.h, ..., sys/stat.h - found
-- Looking for 10 include files inttypes.h, ..., sys/time.h
-- Looking for 10 include files inttypes.h, ..., sys/time.h - found
-- Looking for 11 include files inttypes.h, ..., sys/types.h
-- Looking for 11 include files inttypes.h, ..., sys/types.h - found
-- Looking for 12 include files inttypes.h, ..., sys/un.h
-- Looking for 12 include files inttypes.h, ..., sys/un.h - found
-- Looking for 13 include files inttypes.h, ..., sys/utime.h
-- Looking for 13 include files inttypes.h, ..., sys/utime.h - not found
-- Looking for 13 include files inttypes.h, ..., sys/xattr.h
-- Looking for 13 include files inttypes.h, ..., sys/xattr.h - found
-- Looking for 14 include files inttypes.h, ..., arpa/inet.h
-- Looking for 14 include files inttypes.h, ..., arpa/inet.h - found
-- Looking for 15 include files inttypes.h, ..., fcntl.h
-- Looking for 15 include files inttypes.h, ..., fcntl.h - found
-- Looking for 16 include files inttypes.h, ..., idn2.h
-- Looking for 16 include files inttypes.h, ..., idn2.h - not found
-- Looking for 16 include files inttypes.h, ..., ifaddrs.h
-- Looking for 16 include files inttypes.h, ..., ifaddrs.h - found
-- Looking for 17 include files inttypes.h, ..., io.h
-- Looking for 17 include files inttypes.h, ..., io.h - not found
-- Looking for 17 include files inttypes.h, ..., libgen.h
-- Looking for 17 include files inttypes.h, ..., libgen.h - found
-- Looking for 18 include files inttypes.h, ..., locale.h
-- Looking for 18 include files inttypes.h, ..., locale.h - found
-- Looking for 19 include files inttypes.h, ..., net/if.h
-- Looking for 19 include files inttypes.h, ..., net/if.h - found
-- Looking for 20 include files inttypes.h, ..., netdb.h
-- Looking for 20 include files inttypes.h, ..., netdb.h - found
-- Looking for 21 include files inttypes.h, ..., netinet/in.h
-- Looking for 21 include files inttypes.h, ..., netinet/in.h - found
-- Looking for 22 include files inttypes.h, ..., netinet/tcp.h
-- Looking for 22 include files inttypes.h, ..., netinet/tcp.h - found
-- Looking for 23 include files inttypes.h, ..., netinet/udp.h
-- Looking for 23 include files inttypes.h, ..., netinet/udp.h - found
-- Looking for linux/tcp.h
-- Looking for linux/tcp.h - found
-- Looking for 24 include files inttypes.h, ..., poll.h
-- Looking for 24 include files inttypes.h, ..., poll.h - found
-- Looking for 25 include files inttypes.h, ..., pwd.h
-- Looking for 25 include files inttypes.h, ..., pwd.h - found
-- Looking for 26 include files inttypes.h, ..., stdatomic.h
-- Looking for 26 include files inttypes.h, ..., stdatomic.h - found
-- Looking for 27 include files inttypes.h, ..., stdbool.h
-- Looking for 27 include files inttypes.h, ..., stdbool.h - found
-- Looking for 28 include files inttypes.h, ..., stdint.h
-- Looking for 28 include files inttypes.h, ..., stdint.h - found
-- Looking for 29 include files inttypes.h, ..., strings.h
-- Looking for 29 include files inttypes.h, ..., strings.h - found
-- Looking for 30 include files inttypes.h, ..., stropts.h
-- Looking for 30 include files inttypes.h, ..., stropts.h - not found
-- Looking for 30 include files inttypes.h, ..., termio.h
-- Looking for 30 include files inttypes.h, ..., termio.h - found
-- Looking for 31 include files inttypes.h, ..., termios.h
-- Looking for 31 include files inttypes.h, ..., termios.h - found
-- Looking for 32 include files inttypes.h, ..., unistd.h
-- Looking for 32 include files inttypes.h, ..., unistd.h - found
-- Looking for 33 include files inttypes.h, ..., utime.h
-- Looking for 33 include files inttypes.h, ..., utime.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of size_t
-- Check size of size_t - done
-- Check size of ssize_t
-- Check size of ssize_t - done
-- Check size of long long
-- Check size of long long - done
-- Check size of long
-- Check size of long - done
-- Check size of int
-- Check size of int - done
-- Check size of __int64
-- Check size of __int64 - failed
-- Check size of time_t
-- Check size of time_t - done
-- Check size of suseconds_t
-- Check size of suseconds_t - done
-- Looking for fchmod
-- Looking for fchmod - found
-- Looking for fnmatch
-- Looking for fnmatch - found
-- Looking for basename
-- Looking for basename - found
-- Looking for socket
-- Looking for socket - found
-- Looking for sched_yield
-- Looking for sched_yield - found
-- Looking for socketpair
-- Looking for socketpair - found
-- Looking for recv
-- Looking for recv - found
-- Looking for send
-- Looking for send - found
-- Looking for sendmsg
-- Looking for sendmsg - found
-- Looking for select
-- Looking for select - found
-- Looking for strdup
-- Looking for strdup - found
-- Looking for strtok_r
-- Looking for strtok_r - found
-- Looking for strcasecmp
-- Looking for strcasecmp - found
-- Looking for stricmp
-- Looking for stricmp - not found
-- Looking for strcmpi
-- Looking for strcmpi - not found
-- Looking for memrchr
-- Looking for memrchr - not found
-- Looking for alarm
-- Looking for alarm - found
-- Looking for arc4random
-- Looking for arc4random - not found
-- Looking for fcntl
-- Looking for fcntl - found
-- Looking for getppid
-- Looking for getppid - found
-- Looking for utimes
-- Looking for utimes - found
-- Looking for gettimeofday
-- Looking for gettimeofday - found
-- Looking for closesocket
-- Looking for closesocket - not found
-- Looking for sigsetjmp
-- Looking for sigsetjmp - found
-- Looking for getpass_r
-- Looking for getpass_r - not found
-- Looking for getpwuid
-- Looking for getpwuid - found
-- Looking for getpwuid_r
-- Looking for getpwuid_r - found
-- Looking for geteuid
-- Looking for geteuid - found
-- Looking for utime
-- Looking for utime - found
-- Looking for gmtime_r
-- Looking for gmtime_r - found
-- Looking for gethostbyname_r
-- Looking for gethostbyname_r - found
-- Looking for signal
-- Looking for signal - found
-- Looking for strtoll
-- Looking for strtoll - found
-- Looking for strerror_r
-- Looking for strerror_r - found
-- Looking for siginterrupt
-- Looking for siginterrupt - found
-- Looking for getaddrinfo
-- Looking for getaddrinfo - found
-- Looking for getifaddrs
-- Looking for getifaddrs - found
-- Looking for freeaddrinfo
-- Looking for freeaddrinfo - found
-- Looking for pipe
-- Looking for pipe - found
-- Looking for ftruncate
-- Looking for ftruncate - found
-- Looking for fseeko
-- Looking for fseeko - found
-- Looking for _fseeki64
-- Looking for _fseeki64 - not found
-- Looking for getpeername
-- Looking for getpeername - found
-- Looking for getsockname
-- Looking for getsockname - found
-- Looking for if_nametoindex
-- Looking for if_nametoindex - found
-- Looking for getrlimit
-- Looking for getrlimit - found
-- Looking for setlocale
-- Looking for setlocale - found
-- Looking for setmode
-- Looking for setmode - not found
-- Looking for setrlimit
-- Looking for setrlimit - found
-- Looking for snprintf
-- Looking for snprintf - found
-- Looking for mach_absolute_time
-- Looking for mach_absolute_time - found
-- Looking for inet_ntop
-- Looking for inet_ntop - found
-- Looking for inet_pton
-- Looking for inet_pton - found
-- Looking for fsetxattr
-- Looking for fsetxattr - found
-- Performing Curl Test HAVE_FSETXATTR_5
-- Performing Curl Test HAVE_FSETXATTR_5 - Success
-- Performing Curl Test HAVE_FSETXATTR_6
-- Performing Curl Test HAVE_FSETXATTR_6 - Failed
-- Check size of sa_family_t
-- Check size of sa_family_t - done
-- Check size of ADDRESS_FAMILY
-- Check size of ADDRESS_FAMILY - failed
-- Looking for sigaction
-- Looking for sigaction - found
-- Performing Curl Test HAVE_FCNTL_O_NONBLOCK
-- Performing Curl Test HAVE_FCNTL_O_NONBLOCK - Success
-- Performing Curl Test HAVE_IOCTLSOCKET
-- Performing Curl Test HAVE_IOCTLSOCKET - Failed
-- Performing Curl Test HAVE_IOCTLSOCKET_CAMEL
-- Performing Curl Test HAVE_IOCTLSOCKET_CAMEL - Failed
-- Performing Curl Test HAVE_IOCTLSOCKET_CAMEL_FIONBIO
-- Performing Curl Test HAVE_IOCTLSOCKET_CAMEL_FIONBIO - Failed
-- Performing Curl Test HAVE_IOCTLSOCKET_FIONBIO
-- Performing Curl Test HAVE_IOCTLSOCKET_FIONBIO - Failed
-- Performing Curl Test HAVE_IOCTL_FIONBIO
-- Performing Curl Test HAVE_IOCTL_FIONBIO - Success
-- Performing Curl Test HAVE_IOCTL_SIOCGIFADDR
-- Performing Curl Test HAVE_IOCTL_SIOCGIFADDR - Success
-- Performing Curl Test HAVE_SETSOCKOPT_SO_NONBLOCK
-- Performing Curl Test HAVE_SETSOCKOPT_SO_NONBLOCK - Failed
-- Performing Curl Test HAVE_O_NONBLOCK
-- Performing Curl Test HAVE_O_NONBLOCK - Success
-- Performing Curl Test HAVE_GETHOSTBYNAME_R_3
-- Performing Curl Test HAVE_GETHOSTBYNAME_R_3 - Failed
-- Performing Curl Test HAVE_GETHOSTBYNAME_R_5
-- Performing Curl Test HAVE_GETHOSTBYNAME_R_5 - Failed
-- Performing Curl Test HAVE_GETHOSTBYNAME_R_6
-- Performing Curl Test HAVE_GETHOSTBYNAME_R_6 - Success
-- Performing Curl Test HAVE_GETHOSTBYNAME_R_3_REENTRANT
-- Performing Curl Test HAVE_GETHOSTBYNAME_R_3_REENTRANT - Failed
-- Performing Curl Test HAVE_GETHOSTBYNAME_R_5_REENTRANT
-- Performing Curl Test HAVE_GETHOSTBYNAME_R_5_REENTRANT - Failed
-- Performing Curl Test HAVE_GETHOSTBYNAME_R_6_REENTRANT
-- Performing Curl Test HAVE_GETHOSTBYNAME_R_6_REENTRANT - Success
-- Performing Curl Test HAVE_IN_ADDR_T
-- Performing Curl Test HAVE_IN_ADDR_T - Success
-- Performing Curl Test HAVE_BOOL_T
-- Performing Curl Test HAVE_BOOL_T - Success
-- Performing Curl Test STDC_HEADERS
-- Performing Curl Test STDC_HEADERS - Success
-- Performing Curl Test HAVE_FILE_OFFSET_BITS
-- Performing Curl Test HAVE_FILE_OFFSET_BITS - Success
-- Performing Curl Test HAVE_VARIADIC_MACROS_C99
-- Performing Curl Test HAVE_VARIADIC_MACROS_C99 - Success
-- Performing Curl Test HAVE_VARIADIC_MACROS_GCC
-- Performing Curl Test HAVE_VARIADIC_MACROS_GCC - Success
-- Performing Curl Test HAVE_ATOMIC
-- Performing Curl Test HAVE_ATOMIC - Success
-- Check size of off_t
-- Check size of off_t - done
-- Check size of curl_off_t
-- Check size of curl_off_t - done
-- Check size of curl_socket_t
-- Check size of curl_socket_t - done
-- Performing Curl Test HAVE_GLIBC_STRERROR_R
-- Performing Curl Test HAVE_GLIBC_STRERROR_R - Failed
-- Performing Curl Test HAVE_POSIX_STRERROR_R
-- Performing Curl Test HAVE_POSIX_STRERROR_R - Success
-- Performing Curl Test HAVE_CLOCK_GETTIME_MONOTONIC
-- Performing Curl Test HAVE_CLOCK_GETTIME_MONOTONIC - Success
-- Performing Curl Test HAVE_BUILTIN_AVAILABLE
-- Performing Curl Test HAVE_BUILTIN_AVAILABLE - Success
-- Performing Test HAVE_MSG_NOSIGNAL
-- Performing Test HAVE_MSG_NOSIGNAL - Success
-- Performing Test HAVE_STRUCT_TIMEVAL
-- Performing Test HAVE_STRUCT_TIMEVAL - Success
-- Check size of struct sockaddr_storage
-- Check size of struct sockaddr_storage - done
-- Performing Test HAVE_H_ERRNO
-- Performing Test HAVE_H_ERRNO - Success
-- Performing Test HAVE_CLOCK_GETTIME_MONOTONIC_RAW
-- Performing Test HAVE_CLOCK_GETTIME_MONOTONIC_RAW - Failed
-- Enabled features: SSL IPv6 unixsockets AsynchDNS Largefile alt-svc HSTS NTLM TLS-SRP HTTPS-proxy threadsafe
-- Enabled protocols: HTTP HTTPS
-- Enabled SSL backends: OpenSSL
-- Compiler ID : Clang
-- CMAKE_BUILD_TYPE : Debug
-- Assuming GCC-like compiler.
-- Found Python3: /usr/bin/python3.10 (found version "3.10.12") found components: Interpreter
-- Python found, we are going to amalgamate.py.
-- CPM: Adding package fmt@10.2.1 (10.2.1)
CMake Warning (dev) at /usr/local/share/cmake-3.31/Modules/FetchContent.cmake:1953 (message):
  Calling FetchContent_Populate(fmt) is deprecated, call
  FetchContent_MakeAvailable(fmt) instead.  Policy CMP0169 can be set to OLD
  to allow FetchContent_Populate(fmt) to be called directly for now, but the
  ability to call it with declared details will be removed completely in a
  future version.
Call Stack (most recent call first):
  build/cmake/CPM_0.38.6.cmake:1004 (FetchContent_Populate)
  build/cmake/CPM_0.38.6.cmake:798 (cpm_fetch_package)
  contrib/ada/tools/cli/CMakeLists.txt:11 (CPMAddPackage)
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Version: 10.2.1
-- Build type: Debug
-- Performing Test HAS_NULLPTR_WARNING
-- Performing Test HAS_NULLPTR_WARNING - Success
-- CPM: Adding package cxxopts@3.2.0 (v3.2.0)
CMake Error at build/_deps/curl-src/lib/CMakeLists.txt:63 (target_link_libraries):
  Target "curlu" links to:

    OpenSSL::SSL

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.



CMake Error at build/_deps/curl-src/lib/CMakeLists.txt:150 (target_link_libraries):
  Target "libcurl_static" links to:

    OpenSSL::SSL

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.



CMake Error at build/_deps/cpr-src/cpr/CMakeLists.txt:39 (target_link_libraries):
  Target "cpr" links to:

    OpenSSL::SSL

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.



-- Generating done (0.1s)
CMake Generate step failed.  Build files cannot be regenerated correctly.
@COM8
Copy link
Member

COM8 commented Jan 30, 2025

@HeenaBansal20 thanks for reporting!

I might have some time over the weekend to investigate this a bit.

@HeenaBansal20
Copy link
Author

I was able to bypass the "curlu and curl_static errors by setting set(CPR_USE_SYSTEM_CURL ON)
However , still getting the same error from this cpr/CMakefiletxt. line 39

CMake Error at build/_deps/cpr-src/cpr/CMakeLists.txt:39 (target_link_libraries):
  Target "cpr" links to:

    OpenSSL::SSL

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.

@COM8 COM8 added the curl 🌐 label Feb 1, 2025
@COM8
Copy link
Member

COM8 commented Feb 2, 2025

I'm unable to reproduce your errors since there are multiple errors with your install script:

  1. I guess
    FetchContent_Populate(cpr)
        set(CPR_ENABLE_SSL ON)
    endif()

has to be:

    FetchContent_Populate(cpr)
    set(CPR_ENABLE_SSL ON)
  1. Why do you install and build curl twice?
wget -qO- "https://curl.se/download/curl-8.8.0.tar.gz" | tar -zxf - -C /usr/src \
    && cd /usr/src/curl-8.8.0 \
    && ./configure --enable-versioned-symbols --with-openssl=/opt/ssl3.0 --prefix=/opt/ssl3.0 \
    && make -j \
    && make install \
    && make clean \
    && ./configure --enable-versioned-symbols --with-openssl \
    && make -j \
    && make install \
    && make clean \
    && rm -fr /usr/src/curl-8.8.0
  1. Why do you set the curl install prefix to --prefix=/opt/ssl3.0? As far as I understand this is where curl will be installed to.

When I run your script, curl can't find openssl and it fails with:

[...]
configure: PKG_CONFIG_LIBDIR will be set to "/opt/ssl3.0/lib64/pkgconfig"
checking for pkg-config... no
checking for HMAC_Update in -lcrypto... no
checking for HMAC_Init_ex in -lcrypto... no
checking OpenSSL linking with -ldl... no
checking OpenSSL linking with -ldl and -lpthread... no
checking for SSL_set_quic_use_legacy_codepoint... no
configure: OpenSSL version does not speak QUIC API
configure: OPT_OPENSSL: /opt/ssl3.0
configure: OPENSSL_ENABLED: 
configure: error: --with-openssl was given but OpenSSL could not be detected
  1. Why don't you use the system version of curl and openssl e.g. via apt install -y libcurl4-openssl-dev?

# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

No branches or pull requests

2 participants