]> Creatis software - creaToolsTools.git/blob - ctest/creatools-linux-osx.ctest
Windows installers , Linux bbtk compilation
[creaToolsTools.git] / ctest / creatools-linux-osx.ctest
1 # ---------------------------------------------------------------------
2 #
3 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image 
4 #                        pour la Santé)
5 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
6 #
7 #  This software is governed by the CeCILL-B license under French law and 
8 #  abiding by the rules of distribution of free software. You can  use, 
9 #  modify and/ or redistribute the software under the terms of the CeCILL-B 
10 #  license as circulated by CEA, CNRS and INRIA at the following URL 
11 #  http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html 
12 #  or in the file LICENSE.txt.
13 #
14 #  As a counterpart to the access to the source code and  rights to copy,
15 #  modify and redistribute granted by the license, users are provided only
16 #  with a limited warranty  and the software's author,  the holder of the
17 #  economic rights,  and the successive licensors  have only  limited
18 #  liability. 
19 #
20 #  The fact that you are presently reading this means that you have had
21 #  knowledge of the CeCILL-B license and that you accept its terms.
22 # ------------------------------------------------------------------------ */  
23
24
25 cmake_minimum_required(VERSION 2.6)
26
27 #################################################################
28 # LG+SV 30/01/08
29 # To use it :
30 # > ctest -S creatools-linux.ctest,PROJECT [-V|-VV] 
31 # where PROJECT is the name of the project to build and test
32 # e.g. crea, bbtk, creaImageIO, etc.
33 # add -V or -VV tu run in verbose or extra-verbose mode
34 #################################################################
35
36 #################################################################
37 if(NOT CTEST_SCRIPT_ARG)
38 message(FATAL_ERROR "You must pass the name of the project to test !")
39 endif(NOT CTEST_SCRIPT_ARG)
40 set(project_name ${CTEST_SCRIPT_ARG})
41 #################################################################
42
43 #################################################################
44 ## MANDATORY 
45 ##  You MUST modify the following lines, according to what you use.
46
47 # The name of your machine
48 set(CTEST_SITE "IV-SV-268")
49
50 # The architecture of your system
51 set(arch "ubuntu-8.10-gcc4.3.2")
52
53 # The type of build (as specified in the CMakeCache created)
54 set(buildtype "release")
55
56 #################################################################
57
58 #################################################################
59 ## MAY BE CHANGED : 
60 set(CTEST_DASHBOARD_ROOT "$ENV{HOME}/dashboards")
61 set(MODEL Experimental)
62 set(NUMBER_OF_CPU 4)
63 set(CMakeCacheFile "${project_name}-${buildtype}-CMakeCache.txt")
64 #################################################################
65
66 #################################################################
67 ## The following lines must NOT be modified!
68 ## NOTHING FOR USER BELOW
69 ## NO RATS ALLOWED!
70 ## HANDS OFF!
71 ## ;-)
72
73
74 #set(CTEST_SITE "$ENV{HOSTNAME}")
75 #MESSAGE(FATAL_ERROR $ENV{HOSTNAME})
76 set(CTEST_BUILD_NAME "${project_name}-${CTEST_SITE}-${arch}-${buildtype}")
77
78 set(source_dir ${project_name})
79 #set(extra_source_dir "VTKData")
80 set(build_dir "${project_name}-${buildtype}")
81 set(CTEST_TEST_TIMEOUT 140) # 70 seconds. 70 seconds is probably not enough when coverage is ON.
82
83 set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
84 set(CTEST_BUILD_COMMAND "make -j${NUMBER_OF_CPU}")
85
86
87 set(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}")
88 set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${source_dir}")
89 set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${build_dir}")
90
91 set(CTEST_COVERAGE_COMMAND "/usr/bin/gcov") # REQUIRED with new ctest script style.
92
93 # --coverage: -fprofile-arcs -ftest-coverage (when compiling)
94 # --coverage: -lgcov (when linking)
95
96 ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
97
98 # Common C/C++ flags:
99 set(advanced_flags)
100 #set(advanced_flags"-Wpointer-arith -Winvalid-pch -Wcast-align -Wwrite-strings -fstack-protector-all -D_FORTIFY_SOURCE=2 -Wconversion")
101
102 set(cov_options "-fprofile-arcs -ftest-coverage")
103
104 set(common_flags "-fdiagnostics-show-option -Wall -Wextra -Wshadow ${advanced_flags} ${cov_options}")
105
106 # C specific flags:
107 set(advanced_c_flags)
108 #set(advanced_c_flags "-Wtraditional-conversion")
109
110 # C++ specific flags:
111 set(advanced_cxx_flags)
112 #set(advanced_cxx_flags "-Wstrict-null-sentinel -Wsign-conversion -Wsign-promo")
113
114 #MESSAGE(STATUS ${CTEST_SCRIPT_DIRECTORY})
115
116 configure_file( 
117   ${CTEST_SCRIPT_DIRECTORY}/${CMakeCacheFile}
118   ${CTEST_BINARY_DIRECTORY}/CMakeCache.txt 
119   COPY_ONLY)
120
121 # Write initial cache.
122 #file(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" "
123 #MAKECOMMAND:STRING=make -j3 -k
124 #CMAKE_CXX_FLAGS:STRING=${common_flags} ${advanced_cxx_flags} -Woverloaded-virtual
125 #CMAKE_CXX_FLAGS_DEBUG:STRING=-O0 -ggdb
126 #CMAKE_C_FLAGS:STRING=${common_flags} ${advanced_c_flags}
127 #CMAKE_C_FLAGS_DEBUG:STRING=-O0 -ggdb
128 #CMAKE_EXE_LINKER_FLAGS:STRING=${cov_options}
129 #CMAKE_SHARED_LINKER_FLAGS:STRING=${cov_options}
130 #CMAKE_BUILD_TYPE:STRING=Debug 
131 #BUILD_SHARED_LIBS:BOOL=ON
132 #VTK_DEBUG_LEAKS:BOOL=ON
133 #BUILD_DOCUMENTATION:BOOL=ON
134 #BUILD_EXAMPLES:BOOL=ON
135 #JAVA_AWT_INCLUDE_PATH:PATH=/usr/lib/jvm/java-6-sun/include
136 #JAVA_AWT_LIBRARY:FILEPATH=/usr/lib/jvm/java-6-sun/jre/lib/i386/libjawt.so
137 #JAVA_INCLUDE_PATH:PATH=/usr/lib/jvm/java-6-sun/include
138 #JAVA_INCLUDE_PATH2:PATH=/usr/lib/jvm/java-6-sun/include/linux
139 #VTK_USE_BOOST:BOOL=ON
140 # GL2PS test broken
141 #VTK_USE_GL2PS:BOOL=OFF
142 #VTK_WRAP_JAVA:BOOL=ON
143 #VTK_WRAP_PYTHON:BOOL=ON
144 #VTK_WRAP_TCL:BOOL=ON
145 #VTK_USE_GUISUPPORT:BOOL=ON
146 #VTK_USE_QVTK:BOOL=ON
147 #DESIRED_QT_VERSION:STRING=4
148 #VTK_USE_ODBC:BOOL=ON
149 #ODBC_INCLUDE_DIRECTORIES:PATH=/usr/include
150 #ODBC_LIBRARY:FILEPATH=/usr/lib/libodbc.so
151 #VTK_USE_MYSQL:BOOL=ON
152 #VTK_USE_POSTGRES:BOOL=ON
153 #VTK_LEGACY_REMOVE:BOOL=ON
154 #")
155
156 set(CTEST_UPDATE_COMMAND "cvs")
157
158 # set any extra directories to do an update on
159 if(NOT EXISTS "${CTEST_DASHBOARD_ROOT}/${source_dir}")
160   message("Initial checkout of ${project_name}")
161   execute_process(
162     COMMAND "${CTEST_UPDATE_COMMAND}" -q -z3 co ${project_name}
163     WORKING_DIRECTORY "${CTEST_DASHBOARD_ROOT}"
164     )
165 else(NOT EXISTS "${CTEST_DASHBOARD_ROOT}/${source_dir}")
166  execute_process(
167   COMMAND "${CTEST_UPDATE_COMMAND}" -q -z3 up "-PdA"
168   WORKING_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${source_dir}"
169   )
170 endif(NOT EXISTS "${CTEST_DASHBOARD_ROOT}/${source_dir}")
171
172 ctest_start(${MODEL})
173 ctest_update(SOURCE "${CTEST_SOURCE_DIRECTORY}")
174 ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}")
175 ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}")
176 ctest_build(BUILD "${CTEST_BINARY_DIRECTORY}")
177
178 # save LD_LIBRARY_PATH
179 #set(saved_ld_library_path "$ENV{LD_LIBRARY_PATH}")
180
181 # Change it so that JavaRegression test can pass.
182 #set(ENV{LD_LIBRARY_PATH} "/usr/lib/jvm/java-6-sun/jre/lib/i386/xawt:${saved_ld_libray_path}")
183 #ctest_test(BUILD "${CTEST_BINARY_DIRECTORY}")
184 #ctest_coverage(BUILD "${CTEST_BINARY_DIRECTORY}")
185 # restore LD_LIBRARY_PATH
186 #set(ENV{LD_LIBRARY_PATH} "${saved_ld_library_path}")
187
188 #ctest_memcheck(BUILD "${CTEST_BINARY_DIRECTORY}")
189 ctest_submit()