Jeremy Cowgar wrote:
Bill Hoffman wrote:
One more option would be to run the parser every time cmake is run.
If you had an option to the parser that just spit out the list of
files you needed to compile, and it ran relatively fast, you could do
this:
# only run if parser.e is newer than source.cmake
if(parser.e IS_NEWER_THAN source.cmake)
execute_process(COMMAND myparser parser.e --sources sources.cmake)
endif()
I like this solution much better, but I have simplified things for my
example. I have been stating parser.e is the only input file. While that
is true, parser.e is known to depend on a set of other files. So, in the
above example I would need to check IS_NEWER_THAN a list of files I have:
SET( EU_CORE_FILES common.e emit.e error.e fwdref.e global.e inline.e
keylist.e main.e mode.e opnames.e parser.e
pathopen.e reswords.e scanner.e scinot.e shift.e symtab.e )
Is there a simple way of doing that?
Jeremy
# Something like the following should get you started.
set(UPDATE_PARSER_STUFF 0)
foreach(file ${EU_CORE_FILES} )
if(${file} IS_NEWER_THAN source.cmake)
set(UPDATE_PARSER_STUFF 1)
endif()
endforeach()
if (UPDATE_PARSER_STUFF)
# fix the below command to take the correct arguments
execute_process(COMMAND myparser parser.e --sources sources.cmake)
endif()
_______________________________________________
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