BRM wrote:
How about:


# Each variable can have a registered filter name - packages/programs/libraries 
would use their name
cmake_autoheader_add_variable(has_some_other_package, filter_name)
# 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 [filter_name_list])
#    User can generate a C++ const methods
cmake_autoheader(CXX, path/to/cmake/autoheader_output.hpp [filter_name_list])

- if filter name list is not provided, all entries are entered into the header 
file
- if filter is list is provided:
     - if name listed and is preceeded by an exclamation (!) then that name is 
not entered
     - if name is listed then it is entered
     - if name is not listed, then it is not entered

Likely it would be good to have a parameter that would specify the default 
behavior of the filter list - enter or not enter - for names not listed.
I think a default of 'not enter' would be good if the list is being provided, 
and this could be overridden and then the list becomes a 'not enter' list.

So:

# package defines its own automatically
find_package(some package)
   if (some_package_found)
       -> cmake_autoheader_add_variable(has_some_package, some_package)
...
# user can add it too
cmake_autoheader_add_variable(has_some_other_package, 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 some_other_package)
#    User can generate a C++ const methods
cmake_autoheader(CXX, path/to/cmake/autoheader_output.hpp some_package)


just another 2 cents...

I am not sure where things would be stored in this API?  Seems to global

Maybe the autoheader should be some sort of target...

cmake_add_autoheader(C /path/to/cmake/autoheader_output.h)
cmake_add_autoheader_variable(/path/to/cmake/autoheader_output.h VAR)


-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

Reply via email to