Resource Menu


SPIS Compilation and Settings Page

The compilation of the whole SPIS system has been deeply simplified since the version 4.3 where an Apache Ant based compilation process has been introduced. This Ant based script perform the packaging of releases as well as the compilation it-self.

Please take care that SPIS is based on the gathering of several sub-components, that can be developed, maintained and compiled individually. For embedded SPIS components, like the simulation core SPIS-NUM or the mesh library JFreeMesh, their compilation can be performed through the main Ant file in SPI-UI. Theses embedded components are fully Java based and binaries are normally supported "as-it" on all platform running a JRE 1.6 and higher.

For external components stored in the ThirdPart directory, like VTK or GMSH, separated and specific compilation process are needed and should be done separately. Please notice also, that some of these components are native and their compilation is platform dependent.

Main SPIS Ant file

The main Ant process is defined in the $SPIS_ROOT/SpisUI directory in the build.xml and build-config.properties files. This compilation requires to have Apache Ant previously installed on your system.

The first one is a standard Ant file. The second one is an extra configuration file for the packaging of releases only and does not require modification for a basic compilation.

Under the $SPIS_ROOT/SpisUI directory, type the following command:

ant

The default target is the information one and will list all available targets, as follow:

raminagrobis:SpisUI juju$ ant
Buildfile: /Users/juju/Boulot/Projects/NewSPIS/DevSince20090906/SpisUI/build.xml

help: [echo] SPIS-UI Ant based compilation script [echo] - Author: Julien Forest (Artenum) [echo] --------------------------------------- [echo] Ant task available: [echo] - build-auxlibs : build the auxiliary librairies (see AuxLib) and install them into SPIS-UI [echo] - build-spisnum : build the SpisNum simulation kernel [echo] - clean-jython : remove all Jython $py.class files [echo] - clean-alljars : clean all jars [echo] - build-all : compile and install all jars [echo] - release : generate the release [echo] - print-paths : print the configuration paths [echo] - spis-num-release : generate a specific packaging of SPIS-NUM (check the version number before to proceed). [echo] - spis-num-ESD-release : generate a specific packaging of SPIS-NUM for ESD models (compile num ESD and check version nb before to proceed). [echo] - spis-ui-release : generate a specific packaging of SPIS-UI (check the version number before to proceed). [echo] - doc-release : generate a specific packaging of documentation (check the version number before to proceed). [echo] - package-OSX-thirdPart : package the third party components for Mac OSX (Intel) platform. [echo] - package-Linux64-thirdPart : package the third party components for Linux 64 bits (Intel) [echo] - zip-thirdpart : zip, date the third parties and compute the MD5. [echo] - data-release : package the defaults data, templates, examples and tests. [echo] - OSX-bin-shell-scripts : copy and update the launching script in the Bin directory at the SPIS-ROOT point [echo] - Linux-bin-shell-scripts : copy and update the launching script in the Bin directory at the SPIS-ROOT point [echo] - generate-release-header : generate the release header (i.e show all source version ticket numbers) [echo] ---------------------------------------

BUILD SUCCESSFUL Total time: 1 second

For a basic compilation of Java components, you only need to type:

ant build-all

Take that, if you want to use non-CORE version of SpisNum, this command will only compile the SPIS-NUM CORE package and not the specific ones (e.g SPIS-ESD). See specific targets.

Settings of configuration files

One of the major difficulties in the SPIS settings are the environment variables and path to external tools settings. These differs on the targeted platform. However, at least under UNIX based systems, they have been simplified and reduced into two key files.

  • In the $SPIS_ROOT/BinXX, where XX is the selected platform, the spis-ui.properties likes files, define all environment variables and path being set before the JVM launching. The Java classpath, the path to VTK and the JRE are defined in these files. They are key-value based files, written in bash shell. They can be edited manually as well as using the Artenum's Properties Editor as follow, for instance:
./runPropertyEditor.sh ./spis-ui.properties.V2

Here an example of settings using the Artenum's Properties Editor.

NB: Please type enter after each modified value to validate the modification.

  • The $SPIS_ROOT/Bin/config.py Jython file set the path defined at the runtime, like the path to Gmsh.

Compilation of external components in the ThirdPart

The compilation of native and external components gathered in the $SPIS_ROOT/ThirdPart directory is the most tricky part. We strongly recommend to see the related projects' pages for detailed documentation. The major issues are:

Information compliant with SPIS-CORE version 4.3.1.



Last edited by julien at Feb 4, 2011 10:08 AM - Edit content - View history - View source