[Cmake-commits] CMake branch, next, updated. v3.1.1-2299-g3a70f6e

Brad King brad.king at kitware.com
Sat Jan 24 07:37:56 EST 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  3a70f6e34c49ceab09e36bfd5bb623bbc312707b (commit)
       via  5c306429b25dfd03b8f662bb1189d55c03afdbf9 (commit)
       via  59f6995bfd214152cf6d66e188e84216b7e7db60 (commit)
       via  23bf98fc04eccc85f216fdab4166107c3d958d43 (commit)
      from  c0130af037373d853ee78465e9f5ef6547991bbd (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3a70f6e34c49ceab09e36bfd5bb623bbc312707b
commit 3a70f6e34c49ceab09e36bfd5bb623bbc312707b
Merge: c0130af 5c30642
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Sat Jan 24 07:37:55 2015 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Sat Jan 24 07:37:55 2015 -0500

    Merge topic 'test-rerun-cmake' into next
    
    5c306429 configure_file: Test that CMake re-runs on input change or output missing
    59f6995b try_compile: Test that CMake re-runs on input change
    23bf98fc Tests/RunCMake: Honor CMAKE_MAKE_PROGRAM


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5c306429b25dfd03b8f662bb1189d55c03afdbf9
commit 5c306429b25dfd03b8f662bb1189d55c03afdbf9
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Jan 23 10:02:04 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Sat Jan 24 07:35:45 2015 -0500

    configure_file: Test that CMake re-runs on input change or output missing
    
    With the Makefile generators we expect that touching or modifying the
    input file of a configure_file, or removing its output, will cause CMake
    to re-run on the next build.  Extend the RunCMake.configure_file test
    with a case covering this.  Also check that CMake does not re-run if
    nothing has changed.

diff --git a/Tests/RunCMake/configure_file/RerunCMake-rerun-stderr.txt b/Tests/RunCMake/configure_file/RerunCMake-rerun-stderr.txt
new file mode 100644
index 0000000..26e07b6
--- /dev/null
+++ b/Tests/RunCMake/configure_file/RerunCMake-rerun-stderr.txt
@@ -0,0 +1 @@
+^Running CMake on RerunCMake$
diff --git a/Tests/RunCMake/configure_file/RerunCMake-rerun-stdout.txt b/Tests/RunCMake/configure_file/RerunCMake-rerun-stdout.txt
new file mode 100644
index 0000000..1bd5be7
--- /dev/null
+++ b/Tests/RunCMake/configure_file/RerunCMake-rerun-stdout.txt
@@ -0,0 +1,3 @@
+-- Configuring done
+-- Generating done
+-- Build files have been written to: .*Tests/RunCMake/configure_file/RerunCMake-build
diff --git a/Tests/RunCMake/configure_file/RerunCMake-stderr.txt b/Tests/RunCMake/configure_file/RerunCMake-stderr.txt
new file mode 100644
index 0000000..26e07b6
--- /dev/null
+++ b/Tests/RunCMake/configure_file/RerunCMake-stderr.txt
@@ -0,0 +1 @@
+^Running CMake on RerunCMake$
diff --git a/Tests/RunCMake/configure_file/RerunCMake-stdout.txt b/Tests/RunCMake/configure_file/RerunCMake-stdout.txt
new file mode 100644
index 0000000..1bd5be7
--- /dev/null
+++ b/Tests/RunCMake/configure_file/RerunCMake-stdout.txt
@@ -0,0 +1,3 @@
+-- Configuring done
+-- Generating done
+-- Build files have been written to: .*Tests/RunCMake/configure_file/RerunCMake-build
diff --git a/Tests/RunCMake/configure_file/RerunCMake.cmake b/Tests/RunCMake/configure_file/RerunCMake.cmake
new file mode 100644
index 0000000..890cc1f
--- /dev/null
+++ b/Tests/RunCMake/configure_file/RerunCMake.cmake
@@ -0,0 +1,8 @@
+message("Running CMake on RerunCMake") # write to stderr if cmake reruns
+configure_file(
+  "${CMAKE_CURRENT_BINARY_DIR}/ConfigureFileInput.txt.in"
+  "${CMAKE_CURRENT_BINARY_DIR}/ConfigureFileOutput.txt"
+  @ONLY
+  )
+# make sure CMakeCache.txt is newer than ConfigureFileOutput.txt
+execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1)
diff --git a/Tests/RunCMake/configure_file/RunCMakeTest.cmake b/Tests/RunCMake/configure_file/RunCMakeTest.cmake
index c010256..489652b 100644
--- a/Tests/RunCMake/configure_file/RunCMakeTest.cmake
+++ b/Tests/RunCMake/configure_file/RunCMakeTest.cmake
@@ -7,3 +7,37 @@ run_cmake(UTF16BE-BOM)
 run_cmake(UTF32LE-BOM)
 run_cmake(UTF32BE-BOM)
 run_cmake(UnknownArg)
