[CMake] Does the echo command use the system shell?

Andreas Pakulat apaku at gmx.de
Thu Jul 29 02:51:17 EDT 2010


On 29.07.10 08:37:36, Michael Wild wrote:
> 
> On 29. Jul, 2010, at 6:37 , Óscar Fuentes wrote:
> 
> > Michael Wild <themiwi at gmail.com> writes:
> > 
> > [snip]
> > 
> >> Perhaps you need to tell us what it is that you are trying to achieve,
> >> because I suspect that you are over-thinking things and that there is
> >> a much simpler solution. E.g. what should buildobj.h contain
> >> (semantically, not the exact strings), and why is it only known at
> >> build time?
> > 
> > I "solved" this specific instance with configure_file. It is not as
> > convenient as the original add_custom_command method but it works.
> > 
> > What really concerns me is the general problem: a CMake command that
> > acts on a platform-dependent way when the existence of those "-E"
> > commands are motivated, precisely, for the cross-platform nature of
> > CMake. Maybe I should file a bug report and see how it fares.
> 
> The problem is, CMake has to go through the system shell. Of course, CMake could write the command to a file and then invoke a custom interpreter from the system shell, but that would probably be very inefficient and would require CMake to implement a full shell language. And then CMake would be required to decide which semantics to implement (probably POSIX) and then Windows-only people would be angry...

No it doesn't. CMake only needs to implement the commands it wants to
support. Thats actually what happens right now already (see cmake.cxx),
the commands for -E are all implemented in C++ code (including echo,
copy and others)

Andreas

-- 
Good day to deal with people in high places; particularly lonely stewardesses.


More information about the CMake mailing list