[cmake-developers] Volunteering to maintain a new module: FindGSL.cmake
Thompson, KT
kgt at lanl.gov
Thu Dec 4 10:28:30 EST 2014
Brad,
Here is a repeat and reformatted version of the email I sent off list (sorry about that). The attached file also addresses comments from Stephen Kelly concerning IMPORTED_CONFIGURATIONS.
Brad King wrote:
> > The command "add_library(GSL::gsl UNKOWN IMPORTED)" generates
> > warnings on platforms that do not support shared libraries.
> That is a bug in the warning. Fixed:
> add_library: Fix target type check for non-shared-lib platforms
> http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bd360ee3
> The check can be dropped from the version of FindGSL that goes in
> CMake.
I rebased to the git HEAD to test your fix (bd360ee3 works for my systems)
and removed the unnecessary code that checked if the system supported
shared libraries.
> Please try installing sphinx and enabling the SPHINX_HTML build
> option of CMake. Then look at the Utilities/Sphinx/html
> documentation generated for this module. Update the reST
> syntax accordingly.
I corrected the documentation formatting after building it with
Sphinx. I will comment that I had a little trouble installing
Sphinx since we do not have root access to our Linux machines. I
can only install software that I can install at $HOME. (Can you
point me to any instructions for installing Sphynx w/o root
access?) However, I was able to get it working on a Windows
machine and was able to clean up the documentation a bit. I also
modified Help/manual/cmake-modules.7.rst and added
Help/module/FindGSL.rst as required.
> My comment was not about removing GSL_ROOT_DIR altogether, but
> about not documenting it as a guaranteed result variable that
> applications can use. Instead it should be treated as an
> input/hint variable that may not be set but will be used if it
> is set. It's just a matter of which section documents it.
Comments about GSL_ROOT_DIR were moved to the HINTS section only.
I also removed this variable from
find_package_handle_standard_args's REQUIRED_VARS section. (I
understand your comment now).
> You could use the REGEX option to file(STRINGS) to shorten the
> amount of data loaded.
I simplified the search for GSL_VERSION as you suggested. Thanks
for the pointer, this code was copied from some very old cmake
scripts w/o much thought -- but your way is clearly better.
> > REQUIRED_VARS
> > GSL_INCLUDE_DIRS
> > GSL_LIBRARIES
> The singular names (find_* command results) should be listed
> here because the error messages generated when they are not set
> are intended to ask the user to set the values in the cache.
> The plural names are not what the user would set.
I have a better understanding of the REQUIRED_VARS section of
find_package_handle_standard_args now and have made the updates
that you recommended.
A new versions of FindGSL is attached. The other modified files
are very simple and I will not bother you with those changes.
-kt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20141204/4c3b9eea/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: FindGSL.cmake
Type: application/octet-stream
Size: 9878 bytes
Desc: FindGSL.cmake
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20141204/4c3b9eea/attachment-0001.obj>
More information about the cmake-developers
mailing list