[cmake-developers] CMakeParseArguments: Do not skip empty arguments

Brad King brad.king at kitware.com
Tue Dec 3 11:59:14 EST 2013


On 11/27/2013 10:40 AM, Brad King wrote:
> Go ahead and merge it to 'next' for testing.  I will review it
> there

Looking at the topic as of commit 10fd6fba, here are some comments.

Why does CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY need to be an
inherited directory property instead of a variable?  Both have
essentially the same scope and variables are much more common.
I'd like to avoid new uses of define_property if possible.  It
is a legacy from the old builtin documentation system.

I see this in the tests:

 +# run_cmake(VERSION-KEEP) # Enable when 3.0.0 is released

We need to be able to test this even prior to the 3.0 release.
No one is going to remember to enable that as part of the release
process, and what if it is broken by then?  You might be able to
hack the test with

 set(CMAKE_MINIMUM_REQUIRED_VERSION 3.0.0)

after the real cmake_minimum_required call.

Stepping back for a moment: This macro is now a huge amount of
CMake code to do keyword argument processing for each invocation
of the calling macro or function.  Accumulation of such uses adds
overhead to CMake language processing.  It was previously proposed
in this thread to convert the implementation of the command to be
in C++.  IMO this is still worth investigating, if only as a follow
up to this topic.

Thanks,
-Brad



More information about the cmake-developers mailing list