From 43dc8c575275d60ac0455e3a9110d813d5348ec4 Mon Sep 17 00:00:00 2001 From: Mike Taves Date: Thu, 23 Jan 2020 14:24:11 +1300 Subject: [PATCH] CMake: replace PROJ_TESTS with CTest's BUILD_TESTING option * CTest automatically creates a BUILD_TESTING option (default is ON) * Also allow PROJ_TESTS to be used, but show deprecation message; and add note to remove this option by PROJ 8.0 * Only build geodtest when tests are enabled * Add documentation to configure a build using -DBUILD_TESTING=OFF --- CMakeLists.txt | 25 +++++++++++++++++-------- docs/source/install.rst | 4 ++++ src/CMakeLists.txt | 4 +++- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e2264b25af..fde2b28a1e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -212,13 +212,6 @@ if(MSVC OR CMAKE_CONFIGURATION_TYPES) set(CMAKE_DEBUG_POSTFIX _d) endif() -option(PROJ_TESTS "Enable build of collection of PROJ tests" ON) -boost_report_value(PROJ_TESTS) -if(PROJ_TESTS) - enable_testing() -endif() -include(ProjTest) - # Put the libraries and binaries that get built into directories at the # top of the build tree rather than in hard-to-find leaf # directories. This simplifies manual testing and the use of the build @@ -245,6 +238,22 @@ set(INCLUDEDIR "${DEFAULT_INCLUDEDIR}" set(CMAKECONFIGDIR "${DEFAULT_CMAKEDIR}" CACHE PATH "The directory to install cmake config files into.") +################################################################################ +# Tests +################################################################################ +include(CTest) + +# Support older option, to be removed by PROJ 8.0 +if(DEFINED PROJ_TESTS) + message(DEPRECATION "PROJ_TESTS has been replaced with BUILD_TESTING") + set(BUILD_TESTING ${PROJ_TESTS}) +endif() + +boost_report_value(BUILD_TESTING) +if(BUILD_TESTING) + include(ProjTest) +endif() + ################################################################################ # Build configured components ################################################################################ @@ -256,6 +265,6 @@ add_subdirectory(include) add_subdirectory(src) add_subdirectory(man) add_subdirectory(cmake) -if(PROJ_TESTS) +if(BUILD_TESTING) add_subdirectory(test) endif() diff --git a/docs/source/install.rst b/docs/source/install.rst index 4e09a4b35c..8a062b10bc 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -234,6 +234,10 @@ Tests are run with:: The test suite requires that the proj-datumgrid package is installed in :envvar:`PROJ_LIB`. +If tests are not required, PROJ can be built without the test suite using the following configuration:: + + cmake -DBUILD_TESTING=OFF .. + Building on Windows with vcpkg and Visual Studio 2017 or 2019 -------------------------------------------------------------------------------- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 48c785a50f..8cf5730630 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -51,7 +51,9 @@ endif() if(BUILD_GEOD) include(bin_geod.cmake) - include(bin_geodtest.cmake) + if(BUILD_TESTING) + include(bin_geodtest.cmake) + endif() set(BIN_TARGETS ${BIN_TARGETS} geod) endif()