Hi Eike,

Yes - my mistake - thanks!  I've attached an updated patch as per your suggestion.

Cheers,
Fraser.


On 19/11/2014 06:29, Rolf Eike Beer wrote:
Fraser Hutchison wrote:
Hi there,

CMake 3.1 (both release candidates) now generate a CMP0054 warning when
configuring the following CMakeLists.txt in a clean build folder with MSVC
as the generator:

cmake_minimum_required(VERSION 2.8)
enable_language(ASM_MASM)

The warning is:

CMake Warning (dev) at E:/Program Files (x86)/CMake
3/share/cmake-3.1/Modules/CMakeFindBinUtils.cmake:33 (if): Policy CMP0054
is not set: Only interpret if() arguments as variables or keywords when
unquoted.  Run "cmake --help-policy CMP0054" for policy details.  Use the
cmake_policy command to set the policy and suppress this warning.

  Quoted variables like "MSVC" will no longer be dereferenced when the
policy is set to NEW.  Since the policy is not set the OLD behavior will be
used.

I can see the file in question has been updated (presumably since RC2) to
not quote the left-hand variables:
http://www.cmake.org/gitweb?p=cmake.git;a=blob;f=Modules/CMakeFindBinUtils.
cmake;h=50cb9721272f98bc2ffe73e95ae57c3156251188;hb=HEAD but even with these
updates, the quoted "MSVC" args generate the warning.

I've attached a trivial patch removing all remaining instances of quoted
"MSVC"s.
Nope, this is wrong. What you now do is to compare it to the variable MSVC, 
which is true or false (or undefined). This wants to be compared to the string 
MSVC, so this probably needs to be changed to

if ("x${foo}" STREQUAL "xMSVC")

Greetings,

Eike



>From d51f9d44b7229aefd1bcdc2dd5dcb6f63f9fc8ae Mon Sep 17 00:00:00 2001
From: Fraser Hutchison <fraser.hutchi...@maidsafe.net>
Date: Wed, 19 Nov 2014 09:21:27 +0000
Subject: [PATCH] Adjusted quoted instances of MSVC to avoid generating
 warnings.

---
 Modules/CMakeFindBinUtils.cmake       | 10 +++++-----
 Modules/Compiler/AppleClang-CXX.cmake |  2 +-
 Modules/Compiler/Clang-CXX.cmake      |  2 +-
 Modules/Compiler/Clang.cmake          |  4 ++--
 Modules/Platform/Windows-Clang.cmake  |  4 ++--
 5 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/Modules/CMakeFindBinUtils.cmake b/Modules/CMakeFindBinUtils.cmake
index 50cb972..376a6dc 100644
--- a/Modules/CMakeFindBinUtils.cmake
+++ b/Modules/CMakeFindBinUtils.cmake
@@ -30,11 +30,11 @@
 #  License text for the above reference.)
 
 # if it's the MS C/CXX compiler, search for link
-if(CMAKE_C_SIMULATE_ID STREQUAL "MSVC"
-   OR CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC"
-   OR CMAKE_Fortran_SIMULATE_ID STREQUAL "MSVC"
-   OR CMAKE_C_COMPILER_ID STREQUAL "MSVC"
-   OR CMAKE_CXX_COMPILER_ID STREQUAL "MSVC"
+if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC"
+   OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC"
+   OR "x${CMAKE_Fortran_SIMULATE_ID}" STREQUAL "xMSVC"
+   OR "x${CMAKE_C_COMPILER_ID}" STREQUAL "xMSVC"
+   OR "x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC"
    OR (CMAKE_GENERATOR MATCHES "Visual Studio"
        AND NOT CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android"))
 
diff --git a/Modules/Compiler/AppleClang-CXX.cmake 
b/Modules/Compiler/AppleClang-CXX.cmake
index 0372e18..c1acae6 100644
--- a/Modules/Compiler/AppleClang-CXX.cmake
+++ b/Modules/Compiler/AppleClang-CXX.cmake
@@ -1,6 +1,6 @@
 include(Compiler/Clang)
 __compiler_clang(CXX)
 
-if(NOT CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
+if(NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
   set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN 
"-fvisibility-inlines-hidden")
 endif()
diff --git a/Modules/Compiler/Clang-CXX.cmake b/Modules/Compiler/Clang-CXX.cmake
index 780a072..6fe0b56 100644
--- a/Modules/Compiler/Clang-CXX.cmake
+++ b/Modules/Compiler/Clang-CXX.cmake
@@ -1,7 +1,7 @@
 include(Compiler/Clang)
 __compiler_clang(CXX)
 
-if(NOT CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
+if(NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
   set(CMAKE_CXX_COMPILE_OPTIONS_VISIBILITY_INLINES_HIDDEN 
"-fvisibility-inlines-hidden")
 endif()
 
diff --git a/Modules/Compiler/Clang.cmake b/Modules/Compiler/Clang.cmake
index eeba119..701089c 100644
--- a/Modules/Compiler/Clang.cmake
+++ b/Modules/Compiler/Clang.cmake
@@ -18,8 +18,8 @@ if(__COMPILER_CLANG)
 endif()
 set(__COMPILER_CLANG 1)
 
-if(CMAKE_C_SIMULATE_ID STREQUAL "MSVC"
-    OR CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
+if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC"
+    OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
   macro(__compiler_clang lang)
   endmacro()
 else()
diff --git a/Modules/Platform/Windows-Clang.cmake 
b/Modules/Platform/Windows-Clang.cmake
index 4c936fe..da19a3d 100644
--- a/Modules/Platform/Windows-Clang.cmake
+++ b/Modules/Platform/Windows-Clang.cmake
@@ -18,8 +18,8 @@ if(__WINDOWS_CLANG)
 endif()
 set(__WINDOWS_CLANG 1)
 
-if(CMAKE_C_SIMULATE_ID STREQUAL "MSVC"
-    OR CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
+if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC"
+    OR "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
   include(Platform/Windows-MSVC)
   macro(__windows_compiler_clang lang)
     __windows_compiler_msvc(${lang})
-- 
1.9.4.msysgit.1

-- 

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