On 27.01.11 16:13:09, arrowdodger wrote: > Hello. On FreeBSD everything, that distributes with system goes to /usr (i > mean includes go to /usr/includes and libs to /usr/lib) and all 3d party > stuff goes to /usr/local. > And the compiler is intentionally set to look only in /usr/include. The same > is for linker - it's looking for libs only in /usr/lib by default. So, if > user want to use some 3d-party library, he should add -I/usr/local/include > and -L/usr/local/lib to build command. > > Now, i'm using find_library() and find_path() to locate 3d-party library in > such way: > > > find_path(FFI_INCLUDE_PATH ffi.h PATHS ${USER_DEFINED_INCLUDE_DIR}) > > find_library(FFI_LIBRARY_PATH ffi PATHS ${USER_DEFINED_LIB_DIR}) > > > I'm expecting that search will not succeed until i supply CMake with > additional directories to search. But it's succeeds because > CMAKE_SYSTEM_PREFIX_PATH from Modules/Platform/UnixPaths.cmake is set to > "/usr;/usr/local;/". And this file is included by > Modules/Platform/FreeBSD.cmake. > > Later i'm doing: > > > if(${USER_DEFINED_INCLUDE_DIR}) > > include_directories(${FFI_INCLUDE_DIR}) > > endif() > > > > On FreeBSD it leads to "No such file or directory: ffi.h" error. So here is > the question: Is this a CMake bug?
No, the bug is in your cmake code. You shouldn't use USER_DEFINED_INCLUDE_DIR to decide wether to add the path to the include-directories or not. Instead use the FFI_INCLUDE_PATH variable to decide that, it won't hurt if FFI_INCLUDE_PATH happens to be /usr/include. The reason cmake searches in /usr/local in addition to /usr is simply a convenience matter. Its a common prefix to have non-distribution software installed in and for the same reason things like /opt/local, /opt/csw and /usr/openwin are being searched for by default. Andreas -- Beware of a dark-haired man with a loud tie. _______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake