PCRE2Project / pcre2

PCRE2 development is now based here.
Other
883 stars 185 forks source link

Error message "Could NOT find PCRE2: missing: 8BIT" in response to find_package(..) #439

Open idruker-cerence opened 3 weeks ago

idruker-cerence commented 3 weeks ago

Hello

I compile PCRE2 with cmake:

cd pcre2
mkdir build 
cmake -G "Unix Makefiles" -S . -B build
cmake --build build -j 8 --config Release --target install

The build succeeds and along libs produces the files pcre2-config.cmake and pcre2-config-version.cmake in the directory build/cmake.

Next, I want to compile a project that uses PCRE2 as a dependency - let's call it dummy. As per instruction, I set in its CMakeLists.txt

set(PCRE2_USE_STATIC_LIBS ON)
find_package(PCRE2 CONFIG COMPONENTS 8BIT)

and command the build as:

cd dummy
mkdir build
cmake -G "Unix Makefiles" -S . -B build -DCMAKE_PREFIX_PATH=../pcre2/build/cmake

I specified CMAKE_PREFIX_PATH in order that the compiler finds pcre2-config.cmake and indeed the compiler finds it but then produces the following error:

-- Could NOT find PCRE2: missing: 8BIT (found /mnt/c/Home/Workspaces/pcre2/build/cmake/pcre2-config.cmake (found version "10.42.0"))
CMake Warning at CMakeLists.txt:8 (find_package):
  Found package configuration file:

    /mnt/c/Home/Workspaces/pcre2/build/cmake/pcre2-config.cmake

  but it set PCRE2_FOUND to FALSE so package "PCRE2" is considered to be NOT
  FOUND.

It looks as if the required component 8BIT was not defined as the result of PCRE2 compilation. What have I missed?

Thank you

carenas commented 3 weeks ago

FWIW, can't reproduce this in macOS (using cmake 3.30.2), even with the old PCRE2 10.42 code but it seems broken (if not even more so as it can't find PCRE2_INCLUDE_DIR also in my tests) in Windows.

There are several unresolved issues with cmake (see #115) with some old bugs fixed in newer versions of PCRE2 that might help.