Package: libpoco-dev
Severity: important
X-Debbugs-Cc: jay...@gmail.com

Dear Maintainer,

I am attempting to use libpoco-dev cmake files on bullseye, but the
problem encountered dates back to the addition of the cmake files to
the libpoco-dev package as part of
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=880614

The CMakeLists.txt snippet which should work is:

find_package(Poco COMPONENTS Foundation REQUIRED)

However that looks for "Poco" cmake files and fails.
This first problem is raised upstream as
https://github.com/pocoproject/poco/issues/3244

I can workaround this by doing
# ln -s /usr/lib/x86_64-linux-gnu/cmake/cmake/Poco/ /usr/lib/cmake/

Then we encounter the following error:

CMake Error at /usr/share/cmake-3.18/Modules/CMakeFindDependencyMacro.cmake:47 
(find_package):
  By not providing "FindPCRE.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "PCRE", but
  CMake did not find one.

  Could not find a package configuration file provided by "PCRE" with any of
  the following names:

    PCREConfig.cmake
    pcre-config.cmake

  Add the installation prefix of "PCRE" to CMAKE_PREFIX_PATH or set
  "PCRE_DIR" to a directory containing one of the above files.  If "PCRE"
  provides a separate development package or SDK, be sure it has been
  installed.
Call Stack (most recent call first):
  /usr/lib/x86_64-linux-gnu/cmake/cmake/Poco/PocoFoundationConfig.cmake:5 
(find_dependency)
  /usr/lib/x86_64-linux-gnu/cmake/cmake/Poco/PocoConfig.cmake:29 (find_package)
  CMakeLists.txt:48 (find_package)

This is because libpcre2-dev and libpcre3-dev dont include any of those
mentioned files (FindPCRE.cmake, PCREConfig.cmake, or
pcre-config.cmake).

Note pcre2 does has a pcre2-config.cmake.in file which presumably
is used to generate a pcre2-config.cmake .
https://sources.debian.org/src/pcre2/10.39-3/cmake/
This wont suffice, as it doesnt provide cmake library `Pcre::Pcre`
which is needed by Poco.

However I can workaround this by adding the followinfg to /usr/lib/cmake/Poco/
as set up previously.
https://github.com/pocoproject/poco/blob/master/cmake/FindPCRE.cmake
Note the contents of that file mention `Pcre::Pcre`.

Worth noting vcpkg goes about fixing this a different way, by creating
their own unofficial-pcre-config.cmake at
https://github.com/ddc7451/vcpkg/tree/5746100fdc746523dd6cb1bac2cd1c0a50e0c253/ports/pcre
and then patching poco to look for unofficial::pcre::pcre
https://github.com/ddc7451/vcpkg/search?q=unofficial%3A%3Apcre%3A%3Apcre
https://github.com/ddc7451/vcpkg/blob/5746100fdc746523dd6cb1bac2cd1c0a50e0c253/ports/poco/include_pcre.patch

-- System Information (reportbug hacked to work on macos..):
Architecture: darwin-amd64 (x86_64)

Kernel: Darwin 21.1.0
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8), LANGUAGE not set
Init: unable to detect

Reply via email to