[CMake] How to assign data from subexpressions of regular expressions to CMake variables?

David Cole david.cole at kitware.com
Thu Jan 20 08:01:17 EST 2011


On Thu, Jan 20, 2011 at 7:39 AM, Michael Wild <themiwi at gmail.com> wrote:

> On 01/20/2011 12:10 PM, SF Markus Elfring wrote:
> >> Thanks for your help to make CMake better,
> >
> > Is the command variant "string(REGEX REPLACE ...)" completely documented?
> >
> > Can multiple variables be specified that will receive the data from the
> > evaluation of subexpressions in the passed regular expression?
> >
> > Regards,
> > Markus
>
> AFAIK no, but you can "misuse" if(<string|varname> MATCHES <pattern>)
> for this. It stores the groups in CMAKE_MATCH_<n> where <n> is {0..9}.
> Match 0 is always the whole match of <pattern> and match 1 is the
> contains the first group.
>
> Michael
> _______________________________________________
> 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
>


I think it's the case that the CMAKE_MATCH_* variables are set after *any*
regex matching operation, be it from an "if(... MATCHES ...)" or a
"string(REGEX" or "string(MATCH" command. Let us know if you find that not
to be true.



More information about the CMake mailing list