2011-10-21 17 views
14

Voglio definire una versione di boost minimo che sia disponibile sul sistema. Ho provato il seguente approccio. Sfortunatamente questo non ha funzionato, in quanto cerca di compilare anche con solo boost 1.40.0 disponibile sul sistema.Impostare la versione minima di boost in cmake

SET(Boost_USE_STATIC_LIBS OFF) 
SET(Boost_USE_MULTITHREAD OFF) 
SET(BOOST_MIN_VERSION "1.47.0") 

FIND_PACKAGE(Boost REQUIRED) 

FIND_PACKAGE(Boost REQUIRED) 
if (NOT Boost_FOUND) 
     message(FATAL_ERROR "Fatal error: Boost (version >= 1.47.0) required.\n") 
endif (NOT Boost_FOUND) 

INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) 
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) 

Come è possibile ottenere cmake per controllare la versione di boost corretta, prima della compilazione?

risposta

12

Sulla base this sembra che FIND_PACKAGE ignora SET(BOOST_MIN_VERSION "1.47.0") invece si potrebbe usare FIND_PACKAGE(Boost 1.47.0 REQUIRED) o leggermente più bello FIND_PACKAGE(Boost ${BOOST_MIN_VERSION} REQUIRED)

+0

Grazie FIND_PACKAGE (Boost $ {} BOOST_MIN_VERSION RICHIESTO) ha funzionato. – tune2fs

+1

@ tune2fs Funziona solo per versioni minori. Se avessi boost 2.0 (supponendo che esistesse una cosa del genere) questo non riuscirebbe a trovarlo. – juanchopanza

Problemi correlati