Hi, FYI:
I just had a run-in with a cmake-based project that found the correct libpng binary during the configure phase but for a rather nasty reason tried to link to another version installed elsewhere. That was on Linux, but there's no guarantee that the same issue cannot occur on OS X. - find(PNG) correctly set PNG_LIBRARIES to `$prefix/lib/libpng.dylib:$prefix/lib/libz.dylib` - however, the compiler/linker command had `-lpng -lz` instead, and no preceding -L$prefix/lib and thus found libpng in a standard location (I learned that CMake calls those "implicit link directories"). Normally this would have been fine because "base" sets LIBRARY_PATH to $prefix/lib, and indeed that suffices with gcc. Not so with clang (tested only with 4.0). When diagnosing this I noticed that - gcc translates LIBRARY_PATH=/path to -L/path BEFORE the first -lfoo option on the actual linker commandline - clang does something similar, but adds the -L/path AFTER the -lfoo options given by the user. IOW, with clang, LIBRARY_PATH only affects the search path for libraries added automatically, not those specified by the user. To cut a long story short, it is possible to deactivate this automatic libspec rewriting (see the `CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES` documentation) by setting policy CMP0060 to NEW. I've done this in the still-pending update to my cmake-1.1 PG by adding `-DCMAKE_POLICY_DEFAULT_CMP0060=NEW` to the default configure.args list. In the case of the project in question (and linking to libpng in general), one also avoids the issue by using `PNG::PNG` instead of `${PNG_LIBRARIES}`. R.