cmake DEFINED scheint Variable nicht zu erkennen

Ich habe diesen Code in cmake:

#mandatory
SET(BOOST_DIR "$ENV{BOOST_HOME}")
if (DEFINED ${BOOST_DIR})
    #global include directories
    include_directories(${BOOST_DIR})
else(DEFINED ${BOOST_DIR})
    message( STATUS "BOOST_HOME at ${BOOST_DIR}")

    message( FATAL_ERROR "Undefined BOOST_HOME env var.")
endif(DEFINED ${BOOST_DIR})

Die env var BOOST_HOME ist definiert (/ home / ferran / boost). Das Verhalten ist sehr merkwürdig, da die Ausgabe Folgendes ist:

-- BOOST_HOME at /home/ferran/boost
CMake Error at CMakeLists.txt:14 (message):
  Undefined BOOST_HOME env var.


-- Configuring incomplete, errors occurred!

Also existiert die var und druckt ihren Inhalt und existiert gleichzeitig nicht?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage