From f0005bb484bc2b85a169ef7816e33d8e2f16e109 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Sat, 1 Aug 2015 07:16:40 +0200 Subject: Tests: Verify generate-time policy scope behavior. If some day there are no policies checked through the makefile at generate time, this can be fixed. --- Tests/RunCMake/CMakeLists.txt | 1 + Tests/RunCMake/PolicyScope/CMakeLists.txt | 3 +++ Tests/RunCMake/PolicyScope/RunCMakeTest.cmake | 4 ++++ Tests/RunCMake/PolicyScope/dir-in-macro-generate-time-result.txt | 1 + Tests/RunCMake/PolicyScope/dir-in-macro-generate-time-stderr.txt | 5 +++++ Tests/RunCMake/PolicyScope/dir-in-macro-generate-time.cmake | 2 ++ Tests/RunCMake/PolicyScope/dir-in-macro-include.cmake | 6 ++++++ Tests/RunCMake/PolicyScope/dir1/CMakeLists.txt | 5 +++++ Tests/RunCMake/PolicyScope/dir1/foo.cpp | 5 +++++ Tests/RunCMake/PolicyScope/parent-dir-generate-time-result.txt | 1 + Tests/RunCMake/PolicyScope/parent-dir-generate-time.cmake | 7 +++++++ 11 files changed, 40 insertions(+) create mode 100644 Tests/RunCMake/PolicyScope/CMakeLists.txt create mode 100644 Tests/RunCMake/PolicyScope/RunCMakeTest.cmake create mode 100644 Tests/RunCMake/PolicyScope/dir-in-macro-generate-time-result.txt create mode 100644 Tests/RunCMake/PolicyScope/dir-in-macro-generate-time-stderr.txt create mode 100644 Tests/RunCMake/PolicyScope/dir-in-macro-generate-time.cmake create mode 100644 Tests/RunCMake/PolicyScope/dir-in-macro-include.cmake create mode 100644 Tests/RunCMake/PolicyScope/dir1/CMakeLists.txt create mode 100644 Tests/RunCMake/PolicyScope/dir1/foo.cpp create mode 100644 Tests/RunCMake/PolicyScope/parent-dir-generate-time-result.txt create mode 100644 Tests/RunCMake/PolicyScope/parent-dir-generate-time.cmake diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 607e799..c4579d7 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -145,6 +145,7 @@ add_RunCMake_test(TargetSources) add_RunCMake_test(find_dependency) add_RunCMake_test(CompileDefinitions) add_RunCMake_test(CompileFeatures) +add_RunCMake_test(PolicyScope) add_RunCMake_test(WriteCompilerDetectionHeader) if(NOT WIN32) add_RunCMake_test(PositionIndependentCode) diff --git a/Tests/RunCMake/PolicyScope/CMakeLists.txt b/Tests/RunCMake/PolicyScope/CMakeLists.txt new file mode 100644 index 0000000..667561e --- /dev/null +++ b/Tests/RunCMake/PolicyScope/CMakeLists.txt @@ -0,0 +1,3 @@ +cmake_minimum_required(VERSION 2.8.12) +project(${RunCMake_TEST} NONE) +include(${RunCMake_TEST}.cmake NO_POLICY_SCOPE) diff --git a/Tests/RunCMake/PolicyScope/RunCMakeTest.cmake b/Tests/RunCMake/PolicyScope/RunCMakeTest.cmake new file mode 100644 index 0000000..d6c021f --- /dev/null +++ b/Tests/RunCMake/PolicyScope/RunCMakeTest.cmake @@ -0,0 +1,4 @@ +include(RunCMake) + +run_cmake(parent-dir-generate-time) +run_cmake(dir-in-macro-generate-time) diff --git a/Tests/RunCMake/PolicyScope/dir-in-macro-generate-time-result.txt b/Tests/RunCMake/PolicyScope/dir-in-macro-generate-time-result.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/Tests/RunCMake/PolicyScope/dir-in-macro-generate-time-result.txt @@ -0,0 +1 @@ +0 diff --git a/Tests/RunCMake/PolicyScope/dir-in-macro-generate-time-stderr.txt b/Tests/RunCMake/PolicyScope/dir-in-macro-generate-time-stderr.txt new file mode 100644 index 0000000..d223f42 --- /dev/null +++ b/Tests/RunCMake/PolicyScope/dir-in-macro-generate-time-stderr.txt @@ -0,0 +1,5 @@ +CMake Warning \(dev\) at dir1/CMakeLists.txt:5 \(target_compile_definitions\): + Policy CMP0044 is not set: Case sensitive _COMPILER_ID generator + expressions. Run "cmake --help-policy CMP0044" for policy details. Use + the cmake_policy command to set the policy and suppress this warning. +This warning is for project developers. Use -Wno-dev to suppress it. diff --git a/Tests/RunCMake/PolicyScope/dir-in-macro-generate-time.cmake b/Tests/RunCMake/PolicyScope/dir-in-macro-generate-time.cmake new file mode 100644 index 0000000..04a7c2c --- /dev/null +++ b/Tests/RunCMake/PolicyScope/dir-in-macro-generate-time.cmake @@ -0,0 +1,2 @@ + +include(dir-in-macro-include.cmake) diff --git a/Tests/RunCMake/PolicyScope/dir-in-macro-include.cmake b/Tests/RunCMake/PolicyScope/dir-in-macro-include.cmake new file mode 100644 index 0000000..fd326f1 --- /dev/null +++ b/Tests/RunCMake/PolicyScope/dir-in-macro-include.cmake @@ -0,0 +1,6 @@ + +enable_language(CXX) + +# This does not affect dir1 despite being set before the add_subdirectory. +cmake_policy(SET CMP0044 NEW) +add_subdirectory(dir1) diff --git a/Tests/RunCMake/PolicyScope/dir1/CMakeLists.txt b/Tests/RunCMake/PolicyScope/dir1/CMakeLists.txt new file mode 100644 index 0000000..16bcb36 --- /dev/null +++ b/Tests/RunCMake/PolicyScope/dir1/CMakeLists.txt @@ -0,0 +1,5 @@ + + +add_library(foo STATIC foo.cpp) +string(TOLOWER ${CMAKE_CXX_COMPILER_ID} compiler_id) +target_compile_definitions(foo PRIVATE Foo=$) diff --git a/Tests/RunCMake/PolicyScope/dir1/foo.cpp b/Tests/RunCMake/PolicyScope/dir1/foo.cpp new file mode 100644 index 0000000..766b775 --- /dev/null +++ b/Tests/RunCMake/PolicyScope/dir1/foo.cpp @@ -0,0 +1,5 @@ + +int main() +{ + return 0; +} diff --git a/Tests/RunCMake/PolicyScope/parent-dir-generate-time-result.txt b/Tests/RunCMake/PolicyScope/parent-dir-generate-time-result.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/Tests/RunCMake/PolicyScope/parent-dir-generate-time-result.txt @@ -0,0 +1 @@ +0 diff --git a/Tests/RunCMake/PolicyScope/parent-dir-generate-time.cmake b/Tests/RunCMake/PolicyScope/parent-dir-generate-time.cmake new file mode 100644 index 0000000..a0842f7 --- /dev/null +++ b/Tests/RunCMake/PolicyScope/parent-dir-generate-time.cmake @@ -0,0 +1,7 @@ + +enable_language(CXX) + +add_subdirectory(dir1) + +# This affects dir1 despite being set after the add_subdirectory. +cmake_policy(SET CMP0044 NEW) -- cgit v0.12