Für externe Bibliotheken kann der Benutzer einen nicht standardmäßigen Speicherort angeben, indem er den Pfad zu CMAKE_FLAGS
hinzufügt oder -DMYLIB_ROOT
hinzufügt. Innerhalb des CMake-Skripts möchte ich die PC-Datei pkg-config der Bibliothek finden. Da sich die PC-Datei nicht im Standardordner befindet, wird sie von pkg-config nicht mit FindPkgConfig
pkg_search_module
gefunden.Fügen Sie temporären Pfad zu pkg-config in CMake Skript hinzu?
Ich habe versucht, den Benutzer angegebenen Pfad zum PKG_CONFIG_PATH
hinzuzufügen, aber es schien, um ignoriert zu werden:
include(FindPkgConfig)
set(PKG_CONFIG_PATH "${PKG_CONFIG_PATH}:${MYLIB_ROOT}/lib/pkgconfig")
pkg_search_module(PKG_MYLIB mylib)
if(${PKG_MYLIB_FOUND})
...
Als ich pkg-config vom Terminal mit dem modifizierten PKG_CONFIG_PATH
Satz nennen, ist es die PC-Datei . Was mache ich falsch? Wie kann ich pkg_search_module
arbeiten? Ich möchte vermeiden, pkg-config direkt von CMake anzurufen.
Sie haben recht, das ist der Weg zu gehen, wenn CMake 3.0 oder älter verwendet wird. Mit 3.1 wird es automatisch eingebunden. – usr1234567
Scheint die einzige Lösung zu sein, die für mich funktioniert ... –