From dd399486d40df5d06d1b67111759a63e99ec6d50 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Fri, 17 Aug 2012 09:14:40 +0000
Subject: [PATCH] more ctest work

---
 utils/nightly/gmsh.ctest               | 70 ++++++++++++++++++++++++++
 utils/nightly/gmsh_linux.ctest         | 25 +++++++++
 utils/nightly/gmsh_linux_nightly.cron  |  4 ++
 utils/nightly/gmsh_linux_nightly.ctest |  9 ++++
 utils/nightly/gmsh_mac.ctest           | 24 +++++++++
 utils/nightly/gmsh_mac_nightly.cron    |  4 ++
 utils/nightly/gmsh_mac_nightly.ctest   |  9 ++++
 utils/nightly/gmsh_win.ctest           | 27 ++++++++++
 utils/nightly/gmsh_win_nightly.bat     |  6 +++
 utils/nightly/gmsh_win_nightly.ctest   |  9 ++++
 10 files changed, 187 insertions(+)
 create mode 100644 utils/nightly/gmsh.ctest
 create mode 100644 utils/nightly/gmsh_linux.ctest
 create mode 100644 utils/nightly/gmsh_linux_nightly.cron
 create mode 100644 utils/nightly/gmsh_linux_nightly.ctest
 create mode 100644 utils/nightly/gmsh_mac.ctest
 create mode 100644 utils/nightly/gmsh_mac_nightly.cron
 create mode 100644 utils/nightly/gmsh_mac_nightly.ctest
 create mode 100644 utils/nightly/gmsh_win.ctest
 create mode 100755 utils/nightly/gmsh_win_nightly.bat
 create mode 100644 utils/nightly/gmsh_win_nightly.ctest

