On Tue, Aug 28, 2012 at 6:59 PM, Glenn Coombs <glenn.coo...@gmail.com>wrote:
> I need to test for the presence of a directory called driver_root. I > couldn't see a find_directory() command in the help I cannot comment about your issues concerning find_file, but if you know the name of a file contained in the directory you can use find_path: http://cmake.org/cmake/help/v2.8.8/cmake.html#command:find_path Cheers, Adolfo. > so I am using the following lines in my CMakeLists.txt: > > message("1 DRV_ROOT_CHECK: ${DRV_ROOT_CHECK}") > if (DEFINED ENV{DRV_ROOT}) > find_file(DRV_ROOT_CHECK driver_root $ENV{DRV_ROOT}/..) > message("2 DRV_ROOT_CHECK: ${DRV_ROOT_CHECK}") > endif() > > message("3 DRV_ROOT_CHECK: ${DRV_ROOT_CHECK}") > find_file(DRV_ROOT_CHECK driver_root > ../CVSFILES > ../.. > ../../CVSFILES > ../../.. > ../../../CVSFILES > ../../../.. > ) > message("4 DRV_ROOT_CHECK: ${DRV_ROOT_CHECK}") > > set(DRV_ROOT "${DRV_ROOT_CHECK}" CACHE PATH "Location of > driver tree") > set(DRV_ROOT_CHECK "${DRV_ROOT_CHECK}" CACHE INTERNAL "Location of > driver tree") > > message("5 DRV_ROOT_CHECK: ${DRV_ROOT_CHECK}") > > if (DRV_ROOT_CHECK) > message(" DRV_ROOT: ${DRV_ROOT}") > else() > message(FATAL_ERROR "Unable to locate driver_root directory. > Please set DRV_ROOT variable.") > endif() > > It works fine on my machine but fails on one of our build machines. Both > machines are Windows 7 (64-bit) and are using CMake 2.8.9. On my machine > it produces this output: > > 1 DRV_ROOT_CHECK: > 3 DRV_ROOT_CHECK: > 4 DRV_ROOT_CHECK: C:/data/perforceCheckouts/sim/vxe/CVSFILES/driver_root > 5 DRV_ROOT_CHECK: C:/data/perforceCheckouts/sim/vxe/CVSFILES/driver_root > DRV_ROOT: C:/data/perforceCheckouts/sim/vxe/CVSFILES/driver_root > > but on the build machine it produces this output: > > 1 DRV_ROOT_CHECK: > 3 DRV_ROOT_CHECK: > 4 DRV_ROOT_CHECK: C:/Windows/System32/driver_root > 5 DRV_ROOT_CHECK: C:/Windows/System32/driver_root > > There is no file or directory called driver_root in the windows/systsem32 > folder. If I change the find_file() command to this: > > find_file(DRV_ROOT_CHECK driver_root PATHS > ../CVSFILES > ../.. > ../../CVSFILES > ../../.. > ../../../CVSFILES > ../../../.. > NO_DEFAULT_PATH > ) > > then it works producing this output: > > 1 DRV_ROOT_CHECK: > 3 DRV_ROOT_CHECK: > 4 DRV_ROOT_CHECK: C:/glenn/CVSFILES/driver_root > 5 DRV_ROOT_CHECK: C:/glenn/CVSFILES/driver_root > > Is this a bug in cmake or can somebody explain how it found a non-existant > file/folder in the windows/system32 folder ? > > -- > Glenn > > > -- > > 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 > -- Adolfo Rodríguez Tsouroukdissian Robotics engineer adolfo.rodrig...@pal-robotics.com http://www.pal-robotics.com PAL ROBOTICS S.L c/ Pujades 77-79, 4º4ª 08005 Barcelona, Spain. Tel. +34.93.414.53.47 Fax.+34.93.209.11.09 AVISO DE CONFIDENCIALIDAD: Este mensaje y sus documentos adjuntos, pueden contener información privilegiada y/o confidencial que está dirigida exclusivamente a su destinatario. Si usted recibe este mensaje y no es el destinatario indicado, o el empleado encargado de su entrega a dicha persona, por favor, notifíquelo inmediatamente y remita el mensaje original a la dirección de correo electrónico indicada. Cualquier copia, uso o distribución no autorizados de esta comunicación queda estrictamente prohibida. CONFIDENTIALITY NOTICE: This e-mail and the accompanying document(s) may contain confidential information which is privileged and intended only for the individual or entity to whom they are addressed. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or use of this e-mail and/or accompanying document(s) is strictly prohibited. If you have received this e-mail in error, please immediately notify the sender at the above e-mail address.
-- 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