2013-04-02 5 views
12

Cmake Version 2.8.4Kraft Cmake find_library suchen in benutzerdefinierten Verzeichnis

Ich habe folgende Apache Portable Runtime-Bibliotheken, die ich selbst zusammengestellt und möchte, dass meine Anwendung gegen verknüpfen.

Mein Projekt Verzeichnis, in dem meine April Bibliotheken sind:

gw_proj/tools/apr/libs 

In meinem CMakeLists.txt ich habe folgendes:

FIND_LIBRARY(APRUTIL NAMES "aprutil-1" 
    PATHS ${PROJECT_SOURCE_DIR}/tools/apr/libs) 

Mein Problem an einer Maschine ist, die bereits die Apache Portable Runtime bereits installiert wird es in diesem Ordner suchen:

/usr/lib 

So wird immer ignorieren Mein benutzerdefinierter Pfad

Wie kann ich zwingen die FIND_LIBRARY immer in meinem benutzerdefinierten Verzeichnis zu suchen:

gw_proj/tools/apr/libs 

Vielen Dank für Ihre Anregungen

Antwort

11

Sie die Suchreihenfolge, NO_CMAKE_ENVIRONMENT_PATH mit einem oder mehreren von NO_DEFAULT_PATH angeben können, NO_CMAKE_PATH, NO_SYSTEM_ENVIRONMENT_PATH, NO_CMAKE_SYSTEM_PATH, CMAKE_FIND_ROOT_PATH_BOTH, ONLY_CMAKE_FIND_ROOT_PATH oder NO_CMAKE_FIND_ROOT_PATH.

Aus der Dokumentation für find_library:

Die Standard-Suchreihenfolge ist so konzipiert, die meisten spezifisch am wenigsten spezifisch für allgemeine Anwendungsfälle sein. Die Projekte können die Reihenfolge verändert werden, indem man einfach den Befehl mehrere Male aufrufen und die NO_ * Optionen:

find_library(<VAR> NAMES name PATHS paths... NO_DEFAULT_PATH) 
find_library(<VAR> NAMES name) 

Sobald einer der Anrufe die Ergebnisvariable erfolgreich im Cache eingestellt und gespeichert werden, so dass kein Anruf wieder suchen .

Also in Ihrem Fall, Sie

FIND_LIBRARY(APRUTIL NAMES "aprutil-1" 
    PATHS ${PROJECT_SOURCE_DIR}/tools/apr/libs NO_DEFAULT_PATH) 
+0

Dank tun, wie ein Charme. – ant2009

Verwandte Themen