[cmake-developers] string SUBSTRING TRUNCATE mode

Domen Vrankar domen.vrankar at gmail.com
Fri Nov 14 02:26:15 EST 2014


>> > This should be a good addition, no?
>> >
>> > diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake
>> > index 56d9b66..66717ef 100644
>> > --- a/Modules/CPackRPM.cmake
>> > +++ b/Modules/CPackRPM.cmake
>> > @@ -683,9 +683,7 @@ foreach(_RPM_SPEC_HEADER URL REQUIRES SUGGESTS
>> > PROVIDES OBSOLETES PREFIX CONFLIC>
>> >      # Transform NAME --> Name e.g. PROVIDES --> Provides
>> >      # The Upper-case first letter and lowercase tail is the
>> >      # appropriate value required in the final RPM spec file.
>> >
>> > -    string(LENGTH ${_RPM_SPEC_HEADER} _PACKAGE_HEADER_STRLENGTH)
>> > -    math(EXPR _PACKAGE_HEADER_STRLENGTH "${_PACKAGE_HEADER_STRLENGTH} -
>> > 1") -    string(SUBSTRING ${_RPM_SPEC_HEADER} 1
>> > ${_PACKAGE_HEADER_STRLENGTH} _PACKAGE_HEADER_TAIL) +    string(SUBSTRING
>> > ${_RPM_SPEC_HEADER} 1 -1 _PACKAGE_HEADER_TAIL)>
>> >      string(TOLOWER "${_PACKAGE_HEADER_TAIL}" _PACKAGE_HEADER_TAIL)
>> >      string(SUBSTRING ${_RPM_SPEC_HEADER} 0 1 _PACKAGE_HEADER_NAME)
>> >      set(_PACKAGE_HEADER_NAME
>> >      "${_PACKAGE_HEADER_NAME}${_PACKAGE_HEADER_TAIL}")

You're right. Can you provide a separate patch as it is not related to
the new feature?

> This one is actually independent, as the -1 syntax was added by me years back.
> And AFAICT this is the only call site inside CMake itself that benefits from
> any of the advanced modes of SUBSTRING, there are very few call sites anyway.

I'm currently writing a patch for CPackRPM.cmake that will use
SUBSTRING a bit more and the new patch already uses -1 syntax and also
requires the new patch with which I'll be able to remove range checks
with if statements on some locations.

Domen


More information about the cmake-developers mailing list