[CMake] How to regenerate source file during make?

Marcel Loose loose at astron.nl
Fri Jan 15 09:44:32 EST 2010


Hi Jack,

The difference with your and my case is that you have an input file
(the .xsd file) and output files (the .h and .cpp files). In my case I
generate the output file, e.g. myheader.h, from myheader.h.in, using
configure_file(). The problem is that I cannot get this to work during
'make', only during 'cmake'.

Best regards,
Marcel Loose.

On Fri, 2010-01-15 at 15:04 +0100, Smith Jack (Ext. - UGIS - UniCredit
Group) wrote:
> I do a similar thing with an XSD file from which I generate c++
wrapper classes for accessing the corresponding XML
> 
> Note the DEPENDS line !
> 
> MACRO(XSD FILE NAMESPACE)
>     ADD_CUSTOM_COMMAND(
>         OUTPUT  ${CMAKE_CURRENT_SOURCE_DIR}/xml/${FILE}.cpp
>         OUTPUT  ${CMAKE_CURRENT_SOURCE_DIR}/xml/${FILE}.h
>         DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/xml/${FILE}.xsd
>         COMMAND ${XAPI_CODESYNTH}/bin/xsd
>         ARGS cxx-tree --generate-serialization --hxx-suffix .h
--cxx-suffix .cpp --fwd-suffix -fwd.hxx --type-naming java
--function-naming java --namespace-map =${NAMESPACE}
--generate-polymorphic --output-dir ${CMAKE_CURRENT_SOURCE_DIR}/xml
${CMAKE_CURRENT_SOURCE_DIR}/xml/${FILE}.xsd
>         COMMENT "generating Codesynthesis Wrappers")
> ENDMACRO(XSD)
> 
> 
> 
> > -----Original Message-----
> > From: cmake-bounces at cmake.org
> > [mailto:cmake-bounces at cmake.org] On Behalf Of Marcel Loose
> > Sent: Friday, January 15, 2010 2:55 PM
> > To: cmake at cmake.org
> > Subject: [CMake] How to regenerate source file during make?
> >
> > Hi all,
> >
> > I've been struggling with this for hours now and I can't seem
> > to get a grip on it.
> >
> > I have a header file that must be (re)generated during 'make'
> > when some external data have changed. I can successfully
> > generate this file during 'cmake' using configure_file(), but
> > I haven't been able to figure out how I can trigger the
> > configure_file() during make.
> >
> > Should I define a target for this header file? Or can I
> > specify some kind of file dependency, such that when the
> > header file is missing our out-of-date, it will be (re)generated?
> >
> > I guess it must be some clever combination of
> > add_custom_command() and add_custom_target().
> >
> > Best regards,
> > Marcel Loose.
> >
> >
> > _______________________________________________
> > 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
> >
> _______________________________________________
> 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