[CMake] autoheader

BRM bm_witness at yahoo.com
Tue Mar 31 09:04:43 EDT 2009


I think the better solution would be to have the various Find functions (package, library, program) define a variable for that package to an internal list - which is what I think Marcel might have been hinting at.
The user could add more variables to the same internal list.

So essentially:

# package defines its own automatically
find_package(some package)
    if (some_package_found)
        -> cmake_autoheader_add_variable(has_some_package)
...
# user can add it too
cmake_autoheader_add_variable(has_some_other_package)

# user controls what the output file is
#     User can generate a C #define method (default method if no language is specified)
cmake_autoheader(C, path/to/cmake/autoheader_output.h)
#    User can generate a C++ const methods
cmake_autoheader(CXX, path/to/cmake/autoheader_output.hpp)
...

This would allow CMake to be a true platform for autoheaders as people would not have to think up variables for every project.

So FindQt() would add HAS_QT and HAS_QT4 or HAS_QT3 or whatever version it is finding.
Perhaps the various variables that the find_package() declares should also be included in the list


Just 2 cents.

Ben


----- Original Message ----
From: Bill Hoffman <bill.hoffman at kitware.com>
To: Marcel Loose <loose at astron.nl>
Cc: cmake at cmake.org
Sent: Tuesday, March 31, 2009 7:44:23 AM
Subject: Re: [CMake] autoheader

Marcel Loose wrote:
> Hi Bill,
> 
> Wouldn't it be better if CMake kept track of these variables internally.
> I mean, usually the HAS_X variables are the result of calls to
> check_include_file() and check_function_exists(). The Autotools handle
> this under the hood.
> CMake might keep a list of these variables, possibly one per check_*()
> function. Or is there a reason to let the user handle this explicitly by
> specifying the list of HAS_X variables in the call to
> cmake_autoheader()?
> 

check_include_file does not even have to be used, there are lots of ways to come up with variables that might be useful in a configured header file. I don't really like magic behind the scene lists getting created. Someone could just use a macro for check_include_file that appends to a list if they wanted.

-Bill
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake



More information about the CMake mailing list