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
OFF)
mark_as_advanced(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
######################################################################
# Detect OpenMP support
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
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:
Or, as a sequence of commands to execute:
cd build
cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON
make
cd build
cmake .. -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON
make
sudo make install
source /usr/local/gromacs/bin/GMXRC
sudo make install
source /usr/local/gromacs/bin/GMXRC
configure_file(buildinfo.h.cmakein buildinfo.h ESCAPE_QUOTES)
if (BUILD_TESTING)
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()
if (GMX_BUILD_UNITTESTS)
add_subdirectory(external/gmock-1.7.0)
endif()
include_directories(BEFORE ${GTEST_DIR})
include_directories(BEFORE ${GMOCK_INCLUDE_DIRS})
include_directories(BEFORE ${GMOCK_DIR})
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)
set_property(TARGET gmock APPEND PROPERTY COMPILE_DEFINITIONS "${GMOCK_COMPILE_DEFINITIONS}")
set(GMOCK_LIBRARIES gmock ${PTHREADS_LIBRARIES} PARENT_SCOPE)
select.cpp
$<TARGET_OBJECTS:analysisdata-test-shared>)
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})
target_link_libraries(test_selection libgromacs ${GMX_EXE_LINKER_FLAGS})
include_directories(${LIBXML2_INCLUDE_DIR})
file(GLOB TESTUTILS_SOURCES *.cpp)
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})
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})
function (gmx_add_unit_test_object_library NAME)
if (GMX_BUILD_UNITTESTS AND BUILD_TESTING)
include_directories(BEFORE ${GMOCK_INCLUDE_DIRS})
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 ()
set_property(TARGET ${NAME} APPEND PROPERTY COMPILE_DEFINITIONS "${GMOCK_COMPILE_DEFINITIONS}")
endif()
endfunction ()
function (gmx_build_unit_test NAME EXENAME)
if (GMX_BUILD_UNITTESTS AND BUILD_TESTING)
include_directories(BEFORE ${GMOCK_INCLUDE_DIRS})
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")
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")