diff options
-rw-r--r-- | Help/dev/README.rst | 8 | ||||
-rw-r--r-- | Help/dev/review.rst | 18 | ||||
-rw-r--r-- | Help/dev/testing.rst | 42 | ||||
-rw-r--r-- | Source/CMakeVersion.cmake | 2 | ||||
-rw-r--r-- | Source/cmFileMonitor.h | 2 | ||||
-rw-r--r-- | Tests/CudaOnly/SeparateCompilation/CMakeLists.txt | 16 |
6 files changed, 69 insertions, 19 deletions
diff --git a/Help/dev/README.rst b/Help/dev/README.rst index 6d3d46d..0dc512a 100644 --- a/Help/dev/README.rst +++ b/Help/dev/README.rst @@ -19,9 +19,13 @@ Upstream Development CMake uses `Kitware's GitLab Instance`_ to manage development, review, and integration of changes. The `CMake Repository`_ holds the integration -branches and tags. Changes follow the `CMake Review Process`_ for -integration. +branches and tags. Upstream development processes are covered by the +following documents: + +* The `CMake Review Process`_ manages integration of changes. +* The `CMake Testing Process`_ drives integration testing. .. _`Kitware's GitLab Instance`: https://gitlab.kitware.com .. _`CMake Repository`: https://gitlab.kitware.com/cmake/cmake .. _`CMake Review Process`: review.rst +.. _`CMake Testing Process`: testing.rst diff --git a/Help/dev/review.rst b/Help/dev/review.rst index ca64b95..e23c0fb 100644 --- a/Help/dev/review.rst +++ b/Help/dev/review.rst @@ -198,14 +198,14 @@ Integration Testing The above `topic testing`_ tests the MR topic independent of other merge requests and on only a few key platforms and configurations. -CMake also has a large number of testing machines provided by Kitware -and generous volunteers that cover nearly all supported platforms, -generators, and configurations. In order to avoid overwhelming these -resources, they do not test every MR individually. Instead, these -machines follow an *integration branch*, run tests on a nightly basis -(or continuously during the day), and post to the `CMake CDash Page`_. -Some follow ``master``. Most follow a special integration branch, -the *topic stage*. +The `CMake Testing Process`_ also has a large number of machines +provided by Kitware and generous volunteers that cover nearly all +supported platforms, generators, and configurations. In order to +avoid overwhelming these resources, they do not test every MR +individually. Instead, these machines follow an *integration branch*, +run tests on a nightly basis (or continuously during the day), and +post to the `CMake CDash Page`_. Some follow ``master``. Most follow +a special integration branch, the *topic stage*. The topic stage is a special branch maintained by the "Kitware Robot" (``@kwrobot``). It consists of the head of the MR target integration @@ -241,6 +241,8 @@ until one of the following occurs: Once a MR has been removed from the topic stage a new ``Do: stage`` command is needed to stage it again. +.. _`CMake Testing Process`: testing.rst + Resolve ======= diff --git a/Help/dev/testing.rst b/Help/dev/testing.rst new file mode 100644 index 0000000..731930c --- /dev/null +++ b/Help/dev/testing.rst @@ -0,0 +1,42 @@ +CMake Testing Process +********************* + +The following documents the process for running integration testing builds. +See documentation on `CMake Development`_ for more information. + +.. _`CMake Development`: README.rst + +CMake Dashboard Scripts +======================= + +The *integration testing* step of the `CMake Review Process`_ uses a set of +testing machines that follow an integration branch on their own schedule to +drive testing and submit results to the `CMake CDash Page`_. Anyone is +welcome to provide testing machines in order to help keep support for their +platforms working. + +The `CMake Dashboard Scripts Repository`_ provides CTest scripts to drive +nightly, continous, and experimental testing of CMake. Use the following +commands to set up a new integration testing client: + +.. code-block:: console + + $ mkdir -p ~/Dashboards + $ cd ~/Dashboards + $ git clone https://gitlab.kitware.com/cmake/dashboard-scripts.git CMakeScripts + $ cd CMakeScripts + +The ``cmake_common.cmake`` script contains comments at the top with +instructions to set up a testing client. As it instructs, create a +CTest script with local settings and include ``cmake_common.cmake``. + +.. _`CMake Review Process`: review.rst +.. _`CMake CDash Page`: https://open.cdash.org/index.php?project=CMake +.. _`CMake Dashboard Scripts Repository`: https://gitlab.kitware.com/cmake/dashboard-scripts + +Nightly Start Time +------------------ + +The ``cmake_common.cmake`` script expects its includer to be run from a +nightly scheduled task (cron job). Schedule such tasks for sometime after +``1:00am UTC``, the time at which our nightly testing branches fast-forward. diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 45d6de3..dcc6ab9 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 8) -set(CMake_VERSION_PATCH 20170307) +set(CMake_VERSION_PATCH 20170308) #set(CMake_VERSION_RC 1) diff --git a/Source/cmFileMonitor.h b/Source/cmFileMonitor.h index 48169b8..2957328 100644 --- a/Source/cmFileMonitor.h +++ b/Source/cmFileMonitor.h @@ -2,6 +2,8 @@ file Copyright.txt or https://cmake.org/licensing for details. */ #pragma once +#include <cmConfigure.h> // IWYU pragma: keep + #include <functional> #include <string> #include <vector> diff --git a/Tests/CudaOnly/SeparateCompilation/CMakeLists.txt b/Tests/CudaOnly/SeparateCompilation/CMakeLists.txt index d134b96..420d7a9 100644 --- a/Tests/CudaOnly/SeparateCompilation/CMakeLists.txt +++ b/Tests/CudaOnly/SeparateCompilation/CMakeLists.txt @@ -12,22 +12,22 @@ project (CudaOnlySeparateCompilation CUDA) string(APPEND CMAKE_CUDA_FLAGS " -gencode arch=compute_30,code=compute_30") set(CMAKE_CXX_STANDARD 11) set(CMAKE_CUDA_STANDARD 11) -add_library(CUDASerarateLibA STATIC file1.cu file2.cu file3.cu) +add_library(CUDASeparateLibA STATIC file1.cu file2.cu file3.cu) #Having file4/file5 in a shared library causes serious problems #with the nvcc linker and it will generate bad entries that will #cause a segv when trying to run the executable # -add_library(CUDASerarateLibB STATIC file4.cu file5.cu) -target_link_libraries(CUDASerarateLibB PRIVATE CUDASerarateLibA) +add_library(CUDASeparateLibB STATIC file4.cu file5.cu) +target_link_libraries(CUDASeparateLibB PRIVATE CUDASeparateLibA) add_executable(CudaOnlySeparateCompilation main.cu) -target_link_libraries(CudaOnlySeparateCompilation PRIVATE CUDASerarateLibB) +target_link_libraries(CudaOnlySeparateCompilation PRIVATE CUDASeparateLibB) -set_target_properties( CUDASerarateLibA - CUDASerarateLibB +set_target_properties( CUDASeparateLibA + CUDASeparateLibB PROPERTIES CUDA_SEPARABLE_COMPILATION ON) -set_target_properties( CUDASerarateLibA - CUDASerarateLibB +set_target_properties( CUDASeparateLibA + CUDASeparateLibB PROPERTIES POSITION_INDEPENDENT_CODE ON) |