Enable RunCMake.CMP0037 test everywhere

Split the test cases covering spaces and colons into separate units.
Run the space cases everywhere.  Disable the colon cases where they
are known to fail.  This approach increases platform coverage for the
test and makes the known-failure logic as local as possible.

No Makefile generator on Windows can generate targets with ':'
in their name because the CMakeFiles/<target>.dir directory cannot
be created.  Skip this part of the test on all Windows Make tools.
This commit is contained in:
Brad King 2013-11-08 11:44:55 -05:00
parent 596b2a8c08
commit 8c6c1f16c9
19 changed files with 99 additions and 92 deletions

View File

@ -0,0 +1,19 @@
CMake Error at CMP0037-NEW-colon.cmake:4 \(add_library\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "lib:colon" is not valid for certain CMake features, such
as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
+
CMake Error at CMP0037-NEW-colon.cmake:5 \(add_executable\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "exe:colon" is not valid for certain CMake features, such
as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)

View File

@ -0,0 +1,5 @@
cmake_policy(SET CMP0037 NEW)
add_library("lib:colon" empty.cpp)
add_executable("exe:colon" empty.cpp)

View File

@ -0,0 +1 @@
1

View File

@ -0,0 +1,19 @@
CMake Error at CMP0037-NEW-space.cmake:4 \(add_library\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "lib with spaces" is not valid for certain CMake features,
such as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
+
CMake Error at CMP0037-NEW-space.cmake:5 \(add_executable\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "exe with spaces" is not valid for certain CMake features,
such as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)

View File

@ -3,5 +3,3 @@ cmake_policy(SET CMP0037 NEW)
add_library("lib with spaces" empty.cpp)
add_executable("exe with spaces" empty.cpp)
add_library("lib:colon" empty.cpp)
add_executable("exe:colon" empty.cpp)

View File

@ -1,39 +0,0 @@
CMake Error at CMP0037-NEW.cmake:4 \(add_library\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "lib with spaces" is not valid for certain CMake features,
such as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
+
CMake Error at CMP0037-NEW.cmake:5 \(add_executable\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "exe with spaces" is not valid for certain CMake features,
such as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
+
CMake Error at CMP0037-NEW.cmake:6 \(add_library\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "lib:colon" is not valid for certain CMake features, such
as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
+
CMake Error at CMP0037-NEW.cmake:7 \(add_executable\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "exe:colon" is not valid for certain CMake features, such
as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)

View File

@ -0,0 +1,21 @@
CMake Warning \(dev\) at CMP0037-WARN-colon.cmake:2 \(add_library\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "lib:colon" is not valid for certain CMake features, such
as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.
+
CMake Warning \(dev\) at CMP0037-WARN-colon.cmake:3 \(add_executable\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "exe:colon" is not valid for certain CMake features, such
as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -0,0 +1,3 @@
add_library("lib:colon" empty.cpp)
add_executable("exe:colon" empty.cpp)

View File

@ -0,0 +1 @@
0

View File

@ -0,0 +1,21 @@
CMake Warning \(dev\) at CMP0037-WARN-space.cmake:2 \(add_library\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "lib with spaces" is not valid for certain CMake features,
such as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.
+
CMake Warning \(dev\) at CMP0037-WARN-space.cmake:3 \(add_executable\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "exe with spaces" is not valid for certain CMake features,
such as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,5 +1,3 @@
add_library("lib with spaces" empty.cpp)
add_executable("exe with spaces" empty.cpp)
add_library("lib:colon" empty.cpp)
add_executable("exe:colon" empty.cpp)

View File

@ -1,43 +0,0 @@
CMake Warning \(dev\) at CMP0037-WARN.cmake:2 \(add_library\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "lib with spaces" is not valid for certain CMake features,
such as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.
+
CMake Warning \(dev\) at CMP0037-WARN.cmake:3 \(add_executable\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "exe with spaces" is not valid for certain CMake features,
such as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.
+
CMake Warning \(dev\) at CMP0037-WARN.cmake:4 \(add_library\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "lib:colon" is not valid for certain CMake features, such
as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.
+
CMake Warning \(dev\) at CMP0037-WARN.cmake:5 \(add_executable\):
Policy CMP0037 is not set: Target names should match a validity pattern.
Run "cmake --help-policy CMP0037" for policy details. Use the cmake_policy
command to set the policy and suppress this warning.
The target name "exe:colon" is not valid for certain CMake features, such
as generator expressions, and may result in undefined behavior.
Call Stack \(most recent call first\):
CMakeLists.txt:3 \(include\)
This warning is for project developers. Use -Wno-dev to suppress it.

View File

@ -1,5 +1,10 @@
include(RunCMake)
run_cmake(CMP0037-NEW)
run_cmake(CMP0037-OLD)
run_cmake(CMP0037-WARN)
run_cmake(CMP0037-OLD-space)
run_cmake(CMP0037-NEW-space)
run_cmake(CMP0037-WARN-space)
run_cmake(CMP0037-NEW-colon)
if(NOT (WIN32 AND "${RunCMake_GENERATOR}" MATCHES "Make"))
run_cmake(CMP0037-WARN-colon)
endif()

View File

@ -56,9 +56,7 @@ add_RunCMake_test(CMP0022)
add_RunCMake_test(CMP0026)
add_RunCMake_test(CMP0027)
add_RunCMake_test(CMP0028)
if (NOT "${CMAKE_TEST_GENERATOR}" MATCHES "(MSYS|MinGW|NMake|Borland) Makefiles")
add_RunCMake_test(CMP0037)
endif()
add_RunCMake_test(CMP0038)
add_RunCMake_test(CMP0039)
add_RunCMake_test(CTest)