2015-03-04 4 views
8

Ich debugge eine cmake-Datei, die bestimmte Pakete nicht finden kann (mit find_package()). Was macht find_package() eigentlich, wenn es nach Paketen sucht, und kann ich es mit einem Kommandozeilen-Aufruf simulieren (ohne CMake aufzurufen)?Befehlszeilenäquivalent von cmakes find_package?

Antwort

14

Ja und ja!

1. Was find_package tut:

Vom documentation of find_package():

CMake sucht nach einer Datei Find.cmake im CMAKE_MODULE_PATH gefolgt von der CMake Installation genannt. Wenn die Datei gefunden wird, wird sie von CMake gelesen und verarbeitet.

Unter Linux in der Regel die Standard-Skripte befinden sich hier:

ls /usr/share/cmake*/Modules/Find*.cmake 

2. Wie find_package auf der Kommandozeile verwenden:

# cmake --find-package -DNAME=Boost -DCOMPILER_ID=GNU -DLANGUAGE=C -DMODE=EXIST 
Boost found 

# cmake --find-package -DNAME=Boost -DCOMPILER_ID=GNU -DLANGUAGE=C -DMODE=COMPILE 
-I/usr/include 

# cmake --find-package -DNAME=Boost -DCOMPILER_ID=GNU -DLANGUAGE=C -DMODE=LINK 
    -rdynamic 
+1

Sweet! Vielen Dank! – Phonon

Verwandte Themen