On 09/04/2014 11:58 AM, Nils Gladitz wrote:
> Thanks, that actually sounds doable.
> 
> I'll give it a try.

Good work on the topic so far.  I have a few more thoughts:

- The dashboard submissions that bootstrap got many CMP0054
  warnings.  Most of them are the same warning repeated due
  to presence in a macro or loop.  Please update the warning
  to not warn on the same line more than once.  A set<> of
  already-emitted warning lines can be kept somewhere.

- I think we can generalize the policy a bit further.  Consider:

   set(x EXISTS)
   if("${x}" STREQUAL "EXISTS")

  Currently that will get an error because the evaluated
  variable spells "EXISTS" which is treated as a keyword.
  The policy could also make if() honor such keywords only
  when they are unquoted.

- The new cmExpandedCommandArgument class interface could
  be simplified by making it derive from std::string and
  then just add the boolean as an extra member.

- In the documentation we need to be precise about when
  the expansion is still allowed.  The cmake-language(7)
  manual defines unquoted, "quoted", and [[bracket]]
  arguments as distinct argument types.  We should use the
  same terminology here.  You can even link back to the
  manual with cross-reference syntax:

   :ref:`Bracket Argument`
   :ref:`Quoted Argument`
   :ref:`Unquoted Argument`

Also please extend the test cases for this policy to cover:

- All if() command conditions that do variable-or-string.
- if() inside a macro() and a function(), covering each
  combination of policy settings when the macro/function
  is recorded and when it is invoked.  The policy value
  should be that when the macro/function was recorded.

Thanks,
-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:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to