[Cmake] CMake suggestion - environment variables to help FindXXX.cmake fi
les
Wheeler, Frederick W (Research)
wheeler at crd . ge . com
Fri, 24 Oct 2003 16:33:40 -0400
I have a suggestion for CMake. In some situations I run CMake with option
lists like this.
-DBUILD_VGUI:BOOL=ON \
-DOPENGL_INCLUDE_DIR:PATH=/home/wheeler/usr/local/include \
-DOPENGL_gl_LIBRARY:FILEPATH=/home/wheeler/usr/local/sparc-sun-solaris2.7/li
b \
-DOPENGL_glu_LIBRARY:FILEPATH=/home/wheeler/usr/local/sparc-sun-solaris2.7/l
ib \
-DGLUT_INCLUDE_DIR:PATH=/home/wheeler/usr/local/include \
-DGLUT_glut_LIBRARY:FILEPATH=/home/wheeler/usr/local/sparc-sun-solaris2.7/li
b \
-DGTK_glib_INCLUDE_PATH:PATH=/home/wheeler/usr/local/include \
-DGTK_glib_LIBRARY:FILEPATH=/home/wheeler/usr/local/sparc-sun-solaris2.7/lib
\
-DGTK_glibconfig_INCLUDE_PATH:PATH=/home/wheeler/usr/local/sparc-sun-solaris
2.7/lib/glib/include \
-DGTK_gmodule_LIBRARY:FILEPATH=/home/wheeler/usr/local/sparc-sun-solaris2.7/
lib \
-DGTK_gtk_INCLUDE_PATH:PATH=/home/wheeler/usr/local/include \
-DGTK_gtk_LIBRARY:FILEPATH=/home/wheeler/usr/local/sparc-sun-solaris2.7/lib
\
-DGTK_gdk_LIBRARY:FILEPATH=/home/wheeler/usr/local/sparc-sun-solaris2.7/lib
\
-DGTK_gtkgl_INCLUDE_PATH:PATH=/home/wheeler/usr/local/include \
-DGTK_gtkgl_LIBRARY:FILEPATH=/home/wheeler/usr/local/sparc-sun-solaris2.7/li
b \
This is ugly and if OPENGL_INCLUDE_PATH changes to OPENGL_INCLUDE_DIR I have
to track that down.
It would be nice if CMake recognized special new environment variables like:
CMAKE_INCLUDE_PATH
CMAKE_LIBRARY_PATH
Each CMake Modules FindXXX.cmake file would look to this env. var also when
trying to track down packages. There could also be package specific
specializations like,
CMAKE_GTK_INCLUDE_PATH
CMAKE_GTK_LIBRARY_PATH
CMAKE_GLUT_INCLUDE_PATH
CMAKE_GLUT_LIBRARY_PATH
There would be a pair of these for every FindXXX.cmake file.
I think this would be very easy to do since CMake already knows how to get
at environment variables. Feature creep might be a danger. Not sure is
Cmake's environment variable support would currently handle this (the
colons),
CMAKE_INCLUDE_PATH=/foo:/bar
CMAKE_LIBRARY_PATH=/foo:/bar
Maybe the FindXXX.cmake files should also look for cache variables with
these exact same names, so one could do this. Actually, this might be
better then using environment variables?
cmake -DCMAKE_INCLUDE_PATH=/foo:/bar -DCMAKE_LIBRARY_PATH=/foo:/bar
Regards,
Fred Wheeler