Création d'un compte pour un collaborateur extérieur au laboratoire depuis l'intranet ICube : https://intranet.icube.unistra.fr/fr/labs/member/profile

skeleton_apps.sh 12.7 KB
Newer Older
1
2
3
#!/bin/bash

if test $# -lt 1; then
Sylvain Thery's avatar
Sylvain Thery committed
4
	echo $0 application_directory [src_files]
5
6
7
8
	exit 2
fi

if test -d $PWD/$1; then
Sylvain Thery's avatar
Sylvain Thery committed
9
	echo Directory $1 already exist
10
11
12
	exit 3
fi

Sylvain Thery's avatar
Sylvain Thery committed
13
14
echo "Warning do not forget to check the CGoGN_ROOT_DIR variable (ccmake)"

15
16
apps=$1

17
18
19
20
21
22
23
24
25
26
27
28
29
30
#create a string with first letter capitalize (${apps^} does not work on osX !
apps_maj=`echo $1 | awk '
BEGIN { upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        lower = "abcdefghijklmnopqrstuvwxyz"
}
{
	FIRSTCHAR = substr($1, 1, 1)
	if (CHAR = index(lower, FIRSTCHAR))
		$1 = substr(upper, CHAR, 1) substr($1, 2)
	print $0
}' `



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
mkdir $apps
cd $apps


sources=\$\{CMAKE_SOURCE_DIR\}/$1.cpp
touch $1.cpp
shift
while test $# -ge 1; do
	touch $1
	sources=`echo $sources " " \$\{CMAKE_SOURCE_DIR\}/$1`
	shift
done



mkdir bin
mkdir build
mkdir Release
mkdir Debug

echo "cmake_minimum_required(VERSION 2.8)" > CMakeLists.txt
echo ""  >> CMakeLists.txt
echo project\( $apps \)   >> CMakeLists.txt
echo ""  >> CMakeLists.txt
Sylvain Thery's avatar
Sylvain Thery committed
55
echo SET\(CGoGN_ROOT_DIR \$\{CMAKE_SOURCE_DIR\}/../../CGoGN CACHE STRING \"CGoGN root dir\"\)   >> CMakeLists.txt
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
echo include\(\$\{CGoGN_ROOT_DIR\}/apps_cmake.txt\)   >> CMakeLists.txt
echo ""  >> CMakeLists.txt
echo add_subdirectory\(\$\{CMAKE_SOURCE_DIR\}/Release Release\)  >> CMakeLists.txt
echo IF \(NOT WIN32\)  >> CMakeLists.txt
echo "	" add_subdirectory\(\$\{CMAKE_SOURCE_DIR\}/Debug Debug\)  >> CMakeLists.txt
echo ENDIF \(NOT WIN32\)  >> CMakeLists.txt



cd Debug
echo "cmake_minimum_required(VERSION 2.8)" > CMakeLists.txt
echo ""  >> CMakeLists.txt
echo SET\(CMAKE_BUILD_TYPE Debug\)   >> CMakeLists.txt
echo ""  >> CMakeLists.txt
echo include_directories\(   >> CMakeLists.txt
echo "	" \$\{CGoGN_ROOT_DIR\}/include	   >> CMakeLists.txt	
echo "	" \$\{COMMON_INCLUDES\}				   >> CMakeLists.txt
echo "	" \$\{CMAKE_CURRENT_SOURCE_DIR\}		   >> CMakeLists.txt
echo "	" \$\{CMAKE_CURRENT_BINARY_DIR\}		   >> CMakeLists.txt
echo \)   >> CMakeLists.txt
echo ""  >> CMakeLists.txt
echo link_directories\( \$\{CGoGN_ROOT_DIR\}/lib/Debug/ \$\{CGoGN_ROOT_DIR\}/lib/Release \$\{Boost_LIBRARY_DIRS\}\)   >> CMakeLists.txt
echo ""  >> CMakeLists.txt
echo QT4_WRAP_UI\( ${apps}_ui \$\{CMAKE_SOURCE_DIR\}/${apps}.ui \)  >> CMakeLists.txt
echo QT4_WRAP_CPP\( ${apps}_moc \$\{CMAKE_SOURCE_DIR\}/${apps}.h \)  >> CMakeLists.txt
Sylvain Thery's avatar
Sylvain Thery committed
81
echo ""  >> CMakeLists.txt
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
echo add_executable\( ${apps}D $sources >> CMakeLists.txt
echo "	" \$\{${apps}_moc\}  >> CMakeLists.txt
echo "	" \$\{${apps}_ui\} \)  >> CMakeLists.txt
echo ""  >> CMakeLists.txt
echo target_link_libraries\( ${apps}D \$\{CGoGN_LIBS_D\} \$\{COMMON_LIBS\}\)   >> CMakeLists.txt


cd ../Release
echo "cmake_minimum_required(VERSION 2.8)" > CMakeLists.txt
echo ""  >> CMakeLists.txt
echo SET\(CMAKE_BUILD_TYPE Release\)   >> CMakeLists.txt
echo ""  >> CMakeLists.txt
echo include_directories\(   >> CMakeLists.txt
echo "	" \$\{CGoGN_ROOT_DIR\}/include	   >> CMakeLists.txt	
echo "	" \$\{COMMON_INCLUDES\}				   >> CMakeLists.txt
echo "	" \$\{CMAKE_CURRENT_SOURCE_DIR\}		   >> CMakeLists.txt
echo "	" \$\{CMAKE_CURRENT_BINARY_DIR\}		   >> CMakeLists.txt
echo \)   >> CMakeLists.txt
echo ""  >> CMakeLists.txt
echo link_directories\( \$\{CGoGN_ROOT_DIR\}/lib/Release \$\{Boost_LIBRARY_DIRS\}\)   >> CMakeLists.txt
echo ""  >> CMakeLists.txt
echo QT4_WRAP_UI\( ${apps}_ui \$\{CMAKE_SOURCE_DIR\}/${apps}.ui \)  >> CMakeLists.txt
echo QT4_WRAP_CPP\( ${apps}_moc \$\{CMAKE_SOURCE_DIR\}/${apps}.h \)  >> CMakeLists.txt
Sylvain Thery's avatar
Sylvain Thery committed
105
echo ""  >> CMakeLists.txt
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
echo add_executable\( ${apps} $sources >> CMakeLists.txt
echo "	" \$\{${apps}_moc\}  >> CMakeLists.txt
echo "	" \$\{${apps}_ui\} \)  >> CMakeLists.txt
echo ""  >> CMakeLists.txt
echo target_link_libraries\( $apps \$\{CGoGN_LIBS_R\} \$\{COMMON_LIBS\}\)   >> CMakeLists.txt

cd ..

echo "/*******************************************************************************" > ${apps}.h
echo "* CGoGN: Combinatorial and Geometric modeling with Generic N-dimensional Maps  *" >> ${apps}.h
echo "* version 0.1                                                                  *" >> ${apps}.h
echo "* Copyright (C) 2009-2011, IGG Team, LSIIT, University of Strasbourg           *" >> ${apps}.h
echo "*                                                                              *" >> ${apps}.h
echo "* This library is free software; you can redistribute it and/or modify it      *" >> ${apps}.h
echo "* under the terms of the GNU Lesser General Public License as published by the *" >> ${apps}.h
echo "* Free Software Foundation; either version 2.1 of the License, or (at your     *" >> ${apps}.h
echo "* option) any later version.                                                   *" >> ${apps}.h
echo "*                                                                              *" >> ${apps}.h
echo "* This library is distributed in the hope that it will be useful, but WITHOUT  *" >> ${apps}.h
echo "* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or        *" >> ${apps}.h
echo "* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License  *" >> ${apps}.h
echo "* for more details.                                                            *" >> ${apps}.h
echo "*                                                                              *" >> ${apps}.h
echo "* You should have received a copy of the GNU Lesser General Public License     *" >> ${apps}.h
echo "* along with this library; if not, write to the Free Software Foundation,      *" >> ${apps}.h
echo "* Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.           *" >> ${apps}.h
echo "*                                                                              *" >> ${apps}.h
echo "* Web site: http://cgogn.u-strasbg.fr/                                         *" >> ${apps}.h
echo "* Contact information: cgogn@unistra.fr                                        *" >> ${apps}.h
echo "*                                                                              *" >> ${apps}.h
echo "*******************************************************************************/" >> ${apps}.h
echo \#ifndef _${apps}_ >> ${apps}.h
echo \#define _${apps}_ >> ${apps}.h
echo \#include \"Utils/Qt/qtSimple.h\" >> ${apps}.h
echo \#include \"ui_${apps}.h\" >> ${apps}.h
echo \#include \"Utils/Qt/qtui.h\" >> ${apps}.h
echo "" >> ${apps}.h
echo "using namespace CGoGN;" >> ${apps}.h
echo "" >> ${apps}.h
145
echo "class $apps_maj: public Utils::QT::SimpleQT" >> ${apps}.h
146
147
148
149
echo "{" >> ${apps}.h
echo "	Q_OBJECT" >> ${apps}.h
echo "public:" >> ${apps}.h
echo "" >> ${apps}.h
150
echo "	$apps_maj() {}" >> ${apps}.h
Sylvain Thery's avatar
Sylvain Thery committed
151
echo "" >> ${apps}.h
152
echo "	~$apps_maj() {}" >> ${apps}.h
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
echo "" >> ${apps}.h
echo "	void cb_redraw();" >> ${apps}.h
echo "" >> ${apps}.h
echo "	void cb_initGL();" >> ${apps}.h
echo "" >> ${apps}.h
echo "	//void cb_mousePress(int button, int x, int y);" >> ${apps}.h
echo "" >> ${apps}.h
echo "	//void cb_mouseRelease(int button, int x, int y);" >> ${apps}.h
echo "" >> ${apps}.h
echo "	//void cb_mouseClick(int button, int x, int y);" >> ${apps}.h
echo "" >> ${apps}.h
echo "	//void cb_mouseMove(int buttons, int x, int y);" >> ${apps}.h
echo "" >> ${apps}.h
echo "	//void cb_wheelEvent(int delta, int x, int y);" >> ${apps}.h
echo "" >> ${apps}.h
echo "	//void cb_keyPress(int code);" >> ${apps}.h
echo "" >> ${apps}.h
echo "	//void cb_keyRelease(int code);" >> ${apps}.h
echo "" >> ${apps}.h
echo "public slots:" >> ${apps}.h
echo "};" >> ${apps}.h
echo "" >> ${apps}.h
echo "#endif" >> ${apps}.h



echo "/*******************************************************************************" > ${apps}.cpp
echo "* CGoGN: Combinatorial and Geometric modeling with Generic N-dimensional Maps  *" >> ${apps}.cpp
echo "* version 0.1                                                                  *" >> ${apps}.cpp
echo "* Copyright (C) 2009-2011, IGG Team, LSIIT, University of Strasbourg           *" >> ${apps}.cpp
echo "*                                                                              *" >> ${apps}.cpp
echo "* This library is free software; you can redistribute it and/or modify it      *" >> ${apps}.cpp
echo "* under the terms of the GNU Lesser General Public License as published by the *" >> ${apps}.cpp
echo "* Free Software Foundation; either version 2.1 of the License, or (at your     *" >> ${apps}.cpp
echo "* option) any later version.                                                   *" >> ${apps}.cpp
echo "*                                                                              *" >> ${apps}.cpp
echo "* This library is distributed in the hope that it will be useful, but WITHOUT  *" >> ${apps}.cpp
echo "* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or        *" >> ${apps}.cpp
echo "* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License  *" >> ${apps}.cpp
echo "* for more details.                                                            *" >> ${apps}.cpp
echo "*                                                                              *" >> ${apps}.cpp
echo "* You should have received a copy of the GNU Lesser General Public License     *" >> ${apps}.cpp
echo "* along with this library; if not, write to the Free Software Foundation,      *" >> ${apps}.cpp
echo "* Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301 USA.           *" >> ${apps}.cpp
echo "*                                                                              *" >> ${apps}.cpp
echo "* Web site: http://cgogn.u-strasbg.fr/                                         *" >> ${apps}.cpp
echo "* Contact information: cgogn@unistra.fr                                        *" >> ${apps}.cpp
echo "*                                                                              *" >> ${apps}.cpp
echo "*******************************************************************************/" >> ${apps}.cpp
echo "" >> ${apps}.cpp
echo \#include \"${apps}.h\" >> ${apps}.cpp
echo "" >> ${apps}.cpp
205
echo "void $apps_maj::cb_initGL()" >> ${apps}.cpp
206
207
echo "{}" >> ${apps}.cpp
echo "" >> ${apps}.cpp
208
echo "void $apps_maj::cb_redraw()" >> ${apps}.cpp
209
210
211
212
213
214
215
echo "{}" >> ${apps}.cpp
echo "" >> ${apps}.cpp

echo "int main(int argc, char **argv)" >> ${apps}.cpp
echo "{" >> ${apps}.cpp
echo "" >> ${apps}.cpp
echo "	QApplication app(argc, argv);" >> ${apps}.cpp
216
217
echo "	$apps_maj sqt;" >> ${apps}.cpp
echo "	"sqt.setWindowTitle\(\"$apps_maj\"\)\; >> ${apps}.cpp
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
echo "" >> ${apps}.cpp
echo "	Utils::QT::uiDockInterface dock;" >> ${apps}.cpp
echo "	sqt.setDock(&dock);" >> ${apps}.cpp
echo "" >> ${apps}.cpp

echo "	sqt.show();" >> ${apps}.cpp
echo "" >> ${apps}.cpp
echo "	return app.exec();" >> ${apps}.cpp
echo "}" >> ${apps}.cpp



echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > ${apps}.ui
echo "<ui version=\"4.0\">" >> ${apps}.ui
echo " <class>DockWidget</class>" >> ${apps}.ui
echo " <widget class=\"QDockWidget\" name=\"DockWidget\">" >> ${apps}.ui
echo "  <property name=\"geometry\">" >> ${apps}.ui
echo "   <rect>" >> ${apps}.ui
echo "	<x>0</x>" >> ${apps}.ui
echo "	<y>0</y>" >> ${apps}.ui
echo "	<width>144</width>" >> ${apps}.ui
echo "	<height>258</height>" >> ${apps}.ui
echo "   </rect>" >> ${apps}.ui
echo "  </property>" >> ${apps}.ui
echo "  <property name=\"sizePolicy\">" >> ${apps}.ui
echo "   <sizepolicy hsizetype=\"Expanding\" vsizetype=\"Expanding\">" >> ${apps}.ui
echo "	<horstretch>0</horstretch>" >> ${apps}.ui
echo "	<verstretch>0</verstretch>" >> ${apps}.ui
echo "   </sizepolicy>" >> ${apps}.ui
echo "  </property>" >> ${apps}.ui
echo "  <property name=\"cursor\">" >> ${apps}.ui
echo "   <cursorShape>PointingHandCursor</cursorShape>" >> ${apps}.ui
echo "  </property>" >> ${apps}.ui
echo "  <property name=\"floating\">" >> ${apps}.ui
echo "   <bool>false</bool>" >> ${apps}.ui
echo "  </property>" >> ${apps}.ui
echo "  <property name=\"features\">" >> ${apps}.ui
echo "   <set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>" >> ${apps}.ui
echo "  </property>" >> ${apps}.ui
echo "  <property name=\"allowedAreas\">" >> ${apps}.ui
Sylvain Thery's avatar
Sylvain Thery committed
258
echo "   <set>Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea</set>" >> ${apps}.ui
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
echo "  </property>" >> ${apps}.ui
echo "  <property name=\"windowTitle\">" >> ${apps}.ui
echo "   <string>Control</string>" >> ${apps}.ui
echo "  </property>" >> ${apps}.ui
echo "  <widget class=\"QWidget\" name=\"dockWidgetContents\">" >> ${apps}.ui
echo "   <property name=\"sizePolicy\">" >> ${apps}.ui
echo "	<sizepolicy hsizetype=\"Expanding\" vsizetype=\"Expanding\">" >> ${apps}.ui
echo "	 <horstretch>0</horstretch>" >> ${apps}.ui
echo "	 <verstretch>0</verstretch>" >> ${apps}.ui
echo "	</sizepolicy>" >> ${apps}.ui
echo "   </property>" >> ${apps}.ui
echo "   <property name=\"minimumSize\">" >> ${apps}.ui
echo "	<size>" >> ${apps}.ui
echo "	 <width>122</width>" >> ${apps}.ui
echo "	 <height>0</height>" >> ${apps}.ui
echo "	</size>" >> ${apps}.ui
echo "   </property>" >> ${apps}.ui
echo "  </widget>" >> ${apps}.ui
echo " </widget>" >> ${apps}.ui
echo " <resources/>" >> ${apps}.ui
echo " <connections/>" >> ${apps}.ui
echo "</ui>" >> ${apps}.ui