From 51fc276f2d6b5427324488b00a8c360ab0fe1a88 Mon Sep 17 00:00:00 2001 From: Roland Schulz Date: Thu, 7 Aug 2014 19:04:12 -0400 Subject: [PATCH] Don't build tests until they are run There is no advantage to normal users, to build the tests until the user decides to run them. Also avoids that the user thinks that Gromacs doesn't compile on his platform if there is only a problem with the testing framework. Added a GMX_DEVELOPER_BUILD option which restores the old behavior. Change-Id: Ifda2184eb45bf58b8798f21a29aea19bef57c690 --- CMakeLists.txt | 4 ++++ install-guide/install-guide.md | 4 ++-- src/CMakeLists.txt | 3 +++ src/external/gmock-1.7.0/CMakeLists.txt | 2 +- src/gromacs/trajectoryanalysis/tests/CMakeLists.txt | 2 +- src/testutils/CMakeLists.txt | 2 +- src/testutils/TestMacros.cmake | 4 ++-- 7 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 246920662f..0916056d26 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -310,6 +310,10 @@ option(GMX_BUILD_FOR_COVERAGE OFF) mark_as_advanced(GMX_BUILD_FOR_COVERAGE) +option(GMX_DEVELOPER_BUILD + "Enable Developer convenience features: always build unit-tests" + OFF) +mark_as_advanced(GMX_DEVELOPER_BUILD) ###################################################################### # Detect OpenMP support diff --git a/install-guide/install-guide.md b/install-guide/install-guide.md index 211f1af223..67eb2c7d06 100644 --- a/install-guide/install-guide.md +++ b/install-guide/install-guide.md @@ -13,7 +13,7 @@ at . 3. Get and unpack the latest version of the GROMACS tarball. 4. Make a separate build directory and change to it. 5. Run `cmake` with the path to the source as an argument -6. Run `make`, `make test`, and `make install` +6. Run `make`, `make check`, and `make install` Or, as a sequence of commands to execute: @@ -23,7 +23,7 @@ Or, as a sequence of commands to execute: cd build cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON make - make test + make check sudo make install source /usr/local/gromacs/bin/GMXRC diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8c0db4ed84..4764df0ac3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -46,6 +46,9 @@ configure_file(config.h.cmakein config.h) configure_file(buildinfo.h.cmakein buildinfo.h ESCAPE_QUOTES) if (BUILD_TESTING) + if(NOT GMX_DEVELOPER_BUILD) + set(UNITTEST_TARGET_OPTIONS EXCLUDE_FROM_ALL) + endif() if (GMX_BUILD_UNITTESTS) add_subdirectory(external/gmock-1.7.0) endif() diff --git a/src/external/gmock-1.7.0/CMakeLists.txt b/src/external/gmock-1.7.0/CMakeLists.txt index 114e41834b..43e01ab288 100644 --- a/src/external/gmock-1.7.0/CMakeLists.txt +++ b/src/external/gmock-1.7.0/CMakeLists.txt @@ -59,7 +59,7 @@ include_directories(BEFORE ${GTEST_INCLUDE_DIRS}) include_directories(BEFORE ${GTEST_DIR}) include_directories(BEFORE ${GMOCK_INCLUDE_DIRS}) include_directories(BEFORE ${GMOCK_DIR}) -add_library(gmock STATIC ${GMOCK_SOURCES} ${GTEST_SOURCES}) +add_library(gmock STATIC ${UNITTEST_TARGET_OPTIONS} ${GMOCK_SOURCES} ${GTEST_SOURCES}) set_property(TARGET gmock APPEND PROPERTY COMPILE_DEFINITIONS "${GMOCK_COMPILE_DEFINITIONS}") set(GMOCK_LIBRARIES gmock ${PTHREADS_LIBRARIES} PARENT_SCOPE) diff --git a/src/gromacs/trajectoryanalysis/tests/CMakeLists.txt b/src/gromacs/trajectoryanalysis/tests/CMakeLists.txt index a752e3f12d..b07003f628 100644 --- a/src/gromacs/trajectoryanalysis/tests/CMakeLists.txt +++ b/src/gromacs/trajectoryanalysis/tests/CMakeLists.txt @@ -41,5 +41,5 @@ gmx_add_unit_test(TrajectoryAnalysisUnitTests trajectoryanalysis-test select.cpp $) -add_executable(test_selection test_selection.cpp) +add_executable(test_selection ${UNITTEST_TARGET_OPTIONS} test_selection.cpp) target_link_libraries(test_selection libgromacs ${GMX_EXE_LINKER_FLAGS}) diff --git a/src/testutils/CMakeLists.txt b/src/testutils/CMakeLists.txt index 8dd207ad0e..1941dbcb2f 100644 --- a/src/testutils/CMakeLists.txt +++ b/src/testutils/CMakeLists.txt @@ -36,7 +36,7 @@ include_directories(BEFORE ${GMOCK_INCLUDE_DIRS}) include_directories(${LIBXML2_INCLUDE_DIR}) file(GLOB TESTUTILS_SOURCES *.cpp) -add_library(testutils STATIC ${TESTUTILS_SOURCES}) +add_library(testutils STATIC ${UNITTEST_TARGET_OPTIONS} ${TESTUTILS_SOURCES}) set(TESTUTILS_LIBS testutils ${GMOCK_LIBRARIES} ${LIBXML2_LIBRARIES}) set_property(TARGET testutils APPEND PROPERTY COMPILE_DEFINITIONS "${GMOCK_COMPILE_DEFINITIONS}") target_link_libraries(testutils libgromacs ${GMOCK_LIBRARIES} ${LIBXML2_LIBRARIES}) diff --git a/src/testutils/TestMacros.cmake b/src/testutils/TestMacros.cmake index 3c8425962e..0796c6993c 100644 --- a/src/testutils/TestMacros.cmake +++ b/src/testutils/TestMacros.cmake @@ -35,7 +35,7 @@ function (gmx_add_unit_test_object_library NAME) if (GMX_BUILD_UNITTESTS AND BUILD_TESTING) include_directories(BEFORE ${GMOCK_INCLUDE_DIRS}) - add_library(${NAME} OBJECT ${ARGN}) + add_library(${NAME} OBJECT ${UNITTEST_TARGET_OPTIONS} ${ARGN}) set_property(TARGET ${NAME} APPEND PROPERTY COMPILE_DEFINITIONS "${GMOCK_COMPILE_DEFINITIONS}") endif() endfunction () @@ -43,7 +43,7 @@ endfunction () function (gmx_build_unit_test NAME EXENAME) if (GMX_BUILD_UNITTESTS AND BUILD_TESTING) include_directories(BEFORE ${GMOCK_INCLUDE_DIRS}) - add_executable(${EXENAME} ${ARGN} ${TESTUTILS_DIR}/unittest_main.cpp) + add_executable(${EXENAME} ${UNITTEST_TARGET_OPTIONS} ${ARGN} ${TESTUTILS_DIR}/unittest_main.cpp) set_property(TARGET ${EXENAME} APPEND PROPERTY COMPILE_DEFINITIONS "${GMOCK_COMPILE_DEFINITIONS}") target_link_libraries(${EXENAME} libgromacs ${TESTUTILS_LIBS} ${GMOCK_LIBRARIES} ${GMX_EXE_LINKER_FLAGS}) set(_temporary_files_path "${CMAKE_CURRENT_BINARY_DIR}/Testing/Temporary") -- 2.22.0