+
+if(RunCMake_GENERATOR MATCHES "Make")
+  # Use a single build tree for a few tests without cleaning.
+  set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/RerunCMake-build)
+  set(RunCMake_TEST_NO_CLEAN 1)
+  file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
+  file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
+  set(in_conf  "${RunCMake_TEST_BINARY_DIR}/ConfigureFileInput.txt.in")
+  file(WRITE "${in_conf}" "1")
+
+  message(STATUS "RerunCMake: first configuration...")
+  run_cmake(RerunCMake)
+  run_cmake_command(RerunCMake-nowork ${CMAKE_COMMAND} --build .)
+
+  execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1) # handle 1s resolution
+  message(STATUS "RerunCMake: touch configure_file input...")
+  file(WRITE "${in_conf}" "1")
+  run_cmake_command(RerunCMake-rerun ${CMAKE_COMMAND} --build .)
+  run_cmake_command(RerunCMake-nowork ${CMAKE_COMMAND} --build .)
+
+  execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1) # handle 1s resolution
+  message(STATUS "RerunCMake: modify configure_file input...")
+  file(WRITE "${in_conf}" "2")
+  run_cmake_command(RerunCMake-rerun ${CMAKE_COMMAND} --build .)
+  run_cmake_command(RerunCMake-nowork ${CMAKE_COMMAND} --build .)
+
+  message(STATUS "RerunCMake: remove configure_file output...")
+  file(REMOVE "${RunCMake_TEST_BINARY_DIR}/ConfigureFileOutput.txt")
+  run_cmake_command(RerunCMake-rerun ${CMAKE_COMMAND} --build .)
+  run_cmake_command(RerunCMake-nowork ${CMAKE_COMMAND} --build .)
+
+  unset(RunCMake_TEST_BINARY_DIR)
+  unset(RunCMake_TEST_NO_CLEAN)
+endif()

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=59f6995bfd214152cf6d66e188e84216b7e7db60
commit 59f6995bfd214152cf6d66e188e84216b7e7db60
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Jan 23 09:45:00 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Sat Jan 24 07:35:45 2015 -0500

    try_compile: Test that CMake re-runs on input change
    
    With the Makefile and Ninja generators we expect that touching the input
    source file for a try_compile will cause CMake to re-run on the next
    build.  Extend the RunCMake.try_compile test with a case covering this.
    Also check that CMake does not re-run if nothing has changed.

diff --git a/Tests/RunCMake/try_compile/RerunCMake-nowork-ninja-no-console-stdout.txt b/Tests/RunCMake/try_compile/RerunCMake-nowork-ninja-no-console-stdout.txt
new file mode 100644
index 0000000..e600b9b
--- /dev/null
+++ b/Tests/RunCMake/try_compile/RerunCMake-nowork-ninja-no-console-stdout.txt
@@ -0,0 +1 @@
+^ninja: no work to do\.$
diff --git a/Tests/RunCMake/try_compile/RerunCMake-rerun-ninja-no-console-stdout.txt b/Tests/RunCMake/try_compile/RerunCMake-rerun-ninja-no-console-stdout.txt
new file mode 100644
index 0000000..e1a1b5a
--- /dev/null
+++ b/Tests/RunCMake/try_compile/RerunCMake-rerun-ninja-no-console-stdout.txt
@@ -0,0 +1,5 @@
+Running CMake on RerunCMake
+FALSE
+-- Configuring done
+-- Generating done
+-- Build files have been written to: .*Tests/RunCMake/try_compile/RerunCMake-build
diff --git a/Tests/RunCMake/try_compile/RerunCMake-rerun-stderr.txt b/Tests/RunCMake/try_compile/RerunCMake-rerun-stderr.txt
new file mode 100644
index 0000000..88e54b1
--- /dev/null
+++ b/Tests/RunCMake/try_compile/RerunCMake-rerun-stderr.txt
@@ -0,0 +1,2 @@
+^Running CMake on RerunCMake
+FALSE$
diff --git a/Tests/RunCMake/try_compile/RerunCMake-rerun-stdout.txt b/Tests/RunCMake/try_compile/RerunCMake-rerun-stdout.txt
new file mode 100644
index 0000000..867db5f
--- /dev/null
+++ b/Tests/RunCMake/try_compile/RerunCMake-rerun-stdout.txt
@@ -0,0 +1,3 @@
+-- Configuring done
+-- Generating done
+-- Build files have been written to: .*Tests/RunCMake/try_compile/RerunCMake-build
diff --git a/Tests/RunCMake/try_compile/RerunCMake-stderr.txt b/Tests/RunCMake/try_compile/RerunCMake-stderr.txt
new file mode 100644
index 0000000..45d305a
--- /dev/null
+++ b/Tests/RunCMake/try_compile/RerunCMake-stderr.txt
@@ -0,0 +1,2 @@
+^Running CMake on RerunCMake
+TRUE$
diff --git a/Tests/RunCMake/try_compile/RerunCMake-stdout.txt b/Tests/RunCMake/try_compile/RerunCMake-stdout.txt
new file mode 100644
index 0000000..867db5f
--- /dev/null
+++ b/Tests/RunCMake/try_compile/RerunCMake-stdout.txt
@@ -0,0 +1,3 @@
+-- Configuring done
+-- Generating done
+-- Build files have been written to: .*Tests/RunCMake/try_compile/RerunCMake-build
diff --git a/Tests/RunCMake/try_compile/RerunCMake.cmake b/Tests/RunCMake/try_compile/RerunCMake.cmake
new file mode 100644
index 0000000..5a9f1d4
--- /dev/null
+++ b/Tests/RunCMake/try_compile/RerunCMake.cmake
@@ -0,0 +1,7 @@
+message("Running CMake on RerunCMake") # write to stderr if cmake reruns
+enable_language(C)
+try_compile(res
+  "${CMAKE_CURRENT_BINARY_DIR}"
+  SOURCES "${CMAKE_CURRENT_BINARY_DIR}/TryCompileInput.c"
+  )
+message("${res}")
diff --git a/Tests/RunCMake/try_compile/RunCMakeTest.cmake b/Tests/RunCMake/try_compile/RunCMakeTest.cmake
index 06096b2..6cdbafa 100644
--- a/Tests/RunCMake/try_compile/RunCMakeTest.cmake
+++ b/Tests/RunCMake/try_compile/RunCMakeTest.cmake
@@ -17,3 +17,36 @@ run_cmake(NonSourceCopyFile)
 run_cmake(NonSourceCompileDefinitions)
 
 run_cmake(CMP0056)
