microsoft / vcpkg

C++ Library Manager for Windows, Linux, and MacOS
MIT License
23.26k stars 6.41k forks source link

[glfw3/glew] Incorrect pkgconfig #16096

Closed danielwolbach closed 3 years ago

danielwolbach commented 3 years ago

I installed Vcpkg in my home directory and installed a bunch of libraries. Everything went well. But then I decided to move Vcpkg to C:\Dev\vcpkg. I did vcpkg integrate remove and deleted the vcpkg directory in my home directory. I cloned the Vcpkg repo to the new location and installed it there. I installed the same libraries again, but then I had a problem: The generated *.pc fiels for pkg-config were using the old directories for the prefixes. Vcpkg must have stored these directory prefixes somewhere but I wasn't able to find out where. I checked all environment variables. How can I completely reset Vcpkg or change these directory prefixes (without having to do it manually everywhere)?

JackBoosY commented 3 years ago

Relative paths rather than absolute paths should be used in the pkgconfig file. Such as zlib.pc:

prefix=${pcfiledir}/../..

exec_prefix=${prefix}
libdir=${prefix}/lib
sharedlibdir=${prefix}/lib
includedir=${prefix}/include

Name: zlib
Description: zlib compression library
Version: 1.2.11

Requires:
Libs: -L${libdir} -L${sharedlibdir} -lzlib
Cflags: -I${includedir}

Can you provide the wrong port name?

danielwolbach commented 3 years ago

Sorry, I don't know what you mean with "port name". Can you please explain? (I don't really have any in-depth knowledge about Vcpkg)

StarGate-One commented 3 years ago

In the below example, the names on the outside of the brackets are ports, those inside the brackets are features. Features can be ports, as curl is a port with features brotli, c-ares, http2, idn2, etc, but curl is also a feature of port azure-core-cpp, cfitsio, curlpp, czmq, fmi4cpp, etc.

PS D:\2017\test> ./vcpkg search curl azure-core-cpp[curl] Build an HTTP transport implementation with LibCURL cfitsio[curl] UseCurl cpr 1.5.2 C++ Requests is a simple wrapper around libcurl inspired by the excellent Pyth... curl 7.74.0#2 A library for transferring data with URLs curl[brotli] brotli support (brotli) curl[c-ares] c-ares support curl[http2] HTTP2 support curl[idn2] idn2 support (libidn2) curl[mbedtls] SSL support (mbedTLS) curl[non-http] Enables protocols beyond HTTP/HTTPS/HTTP2 curl[openssl] SSL support (OpenSSL) curl[schannel] SSL support (Secure Channel) curl[sectransp] SSL support (sectransp) curl[ssh] SSH support via libssh2 curl[ssl] Default SSL backend curl[sspi] SSPI support curl[tool] Builds curl executable curl[winssl] Legacy name for schannel curlpp 2018-06-15-3 C++ wrapper around libcURL czmq[curl] Build with libcurl fmi4cpp[curl] Allows loading FMUs from URL oatpp-curl 1.2.0#2 Oat++ Modern web framework curl module to use libcurl as a RequestExecutor on ... poppler[curl] curl for poppler restclient-cpp 0.5.2 Simple REST client for C++. It wraps libcurl for HTTP requests.

If your library is not listed, please open an issue at and/or consider making a pull request: https://github.com/Microsoft/vcpkg/issues

JackBoosY commented 3 years ago

@octowaddle Can you provide me the broken pkgconfig file name?

danielwolbach commented 3 years ago

The ports are glfw3 and glew with the pkgconfig files glfw3.pc and glew.pc.