diff --git a/utils/nightly/gmsh.ctest b/utils/nightly/gmsh.ctest
new file mode 100644
index 0000000000..67b5f8fdfa
--- /dev/null
+++ b/utils/nightly/gmsh.ctest
@@ -0,0 +1,70 @@
+# Gmsh - Copyright (C) 1997-2012 C. Geuzaine, J.-F. Remacle
+#
+# See the LICENSE.txt file for license information. Please report all
+# bugs and problems to <gmsh@geuz.org>.
+
+# this is the common ctest script used by all gmsh nightly (and experimental)
+# builds, on all architectures
+
+set(CTEST_SOURCE_DIRECTORY "$ENV{HOME}/src/gmsh")
+set(CTEST_BINARY_DIRECTORY "$ENV{HOME}/src/gmsh/bin")
+set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
+set(CTEST_BUILD_CONFIGURATION "RelWithDebInfo")
+
+set(CTEST_SVN_REPOS https://geuz.org/svn/gmsh/trunk)
+
+find_program(CTEST_SVN_COMMAND NAMES svn)
+find_program(CTEST_COVERAGE_COMMAND NAMES gcov)
+find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind)
+
+if(NOT EXISTS "${CTEST_SOURCE_DIRECTORY}")
+  set(CTEST_CHECKOUT_COMMAND 
+      "${CTEST_SVN_COMMAND} co ${CTEST_SVN_REPOS} ${CTEST_SOURCE_DIRECTORY}")
+endif(NOT EXISTS "${CTEST_SOURCE_DIRECTORY}")
+set(CTEST_UPDATE_COMMAND "${CTEST_SVN_COMMAND}")
+
+set(CTEST_CONFIGURE_COMMAND 
+    "${CTEST_CMAKE_COMMAND} -DCMAKE_BUILD_TYPE:STRING=${CTEST_BUILD_CONFIGURATION}")
+set(CTEST_CONFIGURE_COMMAND "${CTEST_CONFIGURE_COMMAND} ${CTEST_BUILD_OPTIONS}")
+set(CTEST_CONFIGURE_COMMAND "${CTEST_CONFIGURE_COMMAND} \"-G${CTEST_CMAKE_GENERATOR}\"")
+set(CTEST_CONFIGURE_COMMAND "${CTEST_CONFIGURE_COMMAND} \"${CTEST_SOURCE_DIRECTORY}\"")
+
+# make sure everybody outputs messages in english
+set($ENV{LC_MESSAGES} "en_US")
+
+# select Experimental dashboard if none is selected
+if(NOT CDASH_MODEL)
+  set(CDASH_MODEL "Experimental")
+endif(NOT CDASH_MODEL)
+
+ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
+ctest_start(${CDASH_MODEL})
+ctest_update()
+ctest_configure()
+ctest_build(TARGET html)
+ctest_build(TARGET package)
+if(WITH_TEST)
+  ctest_test()
+endif(WITH_TEST)
+if (WITH_COVERAGE AND CTEST_COVERAGE_COMMAND)
+  ctest_coverage()
+endif (WITH_COVERAGE AND CTEST_COVERAGE_COMMAND)
+if (WITH_MEMCHECK AND CTEST_MEMORYCHECK_COMMAND)
+  ctest_memcheck()
+endif (WITH_MEMCHECK AND CTEST_MEMORYCHECK_COMMAND)
+ctest_submit()
+
+macro(upload_package WEB ARCH EXTRA EXT1 EXT2)
+  file(GLOB FILE ${CTEST_BINARY_DIRECTORY}/gmsh-*${EXT1})
+  if(FILE)
+    if(${FILE} MATCHES "-svn")
+      execute_process(COMMAND scp -C ${FILE} ${WEB}/gmsh-svn-${ARCH}${EXTRA}${EXT2}
+                      TIMEOUT 60)
+    else(${FILE} MATCHES "-svn")
+      get_filename_component(NAME ${FILE} NAME)
+      string(REPLACE ${EXT1} "" BASE ${NAME})
+      execute_process(COMMAND scp -C ${FILE} ${WEB}/${BASE}${EXTRA}${EXT2}
+                      TIMEOUT 60)
+    endif(${FILE} MATCHES "-svn")
+  endif(FILE)
+endmacro(upload_package)
diff --git a/utils/nightly/gmsh_linux.ctest b/utils/nightly/gmsh_linux.ctest
new file mode 100644
index 0000000000..66274edaa0
--- /dev/null
+++ b/utils/nightly/gmsh_linux.ctest
@@ -0,0 +1,25 @@
+# Gmsh - Copyright (C) 1997-2012 C. Geuzaine, J.-F. Remacle
+#
+# See the LICENSE.txt file for license information. Please report all
+# bugs and problems to <gmsh@geuz.org>.
+
+set(CTEST_SITE "ace25 (Debian 32 bits)")
+set(CTEST_CMAKE_COMMAND "/usr/local/bin/cmake")
+
+set(WEB_BIN "geuzaine@geuz.org:/home/www/geuz.org/gmsh/bin/Linux")
+
+set(WITH_TEST TRUE)      # run the tests?
+set(WITH_COVERAGE FALSE) # check code coverage?
+set(WITH_MEMCHECK FALSE) # check memory with valgrind?
+
+#################################################################################
+set(CTEST_BUILD_NAME "Linux32")
+set(OPT "-DGMSH_EXTRA_VERSION=${EXTRA_VERSION}")
+set(OPT "${OPT} -DCMAKE_PREFIX_PATH:path=/usr/local/med;/usr/local/opencascade;/usr/local")
+set(OPT "${OPT} -DENABLE_NATIVE_FILE_CHOOSER:bool=FALSE")
+set(OPT "${OPT} -DPETSC_ARCH=linux_complex_umfpack")
+set(OPT "${OPT} -DPETSC_DIR=$ENV{HOME}/src/petsc-3.0.0-p12")
+set(OPT "${OPT} -DSLEPC_DIR=$ENV{HOME}/src/slepc-3.0.0-p7")
+set(CTEST_BUILD_OPTIONS ${OPT})
+include(gmsh.ctest)
+upload_package(${WEB_BIN} Linux "" .tar.gz .tgz)
diff --git a/utils/nightly/gmsh_linux_nightly.cron b/utils/nightly/gmsh_linux_nightly.cron
new file mode 100644
index 0000000000..f6fc903585
--- /dev/null
+++ b/utils/nightly/gmsh_linux_nightly.cron
@@ -0,0 +1,4 @@
+#
+# this will launch a new build every night at 1h01
+#
+1 1 * * * cd ${HOME}/src/gmsh/utils/nightly && /usr/local/bin/ctest -S gmsh_linux_nightly.ctest
diff --git a/utils/nightly/gmsh_linux_nightly.ctest b/utils/nightly/gmsh_linux_nightly.ctest
new file mode 100644
index 0000000000..8fd4a693e5
--- /dev/null
+++ b/utils/nightly/gmsh_linux_nightly.ctest
@@ -0,0 +1,9 @@
+# Gmsh - Copyright (C) 1997-2012 C. Geuzaine, J.-F. Remacle
+#
+# See the LICENSE.txt file for license information. Please report all
+# bugs and problems to <gmsh@geuz.org>.
+
+set(CTEST_NIGHTLY_START_TIME "00:00:00 UTC")
+set(CDASH_MODEL "Nightly")
+set(EXTRA_VERSION "-svn")
+include(gmsh_linux.ctest)
diff --git a/utils/nightly/gmsh_mac.ctest b/utils/nightly/gmsh_mac.ctest
new file mode 100644
index 0000000000..126a78d7b7
--- /dev/null
+++ b/utils/nightly/gmsh_mac.ctest
@@ -0,0 +1,24 @@
+# Gmsh - Copyright (C) 1997-2012 C. Geuzaine, J.-F. Remacle
+#
+# See the LICENSE.txt file for license information. Please report all
+# bugs and problems to <gmsh@geuz.org>.
+
+set(CTEST_SITE "ace25 (OSX 10.5)")
+set(CTEST_CMAKE_COMMAND "cmake")
+
+set(WEB_BIN "geuzaine@geuz.org:/home/www/geuz.org/gmsh/bin/MacOSX")
+
+set(WITH_TEST TRUE)      # run the tests?
+set(WITH_COVERAGE FALSE) # check code coverage?
+set(WITH_MEMCHECK FALSE) # check memory with valgrind?
+
+#################################################################################
+set(CTEST_BUILD_NAME "MacOSX32")
+set(OPT "-DGMSH_EXTRA_VERSION=${EXTRA_VERSION}")
+set(OPT "${OPT} -DCMAKE_PREFIX_PATH:path=/usr/local/opencascade;/usr/local/med;/usr/local")
+set(OPT "${OPT} -DPETSC_ARCH=umfpack-cxx-opt")
+set(OPT "${OPT} -DPETSC_DIR=$ENV{HOME}/src/petsc-3.0.0-p7")
+set(OPT "${OPT} -DSLEPC_DIR=$ENV{HOME}/src/slepc-3.0.0-p7")
+set(CTEST_BUILD_OPTIONS ${OPT})
+include(gmsh.ctest)
+upload_package(${WEB_BIN} MacOSX "" .tar.gz .tgz)
diff --git a/utils/nightly/gmsh_mac_nightly.cron b/utils/nightly/gmsh_mac_nightly.cron
new file mode 100644
index 0000000000..d065a88737
--- /dev/null
+++ b/utils/nightly/gmsh_mac_nightly.cron
@@ -0,0 +1,4 @@
+#
+# this will launch a new build every night at 0h01
+#
+1 0 * * * cd ${HOME}/src/gmsh/utils/nightly && /usr/local/bin/ctest -S gmsh_mac_nightly.ctest
diff --git a/utils/nightly/gmsh_mac_nightly.ctest b/utils/nightly/gmsh_mac_nightly.ctest
new file mode 100644
index 0000000000..dd455a3c8e
--- /dev/null
+++ b/utils/nightly/gmsh_mac_nightly.ctest
@@ -0,0 +1,9 @@
+# Gmsh - Copyright (C) 1997-2012 C. Geuzaine, J.-F. Remacle
+#
+# See the LICENSE.txt file for license information. Please report all
+# bugs and problems to <gmsh@geuz.org>.
+
+set(CTEST_NIGHTLY_START_TIME "00:00:00 UTC")
+set(CDASH_MODEL "Nightly")
+set(EXTRA_VERSION "-svn")
+include(gmsh_mac.ctest)
diff --git a/utils/nightly/gmsh_win.ctest b/utils/nightly/gmsh_win.ctest
new file mode 100644
index 0000000000..900563e902
--- /dev/null
+++ b/utils/nightly/gmsh_win.ctest
@@ -0,0 +1,27 @@
+# Gmsh - Copyright (C) 1997-2012 C. Geuzaine, J.-F. Remacle
+#
+# See the LICENSE.txt file for license information. Please report all
+# bugs and problems to <gmsh@geuz.org>.
+
+set(CTEST_SITE "ace25 (Windows XP)")
+set(CTEST_CMAKE_COMMAND "cmake")
+
+set(WEB_BIN "geuzaine@geuz.org:/home/www/geuz.org/gmsh/bin/Windows")
+
+set(WITH_TEST TRUE)      # run the tests?
+set(WITH_COVERAGE FALSE) # check code coverage?
+set(WITH_MEMCHECK FALSE) # check memory with valgrind?
+
+#################################################################################
+set(CTEST_BUILD_NAME "Win32")
+set(OPT "-DGMSH_EXTRA_VERSION=${EXTRA_VERSION}")
+set(OPT "${OPT} -DCMAKE_PREFIX_PATH:path=/usr/local/med;/usr/local/opencascade;/usr/local;/usr/i686-w64-mingw32/sys-root/mingw")
+set(OPT "${OPT} -DCMAKE_C_COMPILER=/usr/bin/i686-w64-mingw32-gcc.exe")
+set(OPT "${OPT} -DCMAKE_CXX_COMPILER=/usr/bin/i686-w64-mingw32-g++.exe")
+set(OPT "${OPT} -DCMAKE_Fortran_COMPILER=/usr/bin/i686-w64-mingw32-gfortran.exe")
+set(OPT "${OPT} -DPETSC_ARCH=win32_complex_umfpack")
+set(OPT "${OPT} -DPETSC_DIR=$ENV{HOME}/src/petsc-3.0.0-p12")
+set(OPT "${OPT} -DSLEPC_DIR=$ENV{HOME}/src/slepc-3.0.0-p7")
+set(CTEST_BUILD_OPTIONS ${OPT})
+include(gmsh.ctest)
+upload_package(${WEB_BIN} Win "" .zip .zip)
diff --git a/utils/nightly/gmsh_win_nightly.bat b/utils/nightly/gmsh_win_nightly.bat
new file mode 100755
index 0000000000..911aa46457
--- /dev/null
+++ b/utils/nightly/gmsh_win_nightly.bat
@@ -0,0 +1,6 @@
+@echo off
+
+C:
+chdir C:\cygwin\bin
+
+bash --login -c "cd ${HOME}/src/gmsh/utils/nightly && ctest -S gmsh_win_nightly.ctest"
diff --git a/utils/nightly/gmsh_win_nightly.ctest b/utils/nightly/gmsh_win_nightly.ctest
new file mode 100644
index 0000000000..b4b6eeaa9e
--- /dev/null
+++ b/utils/nightly/gmsh_win_nightly.ctest
@@ -0,0 +1,9 @@
+# Gmsh - Copyright (C) 1997-2012 C. Geuzaine, J.-F. Remacle
+#
+# See the LICENSE.txt file for license information. Please report all
+# bugs and problems to <gmsh@geuz.org>.
+
+set(CTEST_NIGHTLY_START_TIME "00:00:00 UTC")
+set(CDASH_MODEL "Nightly")
+set(EXTRA_VERSION "-svn")
+include(gmsh_win.ctest)
-- 
GitLab