Brad King wrote:

> On 02/27/2013 01:24 PM, Brad King wrote:
>> The argument splitting rule should remain simple: a quoted
>> argument is one value and an unquoted argument expands on ";".

I didn't realize it before, but this seems to already be the case, right (in 
a world without genexes)?

 set(COMMARGS one two\\;three "four\\;five")

 add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/output.cpp
                    COMMAND echo
                    ARGS ${COMMARGS} six seven\\;eight "nine\\;ten"
                    VERBATIM
 )

gives 

 echo one two three "four;five" six "seven;eight" "nine\\;ten"

>> What your topic needs to do is delay the expansion for unquoted
>> generator expressions from configure to generate time.
> 
> While I think this should be the plan moving forward, I do
> not think we should try to address it before 2.8.11.  It will
> be a change in argument parsing handling.  Without preservation
> of ';' in unquoted generator expressions they will not be
> recognized as generator expressions so the behavior will be
> no different from the same arguments in 2.8.10.  Therefore
> we can introduce the argument parsing change later to introduce
> a new feature of allowing unquoted generator expressions that
> contain lists to be expanded at generate time.

Yes, fair enough. I wonder if there are bugs in the use of eg $<1:foo,bar> 
with COMMANDs, but if there are, they're already in 2.8.10.2 anyway.

> Your "Consider a genex as a single command arg" commit changes
> argument splitting to not use ExpandListArgument but
> cmGeneratorExpression::Split does not behave the same for all
> values.  The original ExpandListArgument also preserves ";"
> inside [] blocks (added so that the registry entry syntax would
> continue to work for unquoted arguments; too late to change now).

I don't think it handles foo\\;bar either. That's probably something which 
should be fixed. There shouldn't be any situation where ExpandListArgument 
can be used but genex::Split can't be.

Thanks,

Steve.


--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Reply via email to