Don't build tests until they are run
authorRoland Schulz <roland@utk.edu>
Thu, 7 Aug 2014 23:04:12 +0000 (19:04 -0400)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Sun, 17 Aug 2014 09:43:38 +0000 (11:43 +0200)
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
install-guide/install-guide.md
src/CMakeLists.txt
src/external/gmock-1.7.0/CMakeLists.txt
src/gromacs/trajectoryanalysis/tests/CMakeLists.txt
src/testutils/CMakeLists.txt
src/testutils/TestMacros.cmake

index 246920662f930d46748a52914e9a1251f6b40295..0916056d26691de6c8d9e87870e75170b1422f62 100644 (file)
@@ -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
index 211f1af223d734c22ec7bcd29375e450aa90040a..67eb2c7d06146e9e1a2440901115f42c02f1838d 100644 (file)
@@ -13,7 +13,7 @@ at <http://www.gromacs.org/Documentation/Installation_Instructions>.
 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
 
index 8c0db4ed84de7bc9204204ec640c098063bd2a67..4764df0ac3e8536be4f593d108015120a4bba15a 100644 (file)
@@ -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()
index 114e41834bb174a9da76637d49f3cb673427d62e..43e01ab288e5b6f797c87260bf683eba59a189bc 100644 (file)
@@ -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)
index a752e3f12d571320fea103721be22e6b46000bdd..b07003f628bef568c0266ca6f94a370261fd52a4 100644 (file)
@@ -41,5 +41,5 @@ gmx_add_unit_test(TrajectoryAnalysisUnitTests trajectoryanalysis-test
                   select.cpp
                   $<TARGET_OBJECTS:analysisdata-test-shared>)
 
-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})
index 8dd207ad0ea12ed3f663fbd7ebda41d942435602..1941dbcb2f70743d4af3ec23dc85fc4fc4378f6d 100644 (file)
@@ -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})
index 3c8425962ee3c106e323875b1968128deffa09c2..0796c6993c87df2f64fd22e8ac84ab674a34ce88 100644 (file)
@@ -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")