+
+if(RunCMake_GENERATOR MATCHES "Make|Ninja")
+  # Use a single build tree for a few tests without cleaning.
+  set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/RerunCMake-build)
+  set(RunCMake_TEST_NO_CLEAN 1)
+  file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
+  file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
+  set(in_tc  "${RunCMake_TEST_BINARY_DIR}/TryCompileInput.c")
+  file(WRITE "${in_tc}" "int main(void) { return 0; }\n")
+
+  # Older Ninja keeps all rerun output on stdout
+  set(ninja "")
+  if(RunCMake_GENERATOR STREQUAL "Ninja")
+    execute_process(COMMAND ${RunCMake_MAKE_PROGRAM} --version
+      OUTPUT_VARIABLE ninja_version OUTPUT_STRIP_TRAILING_WHITESPACE)
+    if(ninja_version VERSION_LESS 1.5)
+      set(ninja -ninja-no-console)
+    endif()
+  endif()
+
+  message(STATUS "RerunCMake: first configuration...")
+  run_cmake(RerunCMake)
+  run_cmake_command(RerunCMake-nowork${ninja} ${CMAKE_COMMAND} --build .)
+
+  execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1) # handle 1s resolution
+  message(STATUS "RerunCMake: modify try_compile input...")
+  file(WRITE "${in_tc}" "does-not-compile\n")
+  run_cmake_command(RerunCMake-rerun${ninja} ${CMAKE_COMMAND} --build .)
+  run_cmake_command(RerunCMake-nowork${ninja} ${CMAKE_COMMAND} --build .)
+
+  unset(RunCMake_TEST_BINARY_DIR)
+  unset(RunCMake_TEST_NO_CLEAN)
+endif()

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=23bf98fc04eccc85f216fdab4166107c3d958d43
commit 23bf98fc04eccc85f216fdab4166107c3d958d43
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Sat Jan 24 07:08:12 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Sat Jan 24 07:35:44 2015 -0500

    Tests/RunCMake: Honor CMAKE_MAKE_PROGRAM
    
    If tests are using an explicit make program, pass it through to RunCMake
    tests so that any that actually do build use the expected tool.

diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index 3a61751..12c1f47 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -6,6 +6,7 @@ macro(add_RunCMake_test test)
     -DRunCMake_GENERATOR=${CMAKE_GENERATOR}
     -DRunCMake_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM}
     -DRunCMake_GENERATOR_TOOLSET=${CMAKE_GENERATOR_TOOLSET}
+    -DRunCMake_MAKE_PROGRAM=${CMake_TEST_EXPLICIT_MAKE_PROGRAM}
     -DRunCMake_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}/${test}
     -DRunCMake_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}/${test}
     ${${test}_ARGS}
diff --git a/Tests/RunCMake/RunCMake.cmake b/Tests/RunCMake/RunCMake.cmake
index 1625741..23f2f97 100644
--- a/Tests/RunCMake/RunCMake.cmake
+++ b/Tests/RunCMake/RunCMake.cmake
@@ -48,6 +48,9 @@ function(run_cmake test)
   if(APPLE)
     list(APPEND RunCMake_TEST_OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0025=NEW)
   endif()
+  if(RunCMake_MAKE_PROGRAM)
+    list(APPEND RunCMake_TEST_OPTIONS "-DCMAKE_MAKE_PROGRAM=${RunCMake_MAKE_PROGRAM}")
+  endif()
   if(RunCMake_TEST_COMMAND)
     execute_process(
       COMMAND ${RunCMake_TEST_COMMAND}

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list