James Bigler wrote:


  FIND_PROGRAM(PARSER_EXECUTABLE
    NAMES my_parser
    PATHS ${PARSER_DIR} )

  IF(EXISTS ${PARSER_EXECUTABLE})
    SET(PARSERS_FOUND 1)
  ELSE(EXISTS ${PARSER_EXECUTABLE})
    SET(PARSERS_FOUND 0)
  ENDIF(EXISTS ${PARSER_EXECUTABLE})

 CMake Error: Error in cmake code at
 /tmp/bigler/manta/trunk/src/CMake/FindParsers.cmake:20:
IF had incorrect arguments: EXISTS ${BISON_EXECUTABLE} (Unknown arguments specified).
 Current CMake stack:

Is this a bug, or am I doing something wrong. I would expect that nothing in the else block to be evaluated if the if statement were true.

Try IF(${PARSER_EXECUTABLE}).
A FIND_PROGRAM always sets a variable to -NOTFOUND when it doesn't find anything. This is equivalent to FALSE.

Now having said that, I'd expect EXISTS to work. But I'm a little tired to go over your program behavior. The general drill with things like this, is to isolate the offending code snippet down to a trivial reproducer. Your current snipped is almost but-not-quite trivial. I note the docs say, "[EXISTS] behavior is well-defined only for full paths." Is PARSER_EXECUTABLE in fact a full path?

BTW, given the -NOTFOUND output, seems like PARSERS_FOUND is a redundant variable.


Cheers,
Brandon Van Every

_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to