[sldev] Semicolons and CMake

Brad King brad.king at kitware.com
Fri Apr 24 08:55:22 PDT 2009


Boroondas Gupte wrote:
> Brad King schrieb:
>> Alissa Sabre wrote:
>>  > Following is a list of my own wishes on CMake improvement that I
>>  > believe facilitte SL development:
>>   
>>> Proper handling of platform-specific file system features.  E.g., on
>>> MacOS, a mount point for Windows (SMB/CIFS) file server has a
>>> semicolon (;) character embedded in it, but the current CMake can't
>>> handle such full-path name.
>>>     
>> The CMake language use ';' as a list separator.  This cannot be
>> addressed without major fundamental changes that are incompatible.
> Can't this be solved by quoting or escaping as explained at:
> http://www.cmake.org/Wiki/CMake/Language_Syntax#CMake_splits_arguments_unless_you_use_quotation_marks_or_escapes.
> ?

Unfortunately that only works for one layer.  Whenever CMake computes
a list to store in a string it just slaps together the values with ';'
and does not re-escape any semicolons in the values.  This mistake was
made very early and now there is a large base of code that depends on it.
At the time it was made we didn't care about ';' in path names because
Windows uses it as a separator too.

-Brad



More information about the SLDev mailing list