I am not convince that the proposed syntax is a good idea because it introduce
a new syntax just to solve one action on a list.
What about introducing a syntax similar to the version comparison:
• LENGTH_EQUAL
• LENGTH_GREATER
• LENGTH_LOWER
• etc…
To use it:
if (my_list LENGTH_EQUAL 1)
# do my stuff
endif()
Or introduce a more general syntax for list management as part of an expression:
$LIST{<op>,<list>[,<arg>,…]}
Where <op>, <list> and <arg> use same semantic as list command.
To use it:
of ($LIST{LENGTH,my_list} EQUAL 1)
# do my stuff
endif()
The advantage of this syntax is extensibility: More <op> can be added and more
commands can be introduced (for example $STRING{…}).
Le 22 janv. 2019 à 16:37 +0100, Brad King via cmake-developers
<[email protected]>, a écrit :
> On 1/22/19 10:28 AM, [email protected] wrote:
> > With `$CACHE{VAR}` and `$ENV{VAR}` we already have the syntax for calling a
> > „function“.
>
> No, there is no obvious way to pass arguments, handle nested quoting, etc.
> The language was not designed for that. That is a big can of worms I'd rather
> not open just to solve the list length problem which is already only 2 lines.
>
> > Once we have this, it would be possible to define $LIST_LENGTH in the CMake
> > language
>
> Not as efficiently as a dedicated syntax for the only language construct
> we have that resembles a data structure.
>
> -Brad
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> https://cmake.org/mailman/listinfo/cmake-developers
--
Powered by www.kitware.com
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
information on each offering, please visit:
CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake-developers