mirror of
https://github.com/curl/curl.git
synced 2026-07-12 21:07:20 +03:00
Same issue as seen before with libssh2: `libpsl`'s pkg-config module
depends on another module, but that's not found. CMake ends up reporting
`LIBPSL_FOUND=YES`, while leaving `LIBPSL_INCLUDE_DIRS` empty. Then
the build fails to find `psl.h`.
The missing dependency in this case is `icu4c`, which is "keg-only",
meaning it's not exposed in the default Homebrew header, pkg-config,
lib, etc locations. It must be added to the `PKG_CONFIG_PATH` env, as
suggested by the warnings messages of `pkgconf`.
To avoid this fallout, let's ensure that `LIBPSL_INCLUDE_DIRS` is
non-empty when detecting via `pkg-config` and fall back to the CMake
detection method otherwise.
This was an issue till Homebrew libpsl 0.21.5_1, fixed in 0.21.5_2, that
no longer depends on `icu4c`.
Example log:
```
-- Checking for module 'libpsl'
-- Found libpsl, version 0.21.5
Package icu-uc was not found in the pkg-config search path.
Perhaps you should add the directory containing `icu-uc.pc'
to the PKG_CONFIG_PATH environment variable
Package 'icu-uc', required by 'libpsl', not found
[...]
-- Found Libpsl (via pkg-config): (found version "0.21.5")
[...]
In file included from curl/_bld/lib/CMakeFiles/libcurl_static.dir/Unity/unity_0_c.c:4:
In file included from curl/lib/altsvc.c:32:
In file included from curl/lib/urldata.h:145:
curl/lib/psl.h:28:10: fatal error: 'libpsl.h' file not found
^~~~~~~~~~
1 error generated.
```
Follow-up to
|
||
|---|---|---|
| .. | ||
| Platforms | ||
| cmake_uninstall.cmake.in | ||
| CMakeConfigurableFile.in | ||
| curl-config.cmake.in | ||
| CurlSymbolHiding.cmake | ||
| CurlTests.c | ||
| FindBearSSL.cmake | ||
| FindBrotli.cmake | ||
| FindCares.cmake | ||
| FindGSS.cmake | ||
| FindLDAP.cmake | ||
| FindLibgsasl.cmake | ||
| FindLibidn2.cmake | ||
| FindLibpsl.cmake | ||
| FindLibssh.cmake | ||
| FindLibssh2.cmake | ||
| FindLibuv.cmake | ||
| FindMbedTLS.cmake | ||
| FindMSH3.cmake | ||
| FindNettle.cmake | ||
| FindNGHTTP2.cmake | ||
| FindNGHTTP3.cmake | ||
| FindNGTCP2.cmake | ||
| FindQuiche.cmake | ||
| FindRustls.cmake | ||
| FindWolfSSH.cmake | ||
| FindWolfSSL.cmake | ||
| FindZstd.cmake | ||
| Macros.cmake | ||
| OtherTests.cmake | ||
| PickyWarnings.cmake | ||
| Utilities.cmake | ||