[cmake-developers] ExternalProject EXTRACT_COMMAND

Brad King brad.king at kitware.com
Wed Nov 27 10:51:09 EST 2013


On 11/27/2013 4:47 AM, Pau Garcia i Quiles wrote:
>  If I understand correctly what you mean, that would require either:
[snip]
> Or maybe I'm missing something?

Actually your new patch does exactly what I meant, just with different
variable names.  Now that "${args}" holds the entire command it should
be called "${extract_command}" instead.

> However, the placeholder could prove useful if the filename needs to go
> in the middle of the EXTRACT_COMMAND. Do you have any suggestion of
> should I make something up, like, say, >#< ?

There are already placeholders like "<SOURCE_DIR>" so use something
like that.  Perhaps "<SOURCE_ARCHIVE>"?

> I am attaching a new patch, which fixes the path-with-spaces issue. No
> placeholder has been implemented yet.

Thanks.  This hunk:

+set(extract_command ${args})

should quote the value.  With the above-suggested variable rename
it would be

+set(extract_command "${extract_command}")

to exactly copy the command value into the script.

This separator:

+#   #--Extract step --------------

should not be there because EXTRACT_COMMAND is actually an option
of the download step.  There is no separate timestamp-managed
extraction step.

-Brad



More information about the cmake-developers mailing list