[cmake-developers] FindThreads module documentation needs some work

Alan W. Irwin Alan.W.Irwin1234 at gmail.com
Mon Oct 7 22:10:00 EDT 2019


In my opinion [the latest documentation of the FindThreads
module](https://cmake.org/cmake/help/latest/module/FindThreads.html)
needs some work.  Specifically please deal with the following documentation issues.

* Threads_FOUND needs documentation.  And that needs to be done at the
   top of the documentation as typically happens with other modules
   where a <MODULE_NAME>_FOUND variable is being set on a successful
   find.

* CMAKE_HAVE_THREADS_LIBRARY needs documentation.  I suspect the value
   of this variable (set in the module but otherwise not used there) has
   been historically useful for those module users who have figured out
   its purpose, but it would be good to have that purpose documented.

* The CMAKE_THREAD_LIBS_INIT variable and corresponding
   Threads::Threads INTERFACE_LINK_LIBRARIES target property is the
   empty string for the case when the (Posix) threads functions are
   provided by the C library.  According to a second-hand report I
   received this case happens on Mac OS X (at least for MacPorts).
   Therefore, please document this expected result for that important
   use case.

* Finally, for that same important use case
   THREADS_PREFER_PTHREAD_FLAG is completely ignored, and that should
   be documented as well.

Because of these documentation issues, learning to use this module
properly on both Linux and Mac OS X for PLplot and another project I
have been working on has been much more work than I expected (i.e.,
instead of relying on documentation I had to analyze the CMake code in
this module to figure out what was going on).

I would be willing to repeat all the above in a bug report, but
instead of doing that I hope someone here is willing to step forward
with fixups for the above simple documentation issues in a timely
manner so there is no bug triage burden for these fixups.

Alan
__________________________
Alan W. Irwin

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.org); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________


More information about the cmake-developers mailing list