Hi I have a problem with the search order of FIND_PROGRAM in cmake 2.4.2. The docs say:
[...] Projects may override this behavior by simply calling the command twice: FIND_PROGRAM(<VAR> NAMES name PATHS paths NO_DEFAULT_PATH) FIND_PROGRAM(<VAR> NAMES name) Once one of these calls succeeds the result variable will be set and stored in the cache so that neither call will search again I use this as follows: FIND_PROGRAM(KDE3_DCOPIDL_EXECUTABLE NAME dcopidl PATHS $ENV{KDEDIR}/bin ${KDE3PREFIX}/bin /opt/kde/bin /opt/kde3/bin NO_DEFAULT_PATH ) FIND_PROGRAM(KDE3_DCOPIDL_EXECUTABLE NAME dcopidl) If I make sure that $KDEDIR is not set, this code will fail on my debian system, although dcopidl is installed in /usr/bin. If I remove NO_DEFAULT_PATH, this code works perfectly. The code _also_ works correctly, if I remove the first FIND_PROGRAM() call completely. Once the KDE3_DCOPIDL_EXECUTABLE variable is set to anything, FIND_PROGRAM is apparently a noop. The following code confirms that: SET(KDE3_DCOPIDL_EXECUTABLE "") FIND_PROGRAM(KDE3_DCOPIDL_EXECUTABLE NAME dcopidl) This code won't find dcopidl. If I remove the SET() line however, dcopidl _is_ found. So to me this looks like a cmake bug. Any idea how to work around this? CU Andi _______________________________________________ CMake mailing list CMake@cmake.org http://www.cmake.org/mailman/listinfo/cmake