[CMake] Path vs. name preference during search.
Marcel Loose
marcel.loose at zonnet.nl
Fri Feb 14 04:57:37 EST 2014
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
For more discussion on the search order of PATHS and NAMES used by the
different Find_* commands see, e.g.:
http://www.cmake.org/pipermail/cmake/2009-October/032565.html
http://www.cmake.org/pipermail/cmake/2010-March/035889.html
http://public.kitware.com/Bug/view.php?id=10718
The current CMake behaviour is not likely to change. IIRC, Bill
Hoffman once explained that the NAMES option was introduced to specify
name *aliases* like 'gtk' 'gtk12' in FindGTK.cmake. It was *not* meant
to specify a list of names for *different* entities.
Best regards,
Marcel Loose.
op 14-02-14 09:02, Jakub Zakrzewski schreef:
> Hi,
>
> what about searching multiple times, each time giving only the path
> you want (in order of prefference)? If I'm correct, once the
> library is found, next attempts to find it againg will be a no-op.
>
>
>
> --
>
> Gruesse,
>
> Jakub
>
>
>
>
>
> *From:*CMake [mailto:cmake-bounces at cmake.org] *On Behalf Of *Rob
> McDonald *Sent:* Donnerstag, 13. Februar 2014 19:21 *To:*
> Jean-Christophe Fillion-Robin *Cc:* CMake ML *Subject:* Re: [CMake]
> Path vs. name preference during search.
>
>
>
> Jc,
>
>
>
> That is an approach I have thought about. I even think I have
> looked at Slicer for how you work your CMake system.
>
>
>
> I prefer to use project-supplied FindLIB.cmake (or a slightly
> modified version thereof) because some of them do more than just
> setting LIBRARY, INCLUDE_DIR, and FOUND variables.
>
>
>
> Rather than duplicate everything done in the FindLIB.cmake script
> (which can have platform-dependent logic), I have gone the path of
> encouraging the FindLIB.cmake to find the one I want.
>
>
>
> Rob
>
>
>
>
>
> On Thu, Feb 13, 2014 at 10:09 AM, Jean-Christophe Fillion-Robin
> <jchris.fillionr at kitware.com <mailto:jchris.fillionr at kitware.com>>
> wrote:
>
> Hi Rob,
>
> Do address the use case you described, I usually explicitly set the
> path the library when built as an external project and rely only on
> the find_* command for the use_system case.
>
> See
> https://github.com/Slicer/Slicer/blob/c5a39acf7af28ba82cc0097c84d1ebda89cce3b4/SuperBuild/External_teem.cmake#L13-16
>
> Hth
>
> Jc
>
>
>
> On Thu, Feb 13, 2014 at 12:51 PM, Rob McDonald
> <rob.a.mcdonald at gmail.com <mailto:rob.a.mcdonald at gmail.com>>
> wrote:
>
> When I search for a given library, specifying multiple possible
> names and multiple hints for paths...
>
>
>
> FIND_LIBRARY( FINDME_LIB
>
> NAMES name1 name2 name3
>
> HINTS path1 path2 path3
>
> DOC "Library to find")
>
>
>
> CMake seems to have a preference for name1, and it first searches
> all HINTS for name1. If it doesn't find name1, it moves to name2
> and then searches all HINTS for name2, etc.
>
>
>
> I would prefer to have a preference for path1, no matter the name.
> Try for all names in path1, then move to path2, etc.
>
>
>
> Is there a way to toggle this behavior?
>
>
>
> Rob
>
>
>
>
>
> Background... Basically, I am using ExternalProject_Add to build
> a library. However, to make it possible to use the system-library
> instead, this is optional. I use a FindThelib.cmake so the main
> project works seamlessly either way.
>
>
>
> I'm targeting the case where a version of this library is
> installed on the system, but I want to use my own copy.
>
>
>
> The name of the library depends on build options and platform, so
> controlling on the name is a little fragile. However, I have
> explicitly built it in a known directory, so having preference for
> the known directory is desirable.
>
>
>
> --
>
> Powered by www.kitware.com <http://www.kitware.com>
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community.
> For more information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html CMake
> Consulting: http://cmake.org/cmake/help/consulting.html CMake
> Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
>
>
>
>
> -- +1 919 869 8849 <tel:%2B1%20919%20869%208849>
>
>
>
>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.14 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQEcBAEBAgAGBQJS/eiRAAoJEEpMyb1AIWdYJjwH/0IQjZhRXHVu2Z9UsFgGpPp6
m9EG9dEfRFoasd9QrmWwpl+JXTPlqHwS9xJO4QZFjJV4k86VwW9SxCheNaoVX+ro
k4DBzdpsCniMxIwal03dICnPZjjZsNVGI2B5xayRW5spTn48kBWI0nA7OaDii/Ib
p4/RK4hFBKbt89NAl/8u2fO36KFXCkro826lvLpIlmZ52rev35S3hZ8OuwNC4JIH
PUKBxo7VM8Qg0MqSVsHL2rl3J9Uf88miTUKW0rO9fvHup969rqyqmjjpABRA4OK0
eQ0cVVoe2K//bLr4v+FiX/sb535qtfJDqlAevkvp24wOt5zM0erPyE162MbAcnE=
=CcZH
-----END PGP SIGNATURE-----
More information about the CMake
mailing list