On 2006-10-08 12:13+0200 Werner Smekal wrote:

> Hi,
>
> I wanted to add qhull library support for windows. To compile the qhull 
> library in windows was easy, no problem here. Problem is, that cmake doesn't 
> find the qhull_a.h header file. I set the CMAKE_INCLUDE_PATH correctly, but 
> the checkincludefiles module doesn't use this variable - it only looks in 
> standard locations (at least I think so).
>
> Anyway, I propose that we do the same as for the cd library (FindCD.cmake), 
> this should be straight forward. But I'm not sure what to do with the 
> QHULL_LIBRARY_PATH and QHULL_INCLUDE_PATH than, since in the moment 
> csiro.cmake the library is found but the library never added (at least I find 
> no code for that).

On your Linux box, find and xargs really are quite helpful at answering
such questions:

[EMAIL PROTECTED]> find -name CMakeLists.txt|xargs grep QHULL_LIB
./lib/nn/CMakeLists.txt:target_link_libraries(csironn ${QHULL_LIB})

>
> Before I invest more time here I wanted to know how I should proceed here?


I think your proposed change is a good idea since it will help both Unix and
windows users who have qhull installed in a non-standard location.

Here is how I suggest you organize it:

* I agree you should have a separate FindQHULL.cmake module that is in the
   standard "find_package" form of modules.  I took some pains to make sure
   FindCD.cmake is in standard form so it should be a good template to
   follow, but if you want to double-check the documentation of the
   find_package form of modules it is in
   $YOUR_INSTALL_PREFIX/share/CMake/Modules/readme.txt, where
   YOUR_INSTALL_PREFIX is the install prefix for your cmake installation. In
   particular FindQHULL.cmake should define the following:

#  QHULL_FOUND, if false, do not try to use QHULL.
#  QHULL_INCLUDE_DIRS, where to find qhull/qhull_a.h.
#  QHULL_LIBRARIES, the libraries to link against to use libqhull.
#  QHULL_LIBRARY_DIRS, the directory where libqhull is found.

N.B. use qhull/qhull_a.h consistently, not qhull_a.h.

* Reorganize csiro.cmake.  Invoke find_package(QHULL) there.  Use
   QHULL_FOUND to control Boolean logic there.  Change QHULL_LIB ==>
   QHULL_LIBRARIES (see above for what variables are defined in
   FindQHULL.cmake) there.  Continue to use
   check_function_exists(qh_new_qhull QH_NEW_VARIABLE)
   and change from

   check_include_file("qhull/qhull_a.h" QHULL_INCLUDE)

   to the following:

   set(CMAKE_REQUIRED_INCLUDES ${QHULL_INCLUDE_DIRS})
   check_include_file("qhull/qhull_a.h" QHULL_A_VARIABLE)
   set(CMAKE_REQUIRED_INCLUDES)

* Change QHULL_LIB ==> QHULL_LIBRARIES in lib/nn/CMakeLists.txt (see above
   command where are searched for all instances of QHULL_LIB in CMakeLists.txt
   files.

* Note above we replaced QHULL_INCLUDE by QHULL_A_VARIABLE in csiro.cmake.
   QHULL_INCLUDE was never used in any of the CMakeLists.txt files, but we
   have renamed it to make that more clear.  The actual variable meant to
   transmit the header file location to the CMakeLists.txt files is
   QHULL_INCLUDE_DIRS (see above).  Thus you will have to change
   lib/nn/CMakeLists.txt to compile with the -I${QHULL_INCLUDE_DIRS} option
   for the case of non-standard QHULL installation location.

Werner, the new capability of using a qhull that is installed in a
non-standard location is well worth having for our CBS, and I appreciate you
implementing and testing it.  I hope I have gotten all the above details
right, but in any case you should check what I have said by looking at
http://www.cmake.org/HTML/Documentation.html and also by checking other
"find_package" modules in $YOUR_INSTALL_PREFIX/share/CMake/Modules/

Good luck with the implementation.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the Yorick front-end to PLplot (yplot.sf.net); the
Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to