On 12/04/2013 08:20 AM, Brad King wrote: > On 12/04/2013 04:57 AM, Daniele E. Domenichelli wrote: >> +1, since this is a very useful feature. > > Actually after thinking about this over night I realized that converting > to a C++ implementation is the best way to fix the empty argument handling > too. The use of "CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.0.0" and > the directory-scoped CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY setting for > compatibility are an approximation of a CMake Policy. We should just use > a policy for it instead so that proper warnings can be given (when empty > arguments are passed) about the change in behavior. While it is possible > to implement a policy in CMake-language code it is much easier in C++ code. > Converting to C++ will have other benefits already discussed.
Without a policy project authors will not be warned about the change in behavior that would be caused by bumping cmake_minimum_required(VERSION). With a policy we would be able to fix the NEW behavior test cases to just set the policy instead of hacking the CMAKE_MINIMUM_REQUIRED_VERSION value. Currently I do not plan to merge the CMakeParseArguments_EmptyArgs topic or any topics that depend on it (like ExternalProject-independent-step-targets) to master. I'm convinced that the cmake_parse_arguments command should be converted to C++, taught to handle empty arguments, and handle compatibility with a policy. Daniele, will you be able to work on this? Thanks, -Brad -- 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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers