[CMake] FIND_* search paths

Filipe Sousa filipe at ipb.pt
Wed Jan 4 13:59:33 EST 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Bill Hoffman wrote:
> There is a problem in cmake with FIND_LIBRARY,
> FIND_PATH, and FIND_FILE searching paths.
> 
> Currently they search like this:
> 
> FIND_PATH:
> 1. The list of paths specified in the call to the command.
> 2. CMAKE_INCLUDE_PATH environment variable
> 3. PATH environment variable
> 4. Mac Framework directories (on apple)
> 
> FIND_LIBRARY:
> 1. CMAKE_LIBRARY_PATH environment variable
> 2. LIB environment variable
> 3. PATH environment variable
> 4. The list of paths specified in the call to the command
> 5. some compiler specific paths for borland and visual studio
> 6. Mac Framework directories (on apple)
> 
> FIND_FILE:
> 1. The list of paths specified in the call to the command.
> 2. CMAKE_LIBRARY_PATH environment variable
> 3. PATH environment variable
> 
> I would like to propose a change to clean things up.
> I suggest creating some variables that are set in the Platform
> files.
> 
> CMAKE_SYSTEM_INCLUDE_DIRECTORIES
> CMAKE_SYSTEM_LIB_DIRECTORIES
> 
> These would be set based on the OS and compiler being used.
> Then I would like to make the list of paths specified in the call
> to the FIND_* command always come first.   Then you would refer
> to the variables above for search paths.
> 
> FIND_LIBRARY(FOO_LIB foo 
>   ${CMAKE_SYSTEM_LIB_DIRECTORIES} /my/special/path)
> FIND_PATH(FOO_INCLUDE_DIR foo.h 
>   ${CMAKE_SYSTEM_INCLUDE_DIRECTORIES} /my/special/include/path)
> 
> Or if you wanted to search your special stuff first you could do this:
> FIND_PATH(FOO_INCLUDE_DIR foo.h 
>   /my/special/include/path ${CMAKE_SYSTEM_INCLUDE_DIRECTORIES} )
> 
> So, the order for all of them would be:
> 
> 1. The list of paths specified in the call to the command, and
>    people would use the system ones, that would include frameworks on the Mac,
>    or any special compiler paths.
> 2. CMAKE_*_PATH environment variable
> 3. PATH environment variable
> 4. (for FIND_LIBRARY only) The compiler specific paths that we searched in the past, this
> is around only for backwards compatibility in the FIND_LIBRARY command,
> and those paths will be duplicated in the CMAKE_SYSTEM_LIB_DIRECTORIES
> variable.
> 
> 
> How does this sound?

Sounds great. But what about FIND_PROGRAM? We could have
CMAKE_SYSTEM_BIN_DIRECTORIES.

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

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFDvBsVbQdNYqwwwCwRAsrvAJ46+2CLEAP0MMjlMOXZZ8LeWpfOPQCcCBry
v0bU44LBYgijDb5Fa8WowoY=
=AO+5
-----END PGP SIGNATURE-----


More information about the CMake mailing list