[cmake-developers] FindGTest.cmake and CMP0064

Brad King brad.king at kitware.com
Wed Nov 18 10:44:24 EST 2015


On 11/17/2015 11:37 AM, Rolf Eike Beer wrote:
> Am 17.11.2015 17:08, schrieb David Chen:
>> We’ve been getting a warning from FindGTest.cmake about CMP0064 when
>> building SimpleITK.  The warning occurs at lines 127, 129 and 131 when
>> the variable ${test_type} is equal to “TEST”.  With CMP0064 this TEST
>> could be interpreted as commands in the if() and elseif() statements
>> unless the policy is set to OLD.

With CMP0054 and CMP0064 both set to NEW then the original code
would work as expected.  However, CMake's modules must tolerate
many policy (non-)setting combinations.

> The correct fix would probably to just remove the dereference, i.e. 
> change
> 
>    if(${test_type} STREQUAL "TEST_P")
> 
> to
> 
>    if(test_type STREQUAL "TEST_P")

The code

  if(test_type STREQUAL "TEST")

could still trigger CMP0064 warnings.  We can use the style

  if("x${test_type}" STREQUAL "xTEST_P")

to avoid both CMP0054 and CMP0064.  Done here:

 FindGTest: Refactor test type checks to avoid cases triggering CMP0064
 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b5e7b22d

David, please verify that this approach still works for your case.

I've queued this for merge to 'release' for 3.4.1.

Thanks,
-Brad



More information about the cmake-developers mailing list