moved utilities and contribution in branchez

git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@2183 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
liefooga 2011-03-11 13:58:48 +00:00
commit 8280cf082b
1346 changed files with 0 additions and 0 deletions

Binary file not shown.

View file

@ -0,0 +1,72 @@
######################################################################################
### 0) Include the install configuration file where are defined the main variables
######################################################################################
INCLUDE(${CMAKE_SOURCE_DIR}/install.cmake)
######################################################################################
######################################################################################
### 1) Set your application properties
######################################################################################
# Define your project name
PROJECT(mySimpleApplication)
######################################################################################
######################################################################################
### 2) Include the sources
######################################################################################
INCLUDE_DIRECTORIES(${PARADISEO_EO_SRC_DIR}/src
${PARADISEO_MO_SRC_DIR}/src
${PARADISEO_MOEO_SRC_DIR}/src
${PARADISEO_PEO_SRC_DIR}/src)
######################################################################################
######################################################################################
### 3) Specify where CMake can find the libraries
######################################################################################
# Link with the EO library directory, only if you need it
LINK_DIRECTORIES(${PARADISEO_EO_BIN_DIR}/lib)
# Link with the MOEO library directory, only if you need it
LINK_DIRECTORIES(${PARADISEO_MOEO_BIN_DIR}/lib)
# Link with the PEO library directory, only if you need it
LINK_DIRECTORIES(${PARADISEO_PEO_BIN_DIR}/lib)
######################################################################################
######################################################################################
### 4) Define your target: just an executable here
######################################################################################
ADD_EXECUTABLE(mySimpleApplication mySimpleApplication.cpp)
######################################################################################
######################################################################################
### 5) Link the librairies for your executable
######################################################################################
# Only if you need to link libraries
TARGET_LINK_LIBRARIES(mySimpleApplication eo eoutils)
######################################################################################

View file

@ -0,0 +1,82 @@
==========================================================================================
INFORMATION
==========================================================================================
PARADISEO (PARallel and DIStributed Evolving Objects) is a white-box object-oriented
framework dedicated to the flexible design of metaheursitics.
This package is especially designed to help anyone who uses ParadisEO to build his
own application.
==========================================================================================
RELEASE
==========================================================================================
The current release of the "mySimpleApplication" package is 1.0.
==========================================================================================
WEBSITE
==========================================================================================
Please visit our website at http://paradiseo.gforge.inria.fr.
==========================================================================================
BUGS
==========================================================================================
You can find the ParadisEO's bug tracker at:
http://gforge.inria.fr/tracker/?atid=663&group_id=145&func=browse
==========================================================================================
CONTACT
==========================================================================================
For any question or for help, please write us at: paradiseo-help@lists.gforge.inria.fr.
==========================================================================================
DEPENDENCIES
==========================================================================================
ParadisEO uses EO, a templates-based, ANSI-C++ compliant evolutionary computation library.
It contains classes for almost any kind of evolutionary computation you might come up to - at
least for the ones we could think of.
EO Website:
http://eodev.sourceforge.net/.
EO is distributed under the GNU Lesser General Public License:
http://www.gnu.org/copyleft/lesser.html
==========================================================================================
LICENSE
==========================================================================================
ParadisEO is governed by the CeCILL license under French law and
abiding by the rules of distribution of free software. You can use,
modify and/ or redistribute the software under the terms of the CeCILL
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info".
As a counterpart to the access to the source code and rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors have only limited liability.
In this respect, the user's attention is drawn to the risks associated
with loading, using, modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean that it is complicated to manipulate, and that also
therefore means that it is reserved for developers and experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and, more generally, to use and operate it in the
same conditions as regards security.
The fact that you are presently reading this means that you have had
knowledge of the CeCILL license and that you accept its terms.

View file

@ -0,0 +1,326 @@
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
//
// 2005-12-01 ksc Initial release
//
-->
<html>
<head>
<title>Build My Simple Application</title>
<link rel='stylesheet' title="A Bit Modern" href='http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/inria.css' type='text/css' />
<script type="text/javascript">
<!-- //
browser_type = navigator.appName;
if (browser_type == "Microsoft Internet Explorer") {
document.write("<link href='http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/inria-ie.css' rel='stylesheet' type='text/css' />");
}
//-->
</script>
</head>
<body>
<!-- Logo -->
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td><a href="/"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/logo.png" border="0" alt="" width="198" height="52" /></a></td>
</tr>
</table>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td align="left" bgcolor="#E0E0E0" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/topleft.png" height="9" width="9" alt="" /></td>
<td bgcolor="#E0E0E0" width="30"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="30" height="1" alt="" /></td>
<td align="right" bgcolor="#E0E0E0" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/topright.png" height="9" width="9" alt="" /></td>
</tr>
<!-- Outer body row -->
<tr>
<td bgcolor="#E0E0E0"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="10" height="1" alt="" /></td>
<td valign="top" width="100%" bgcolor="#E0E0E0" >
<!-- Inner Tabs / Shell -->
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td align="left" bgcolor="#ffffff" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/topleft-inner.png" height="9" width="9" alt="" /></td>
<td bgcolor="#ffffff"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="1" height="1" alt="" /></td>
<td align="right" bgcolor="#ffffff" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/topright-inner.png" height="9" width="9" alt="" /></td>
</tr>
<tr>
<td bgcolor="#ffffff"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="10" height="1" alt="" /></td>
<td valign="top" width="100%" bgcolor="white">
<!-- -->
<!-- BODY -->
<!-- -->
<div id='head'>
<div id='logo'><img src="../img/paradisEO_small.png"/></div>
<div id='page-title'>Paradiseo</div>
<!--div id='page-subtitle'>BuildMySimpleApplication</div-->
<div id='page-actions'><ul><li class='browse'><a accesskey='' class='selflink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.BuildMySimpleApplication'>View</a>
</li><li class='edit'><a accesskey='e' rel='nofollow' class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.BuildMySimpleApplication?action=edit'>Edit</a>
</li><li class='diff'><a accesskey='h' rel='nofollow' class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.BuildMySimpleApplication?action=diff'>History</a>
</li><li class='upload'><a accesskey='ak_attach' rel='nofollow' class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.BuildMySimpleApplication?action=upload'>Attach</a>
</li><li class='print'><a accesskey='' rel='nofollow' class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.BuildMySimpleApplication?action=print'>Print</a>
</li></ul>
</div>
</div>
<div id='content'>
<div id='col-left'>
<!--PageLeftFmt-->
<div id='sidebar'><p class='sidehead'> <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Home'>Home</a></strong>
</p><ul><li> <a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.News'>&gt; News</a>
</li><li> <a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.AssociatedEvents'>&gt; Associated events</a>
</li></ul><p class='vspace sidehead'> <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Documentation'>Documentation</a></strong>
</p><ul><li><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.API'>&gt; API doc</a>
</li><li><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.DesignConcepts'>&gt; Design concepts</a>
</li><li><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Tutorials'>&gt; Tutorials</a>
</li><li><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.FAQ'>&gt; FAQ</a>
</li><li><a class='urllink' href='http://gforge.inria.fr/forum/?group_id=145' rel='nofollow'>&gt; Forum</a>
</li><li><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.MailingList'>&gt; Mailing lists</a>
</li><li><a class='urllink' href='http://gforge.inria.fr/tracker/?atid=663&amp;group_id=145&amp;func=browse' rel='nofollow'>&gt; Bug tracking</a>
</li></ul><p class='vspace sidehead'> <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Download'>Download</a></strong>
</p>
<p class='vspace sidehead'> <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Contributions.Index'>Contribution repository</a></strong>
</p>
<p class='vspace sidehead'> <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Publications'>Publi &amp; appli</a></strong>
</p>
<p class='vspace sidehead'> <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Team'>Team</a></strong>
</p>
<p class='vspace'><span style='display: none;'> <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Applications'>Applications</a></strong> </span>
<br /><span style='display: none;'> sidehead <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Features'>Features</a></strong> </span>
<br /><span style='display: none;'> sidehead <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.License'>License</a></strong> </span>
<br /><span style='display: none;'> sidehead<strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Contact'>Contact</a></strong> </span>
</p>
<p class='vspace' style='text-align: right;'> <span style='font-size:83%'><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Site.SideBar?action=edit'>edit</a></span>
</p>
</div>
<!--/PageLeftFmt-->
</div>
<div id='col-right'>
<!--PageText-->
<div id='wikitext'>
<h1><big>Build a simple application using <span class='wikiword'>ParadisEO</span></big></h1>
<h2><big>Introduction</big></h2>
<p>There are many steps required to produce a <span class='wikiword'>ParadisEO</span>-based program. As <span class='wikiword'>ParadisEO</span> is a C++ library, any "main" file containing the basic instructions of your program is expected to be first <strong>compiled</strong>. The way the program should be compiled depends on the environment. For example on Unix platforms, some "Makefiles" allow an automatic compilation of a C++ source file and the generation of the "makefiles" themselves is achieved by <a class='urllink' href='http://www.cmake.org/' rel='nofollow'>CMake</a>. <span class='wikiword'>CMake</span> manages the software compilation process and it can be used with several generators:
</p>
<div class='vspace'></div><dl><dd><ul><li><strong><span style='color: blue;'>Visual Studio 8 2005 </span></strong> (Win32 + Win64) projects
</li><li><strong><span style='color: blue;'>Visual Studio 7 .NET 2003 </span></strong> projects
</li><li><strong><span style='color: blue;'>Visual Studio 7 and 6</span></strong> projects
</li><li><strong><span style='color: blue;'><span class='wikiword'>NMake</span></span></strong> Makefiles
</li><li><strong><span style='color: blue;'><span class='wikiword'>MinGW</span></span></strong> Makefiles
</li><li><strong><span style='color: blue;'>Borland</span></strong> Makefiles
</li><li><strong><span style='color: blue;'><span class='wikiword'>KDevelop</span></span></strong> projects
</li><li><strong><span style='color: blue;'>Unix</span></strong> Makefiles
</li><li><strong><span style='color: blue;'>Xcode</span></strong> Projects
</li><li><strong><span style='color: blue;'>MSYS</span></strong> Makefiles
</li><li><strong><span style='color: blue;'><span class='wikiword'>WMake</span></span></strong> Makefiles
</li></ul></dd></dl><p class='vspace'>A package containing all the required files has been developped for any user who wants to build his own application easily. In this case, we suppose this application to be only made of a "main.cpp" file (no specific components). The content of the package is pre-filled so that a user has just to paste his algorithm in the cpp-file and change one variable.
</p>
<div class='vspace'></div><h2><big>"mySimpleApplication" package's content</big></h2>
<p>The package contains the following files:
</p>
<div class='vspace'></div><ul><li><strong>install.cmake</strong>: Contains variables that specify where <span class='wikiword'>ParadisEO</span> has been installed.
</li><li><strong>mySimpleApplication.cpp</strong> : A C++ main containing the algorithm
</li><li><strong>README</strong>: Contains basic information
</li><li><strong><span class='wikiword'>CMakeLists</span>.txt</strong>: The only <span class='wikiword'>CMake</span> configuration file
</li><li><strong>index.html</strong>: The content of the current web-page
</li></ul><p class='vspace'><span style='color: red;'><strong>It can be downloaded from </span><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Here'>here</a></strong>.
</p>
<div class='vspace'></div><h2><big>Adapt the package</big></h2>
<p>Here, we give the steps to custom the package for any application.
</p>
<p class='vspace'><em>Note: For further help about <span class='wikiword'>CMake</span>, see the <a class='urllink' href='http://www.cmake.org/HTML/Documentation.html' rel='nofollow'>CMake documentation</a></em>.
</p>
<p class='vspace'><br />
</p><div style='color: black; font-size: 8pt; background-color: #99CCFF;' >
<h3><ins>Step 1 : Develop your algorithm</ins></h3>
</div>
<p>You just have to edit the <strong><em>mySimpleApplication.cpp</em></strong> and implement your code.
</p>
<div class='vspace'></div><div style='color: black; font-size: 8pt; background-color: #CCFFCC;' >
<ol><li>include &lt;iostream&gt;
</li></ol><p>/// #include &lt; file &gt;
</p>
<p class='vspace'>/// Use functions from namespace std ?
<br />using namespace std;
</p>
<p class='vspace'>int main(int argc, char **argv)
<br />{
</p><pre> /// Your code ...
cout &lt;&lt; "I'm a simple application linked with <span class='wikiword'>ParadisEO</span>" &lt;&lt; endl ;
return 1;
</pre><p class='vspace'>}'
</p></div>
<p class='vspace'><br />
</p><div style='color: black; font-size: 8pt; background-color: #99CCFF;' >
<h3><ins>Step 2 : Change the <span class='wikiword'>ParadisEO</span>-path in "install.cmake"</ins></h3>
</div>
<p class='vspace'>When <span class='wikiword'>ParadisEO</span> has been configured in the standard way (the global package containing all the modules has been installed), just replace "myDirectory" by the absolute path to <span class='wikiword'>ParadisEO</span> the section n°1:
</p>
<div class='vspace'></div><div style='color: black; font-size: 8pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>SET(PARADISEO_DIR <strong>"myDirectory"</strong> CACHE PATH "<span class='wikiword'>ParadisEO</span> directory" FORCE)
</div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'>... replaced (for example) by:
</p>
<div class='vspace'></div><div style='color: black; font-size: 8pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>SET(PARADISEO_DIR <strong>"/home/john/paradiseo-ix86-1.0"</strong> CACHE PATH "<span class='wikiword'>ParadisEO</span> directory" FORCE)
</div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'><span style='color: red;'><strong>Warning: Under Windows, the path to <span class='wikiword'>ParadisEO</span> must be given with double-backslashes</strong>:</span>
</p><div style='color: black; font-size: 8pt; background-color: #ffcc33;' >
<p>SET(PARADISEO_DIR <strong>"E:<big>\\</big>soft<big>\\</big>paradiseo-ix86-1.0"</strong> CACHE PATH "<span class='wikiword'>ParadisEO</span> directory" FORCE)
</p></div>
<p class='vspace'><span style='color: green;'><strong>If you have simply installed <span class='wikiword'>ParadisEO</span> using the provided install script, go to the next step.</strong></span>
</p>
<p class='vspace'><strong><em>Advanced configuration</em></strong>: <br />
<br />If the modules of <span class='wikiword'>ParadisEO</span> have been deployed separately, the path to each module (EO, MO, MOEO and PEO) can also be specified. Here's an example for EO, <em>PARADISEO_EO_SRC_DIR</em> refers to the EO sources, <em>PARADISEO_EO_BIN_DIR</em> is the directory where EO has been compiled.
</p>
<div class='vspace'></div><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>SET(PARADISEO_EO_SRC_DIR "${PARADISEO_DIR}/paradiseo-eo" CACHE PATH
<dl><dd><dl><dd><dl><dd><dl><dd><dl><dd><div class='indent'>"<span class='wikiword'>ParadisEO</span>-EO source directory" FORCE)
</div></dd></dl></dd></dl></dd></dl></dd></dl></dd></dl></div><div class='indent'>SET(PARADISEO_EO_BIN_DIR "${PARADISEO_DIR/paradiseo-eo/build" CACHE PATH
<dl><dd><dl><dd><dl><dd><dl><dd><dl><dd><div class='indent'>"<span class='wikiword'>ParadisEO</span>-EO binary directory" FORCE)
</div></dd></dl></dd></dl></dd></dl></dd></dl></dd></dl></div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'>A third section is added to automatically set the flags required when using the package under Visual Studio 8. It has no effect for all the other cases.
</p>
<p class='vspace'><br />
</p><div style='color: black; font-size: 8pt; background-color: #99CCFF;' >
<h3><ins>Step 3 : Adapt the <span class='wikiword'>CMakeLists</span>.txt</ins></h3>
</div>
<div class='vspace'></div><ul><li>Give your project name in the section n°1 :
</li></ul><div class='vspace'></div><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>PROJECT(mySimpleApplication)
</div></dd></dl></dd></dl></dd></dl></div>
<div class='vspace'></div><ul><li>Specify the source directories to include
</li></ul><div class='vspace'></div><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>INCLUDE_DIRECTORIES(${PARADISEO_EO_SRC_DIR}/src
<dl><dd><dl><dd><dl><dd><dl><dd><dl><dd><dl><dd><dl><dd><dl><dd><div class='indent'>${PARADISEO_MO_SRC_DIR}/src
</div><div class='indent'>${PARADISEO_MOEO_SRC_DIR}/src
</div><div class='indent'>${PARADISEO_PEO_SRC_DIR}/src)
</div></dd></dl></dd></dl></dd></dl></dd></dl></dd></dl></dd></dl></dd></dl></dd></dl></div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'>For example, if you only use <span class='wikiword'>ParadisEO</span>-EO sources, just set:
</p><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>INCLUDE_DIRECTORIES(${PARADISEO_EO_SRC_DIR}/src
</div></dd></dl></dd></dl></dd></dl></div>
<div class='vspace'></div><ul><li>Specify where are the libraries (for the linker)
</li></ul><div class='vspace'></div><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>LINK_DIRECTORIES(${PARADISEO_EO_BIN_DIR}/lib)
</div><div class='indent'>LINK_DIRECTORIES(${PARADISEO_MOEO_BIN_DIR}/lib)
</div><div class='indent'>LINK_DIRECTORIES(${PARADISEO_PEO_BIN_DIR}/lib)
</div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'>For example, if you only use <span class='wikiword'>ParadisEO</span>-EO and <span class='wikiword'>ParadisEO</span>-MOEO libraries, just set:
</p><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>LINK_DIRECTORIES(${PARADISEO_EO_BIN_DIR}/lib)
</div><div class='indent'>LINK_DIRECTORIES(${PARADISEO_MOEO_BIN_DIR}/lib)
</div></dd></dl></dd></dl></dd></dl></div>
<div class='vspace'></div><ul><li>Define your executable: give the executable name + the name of the cpp file
</li></ul><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>ADD_EXECUTABLE(mySimpleApplication mySimpleApplication.cpp)
</div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'>Important: If you change the name of the cpp file "mySimpleApplication.cpp", don't forget to give the right name for the ADD_EXECUTABLE command.
</p>
<div class='vspace'></div><ul><li>Specify the libraries that should be linked to build your executable (for example, for Unix Makefiles, the option used to give the linked libraries is "-L &lt; a path to the lib&gt;")
</li></ul><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>TARGET_LINK_LIBRARIES(mySimpleApplication lib1 lib2 ...)
</div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'>An example using the "eo" and "eoutils" of <span class='wikiword'>ParadisEO</span>-EO is:
</p><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>TARGET_LINK_LIBRARIES(mySimpleApplication <strong>eo eoutils</strong>)
</div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'>Important: If you change the name of the executable (see a few lines above), don't forget to replace <strong><em>"mySimpleApplication</em></strong> " by the right name in:
</p>
<div class='vspace'></div><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>TARGET_LINK_LIBRARIES(<strong><em>mySimpleApplication</em></strong> eo eoutils)
</div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'><br />
</p><div style='color: black; font-size: 8pt; background-color: #99CCFF;' >
<h3><ins>Step 4 : Launch the build process and compile</ins></h3>
</div>
<p class='vspace'>There are two ways to build and compile your program:
</p><div class='indent'>- Compile it in the source directory, that means where your main cpp file is
</div><div class='indent'>- Compile it somewhere else in order to have on one hand the source files, on the other the rest (makefiles of configuration file, ".o" files, the executable itself). This way is called <strong><em> out-source-build</em></strong> and is highly recommended.
</div><p class='vspace'>Moreover, you should know in advance the kind of generator you want <span class='wikiword'>CMake</span> to use.
</p>
<p class='vspace'>For an "out-source-build", let's suppose your application's source file is located in <span style='color: green;'> <strong>/home/john/mySimpleApplication</strong></span> and you want to build it in <span style='color: red;'> <strong>/home/john/mySimpleApplication/build</strong></span> for <strong><span style='color: blue;'>Visual Studio 8 2005 </span></strong> :
</p>
<p class='vspace'>(<em>Note: The "build" directory exists if the archive, we would advise you to build your program in it</em>.)
</p>
<p class='vspace'>From <strong><span style='color: red;'>/home/john/mySimpleApplication/build</span></strong>, simply run (from a terminal/console)
</p><div style='color: black; font-size: 8pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><div class='indent'><strong>cmake <span style='color: green;'>/home/john/mySimpleApplication</span> -G<span style='color: blue;'>"Visual Studio 8 2005"</span></strong>
</div></dd></dl></dd></dl></div>
<p class='vspace'>The generic call for <span class='wikiword'>CMake</span> is:
</p><div style='color: black; font-size: 8pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><div class='indent'><strong>cmake <span style='color: green;'>&lt;path to the sources&gt; </span> -G<span style='color: blue;'>"&lt;generator name&gt;"</span></strong>
</div></dd></dl></dd></dl></div>
<p class='vspace'>Then :
</p>
<p class='vspace'>- Go in <strong><span style='color: red;'>/home/john/mySimpleApplication/build</span></strong>
<br />- Compile your program using the appropriate tool. Examples:
</p><dl><dd><dl><dd><div class='indent'>--&gt; If you chose the Unix Makefiles generator, enter "make"
</div><div class='indent'>--&gt; If you chose Visual Studio generator, open the generated solution/project and compile
</div><div class='indent'>--&gt; ...
</div></dd></dl></dd></dl>
<p class='vspace'><br />
<br /><strong> For further help and information, feel free to send us an email at <a class='urllink' href='mailto:paradiseo-help@lists.gforge.inria.fr' rel='nofollow'>paradiseo-help@lists.gforge.inria.fr</a> </strong>.
</p>
</div>
<!--PageFooterFmt-->
<div id='footer'>abitmodernCopyright
&nbsp&nbsp&nbsp&nbsp
<!--a href="http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.BuildMySimpleApplication?action=pdf" title="Read this web page on format .pdf" ><acronym title="Portable Document Format" lang="en">PDF version </acronym></a-->
</div> <!--/PageFooterFmt-->
</div>
<div class='clearfix'></div>
</div>
<div class='clearfix'></div>
<!-- -->
<!-- END BODY -->
<!-- -->
</td>
<td width="10" bgcolor="#ffffff"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="2" height="1" alt="" /></td>
</tr>
<tr>
<td align="left" bgcolor="#E0E0E0" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/bottomleft-inner.png" height="11" width="11" alt="" /></td>
<td bgcolor="#ffffff"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="1" height="1" alt="" ></td>
<td align="right" bgcolor="#E0E0E0" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/bottomright-inner.png" height="11" width="11" alt="" /></td>
</tr>
</TABLE>
</td>
<td width="10" bgcolor="#E0E0E0"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="2" height="1" alt="" /></td>
</tr>
<tr>
<td align="left" bgcolor="#E0E0E0" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/bottomleft.png" height="9" width="9" alt="" /></td>
<td bgcolor="#E0E0E0"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="1" height="1" alt="" /></td>
<td align="right" bgcolor="#E0E0E0" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/bottomright.png" height="9" width="9" alt="" /></td>
</tr>
</table>
</body>
</html>

View file

@ -0,0 +1,50 @@
#########################################################################################################
# 1) ParadisEO install: SIMPLE Configuration
#########################################################################################################
# Here, just specify PARADISEO_DIR : the directory where ParadisEO has been installed
SET(PARADISEO_DIR "myDirectory" CACHE PATH "ParadisEO directory" FORCE)
#########################################################################################################
#########################################################################################################
# 2) ParadisEO install: ADVANCED Configuration
#########################################################################################################
SET(PARADISEO_EO_SRC_DIR "${PARADISEO_DIR}/paradiseo-eo" CACHE PATH "ParadisEO-EO source directory" FORCE)
SET(PARADISEO_EO_BIN_DIR "${PARADISEO_DIR}/paradiseo-eo/build" CACHE PATH "ParadisEO-EO binary directory" FORCE)
SET(PARADISEO_MO_SRC_DIR "${PARADISEO_DIR}/paradiseo-mo" CACHE PATH "ParadisEO-MO source directory" FORCE)
SET(PARADISEO_MO_BIN_DIR "${PARADISEO_DIR}/paradiseo-mo/build" CACHE PATH "ParadisEO-MO binary directory" FORCE)
SET(PARADISEO_MOEO_SRC_DIR "${PARADISEO_DIR}/paradiseo-moeo" CACHE PATH "ParadisEO-MOEO source directory" FORCE)
SET(PARADISEO_MOEO_BIN_DIR "${PARADISEO_DIR}/paradiseo-moeo/build" CACHE PATH "ParadisEO-MOEO binary directory" FORCE)
SET(PARADISEO_PEO_SRC_DIR "${PARADISEO_DIR}/paradiseo-peo" CACHE PATH "ParadisEO-PEO source directory" FORCE)
SET(PARADISEO_PEO_BIN_DIR "${PARADISEO_DIR}/paradiseo-peo/build" CACHE PATH "ParadisEO-PEO binary directory" FORCE)
#########################################################################################################
######################################################################################
### 3) OPTIONNAL: Windows advanced config - especially for Microsoft Visual Studio 8
######################################################################################
IF(CMAKE_CXX_COMPILER MATCHES cl)
IF(NOT WITH_SHARED_LIBS)
IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005")
SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy")
SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od")
SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2")
SET(CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O2")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MTd /Z7 /Od")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE")
ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005")
ENDIF(NOT WITH_SHARED_LIBS)
ENDIF(CMAKE_CXX_COMPILER MATCHES cl)
######################################################################################

View file

@ -0,0 +1,17 @@
#include <iostream>
// #include < file >
// Use functions from namespace std ?
using namespace std;
int main(int argc, char **argv)
{
// Your code ...
cout << "I'm a simple application linked with ParadisEO" << endl ;
return 1;
}

View file

@ -0,0 +1,13 @@
If the installation is successfull:
-> You are now to compile with the appropriated tool. At the top level of each module you should end-up with a "build" directory containing the configuration files.
In any case of error:
-> Make sure to have the program corresponding to the generator you have selected.
For more information or for help, please write us at:
paradiseo-help@lists.gforge.inria.fr
INRIA Dolphin Team

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View file

@ -0,0 +1,439 @@
; ParadisEO install script
; Author: Thomas Legrand
#define generatorWizardPageIndex= 7
#define launchBuildWizardPageIndex= 12
//***************************************************************************************//
//********** ParadisEO Specific strategy - The rest of the code is generic ************* //
//***************************************************************************************//
// where will the installer be created ?
#define OutputPath="E:\software\paradisEO\windows installer\compiler output"
// installer source info
#define ParadiseoSourceTag="E:\software\paradisEO\repository\tags\paradiseo-ix86-1.0\*"
#define EoTag="E:\software\eo\repository\tag_v_peo_1_0\*"
// installer description info
#define Version="1.0"
#define VersionMain="ParadisEO-ix86-1.0"
#define InstallerName="paradiseo-1.0-win32-preinstaller"
#define ApplicationName="ParadisEO"
#define SetupIconPath="E:\software\paradisEO\repository\utilities\trunk\windows\img\paradiseo.ico"
#define WizardMainImage="E:\software\paradisEO\repository\utilities\trunk\windows\img\paradiseo.bmp"
#define SkipParadiseoFiles="lib,installParadisEO.sh,paradiseo-peo,.mpd.conf"
#define LicenceFile="E:\software\paradisEO\repository\trunk\LICENSE"
#define FinalInstructions="E:\software\paradisEO\repository\utilities\trunk\windows\final_instructions.txt"
// additionnal info
#define Company="INRIA"
#define AboutUS="INRIA Futurs Dolphin Project-team"
#define PublisherURL="http://paradiseo.gforge.inria.fr"
#define SupportURL="http://paradiseo.gforge.inria.fr"
#define UpdatesURL="http://paradiseo.gforge.inria.fr"
//***************************************************************************************//
[Setup]
AppName={#ApplicationName}
AppVerName={#VersionMain}
AppPublisher={#AboutUS}
AppPublisherURL={#PublisherURL}
AppSupportURL={#SupportURL}
AppUpdatesURL={#UpdatesURL}
DefaultDirName={pf}\{#ApplicationName}
DefaultGroupName={#ApplicationName}
LicenseFile={#LicenceFile}
OutputDir={#OutputPath}
OutputBaseFilename={#InstallerName}
Compression=lzma/max
SolidCompression=yes
WizardImageFile={#WizardMainImage}
SetupIconFile={#SetupIconPath}
UninstallDisplayName={#ApplicationName}
WindowVisible=False
RestartIfNeededByRun=False
ShowTasksTreeLines=True
VersionInfoVersion={#Version}
VersionInfoCompany={#Company}
VersionInfoDescription={#ApplicationName}
VersionInfoTextVersion={#ApplicationName}
InfoAfterFile={#FinalInstructions}
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
[CustomMessages]
english.CMakeMissing=CMake cannot be found on your computer. You must have CMake installed to use ParadisEO.
english.FullInstall=Full installation
english.CustomInstall=Custom installation
english.EoDescription=EO: Evolving Objects: Library for evolutionnary computation
english.MoDescription=MO: Moving Objects: Single based metaheuristics computation
english.MoeoDescription=MOEO: Multi Objective Evolving Objects
english.ErrorOccured=An error has occured
english.LaunchingBuildProcess=Launching CMake build process...
english.error=Error
english.ErrorAbort=Error,abort.
english.CannotCompleteInstall=Impossible to complete the install of
english.BPFinished=Finished
english.BPSuccessfull=The build process has been successfully performed.
english.SelectCompiler=Select the program you want to use to compile:
english.ChooseGenerator=ParadisEO can be compiled using several generators.
english.GenCMakeFiles=Generate CMake configuration files
english.BuildProcess=
english.NextGenCaption=Click on the 'Next' button to launch the build process and generate the configuration files
english.ProcessingCMake=Generating the configuration files...
english.DolphinMsg=ParadisEO: An INRIA Dolphin Team project - 2007
french.CMakeMissing=CMake n'a pas été détecté sur votre ordinateur. CMake doit être installé pour utiliser ParadisEO.
french.FullInstall=Installation complète
french.CustomInstall=Installation personnalisée
french.EoDescription= EO: Evolving Objects: Librairie dédiée aux méthodes évolutionnaires
french.MoDescription= MO: Moving Objects: Métaheuristiques à base de solutions uniques
french.MoeoDescription= MOEO: Multi Objective Evolving Objects: Module multi-objectif
french.ErrorOccured=Une erreur est survenue
french.LaunchingBuildProcess=Construction des fichiers de configuration (build process)...
french.error=Erreur
french.ErrorAbort=Une erreur est survenue, installation annulée.
french.CannotCompleteInstall=Impossible de terminer l'installation de
french.BPFinished=Fin de la construction des fichiers de configuration
french.BPSuccessfull=Succès.
french.SelectCompiler=Sélectionnez le programme que vous souhaitez utiliser pour compiler:
french.ChooseGenerator=ParadisEO peut être compiler par plusieurs programmes.
french.GenCMakeFiles=Générer les fichiers de configuration CMake
french.BuildProcess=
french.NextGenCaption=Cliquez sur le bouton 'Suivant' pour lancer CMake et générer les fichiers de configuration
french.ProcessingCMake=Génération des fichiers de configuration en cours...
french.DolphinMsg=ParadisEO: Un projet de l'équipe INRIA Dolphin - 2007
[Types]
Name: "custom"; Description: {cm:CustomInstall}; Flags: iscustom
Name: "full"; Description: {cm:FullInstall}
[Components]
Name: eo; Description: {cm:EoDescription}; Types: full custom; Flags: fixed
Name: mo; Description:{cm:MoDescription}; Types: full custom;
Name: moeo; Description: {cm:MoeoDescription}; Types: full custom;
[Files]
Source: {#ParadiseoSourceTag}; DestDir: "{app}"; Excludes: {#SkipParadiseoFiles} ; Flags: ignoreversion recursesubdirs createallsubdirs
Source: {#EoTag}; DestDir: "{app}"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
; SPECIFIC CORRECTION - EO TAG NOT MODIFIED, USED TRUNK SOURCES
Source: E:\software\eo\repository\paradiseo-eo\CMakeLists.txt ; DestDir: "{app}\paradiseo-eo"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
Source: E:\software\eo\repository\paradiseo-eo\src\utils\pipecom.h; DestDir: "{app}\paradiseo-eo\src\utils"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
Source: E:\software\eo\repository\paradiseo-eo\src\utils\pipecom.cpp; DestDir: "{app}\paradiseo-eo\src\utils"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
Source: E:\software\eo\repository\paradiseo-eo\src\eoCtrlCContinue.h; DestDir: "{app}\paradiseo-eo\src"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
Source: E:\software\eo\repository\paradiseo-eo\src\eoCtrlCContinue.cpp; DestDir: "{app}\paradiseo-eo\src"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
[Code]
var
GeneratorPage: TWizardPage;
BuildProcessPage: TWizardPage;
ProgressPage: TOutputProgressWizardPage;
GeneratorBox: TNewCheckListBox;
Generator: String;
ProgressBarLabel: TLabel;
ProgressBar: TNewProgressBar;
procedure SetCmakeGenerator();
begin
if GeneratorBox.Checked[1] then
begin
Generator:='Visual Studio 8 2005' ;
exit;
end;
if GeneratorBox.Checked[2] then
begin
Generator:='Visual Studio 8 2005 Win64' ;
exit;
end;
if GeneratorBox.Checked[3] then
begin
Generator:='Visual Studio 7 .NET 2003' ;
exit;
end;
if GeneratorBox.Checked[4] then
begin
Generator:='Visual Studio 7' ;
exit;
end;
if GeneratorBox.Checked[5] then
begin
Generator:='Visual Studio 6' ;
exit;
end;
if GeneratorBox.Checked[6] then
begin
Generator:='NMake Makefiles' ;
exit;
end;
if GeneratorBox.Checked[7] then
begin
Generator:='MinGW Makefiles' ;
exit;
end;
if GeneratorBox.Checked[8] then
begin
Generator:='Borland Makefiles' ;
exit;
end;
if GeneratorBox.Checked[9] then
begin
Generator:='MSYS Makefiles' ;
exit;
end;
if GeneratorBox.Checked[10] then
begin
Generator:='Watcom WMake' ;
exit;
end;
end;
function isError(ErrorCode: Integer): Boolean;
begin
if not (ErrorCode = 0) then
begin
MsgBox(CustomMessage('ErrorOccured') + ': [code='+ IntToStr(ErrorCode) + ']' , mbCriticalError, mb_Ok);
Result:= true;
end else begin
Result:= false;
end;
end;
function checkCMakeAvailable(): Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CMake for MOEO
ShellExec('open', 'cmake.exe','','', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
Result:= ErrorCode;
end;
function LaunchEOBuildProcess():Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CMake for EO
ShellExec('open', 'cmake.exe', ' ..\' + ' -G"' + Generator + '"', FilePath +'\paradiseo-eo\build', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
Result:= ErrorCode;
end;
function LaunchMOBuildProcess(): Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CMake for MOEO
ShellExec('open', 'cmake.exe', ' ..\' + ' -G"' + Generator + '" -Dconfig="'+FilePath + '\install.cmake"', FilePath +'\paradiseo-mo\build', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
Result:= ErrorCode;
end;
function LaunchMOEOBuildProcess(): Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CMake for MOEO
ShellExec('open', 'cmake.exe', ' ..\' + ' -G"' + Generator + '" -Dconfig="'+FilePath + '\install.cmake"', FilePath +'\paradiseo-moeo\build', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
Result:= ErrorCode;
end;
procedure updateProgressBar(StartFrom: Integer;ProgressPurcentage: Integer);
var
I: Integer;
begin
try
for I := StartFrom to ProgressPurcentage do begin
ProgressPage.SetProgress(I, 100);
Sleep(50);
end;
finally
end;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then begin
if (isError(checkCMakeAvailable())) then begin
MsgBox(CustomMessage('CMakeMissing'), mbCriticalError, mb_Ok);
Abort;
end;
end;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
var
I: Integer;
begin
if (CurPageID = BuildProcessPage.ID) then begin
ProgressPage.SetText('',CustomMessage('LaunchingBuildProcess'));
updateProgressBar(0,0);
ProgressPage.Show;
SetCmakeGenerator();
updateProgressBar(0,5);
if (isError(launchEOBuildProcess())) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+' ParadisEO-EO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
updateProgressBar(5,50);
if IsComponentSelected('mo') then
begin
if (isError(launchMOBuildProcess())) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+' ParadisEO-MO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
end;
updateProgressBar(50,80);
if IsComponentSelected('moeo') then
begin
if (isError(launchMOEOBuildProcess())) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+' ParadisEO-MOEO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
end;
updateProgressBar(80,100);
ProgressPage.SetText(CustomMessage('BPFinished'), CustomMessage('BPSuccessfull'));
sleep(2000);
ProgressPage.Hide;
end;
Result := True;
end;
procedure CreateTheWizardPages;
var
Lbl: TLabel;
begin
GeneratorPage := CreateCustomPage({#generatorWizardPageIndex}, CustomMessage('ChooseGenerator'), '');
GeneratorBox := TNewCheckListBox.Create(GeneratorPage);
GeneratorBox.Top := ScaleY(0);
GeneratorBox.Width := GeneratorPage.SurfaceWidth;
GeneratorBox.Height := ScaleY(250);
GeneratorBox.BorderStyle := bsNone;
GeneratorBox.ParentColor := True;
GeneratorBox.MinItemHeight := WizardForm.TasksList.MinItemHeight;
GeneratorBox.ShowLines := False;
GeneratorBox.WantTabs := True;
GeneratorBox.Parent := GeneratorPage.Surface;
GeneratorBox.AddGroup(CustomMessage('SelectCompiler'), '', 0, nil);
GeneratorBox.AddRadioButton('Visual Studio 8 2005', '', 0, True, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 8 2005 Win64', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 7 .NET 2003', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 7', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 6', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('NMake', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('MinGW', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Borland', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('MSYS', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Watcom WMake', '', 0, False, True, nil);
BuildProcessPage := CreateCustomPage({#launchBuildWizardPageIndex},CustomMessage('GenCMakeFiles'),CustomMessage('BuildProcess'));
Lbl := TLabel.Create(BuildProcessPage);
Lbl.Top := ScaleY(20);
Lbl.Caption :=CustomMessage('NextGenCaption');
Lbl.AutoSize := True;
Lbl.Parent := BuildProcessPage.Surface;
ProgressPage := CreateOutputProgressPage(CustomMessage('ProcessingCMake'),CustomMessage('BuildProcess'));
end;
procedure AboutButtonOnClick(Sender: TObject);
begin
MsgBox(CustomMessage('DolphinMsg'), mbInformation, mb_Ok);
end;
procedure URLLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://paradiseo.gforge.inria.fr', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
procedure InitializeWizard();
var
AboutButton, CancelButton: TButton;
URLLabel: TNewStaticText;
BackgroundBitmapImage: TBitmapImage;
BackgroundBitmapText: TNewStaticText;
begin
CreateTheWizardPages;
CancelButton := WizardForm.CancelButton;
AboutButton := TButton.Create(WizardForm);
AboutButton.Left := WizardForm.ClientWidth - CancelButton.Left - CancelButton.Width - ScaleX(5);
AboutButton.Top := CancelButton.Top;
AboutButton.Width := CancelButton.Width;
AboutButton.Height := CancelButton.Height;
AboutButton.Caption := '&About...';
AboutButton.OnClick := @AboutButtonOnClick;
AboutButton.Parent := WizardForm;
URLLabel := TNewStaticText.Create(WizardForm);
URLLabel.Caption := 'http://paradiseo.gforge.inria.fr';
URLLabel.Cursor := crHand;
URLLabel.OnClick := @URLLabelOnClick;
URLLabel.Parent := WizardForm;
URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
URLLabel.Font.Color := clBlue;
URLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2;
URLLabel.Left := AboutButton.Left + AboutButton.Width + ScaleX(10);
end;
[UninstallDelete]
Type: files; Name: "{app}\*"
Type: filesandordirs; Name: "{app}\*"

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View file

@ -0,0 +1,781 @@
; ParadisEO install script
; Author: Thomas Legrand
#define cmakeLookupWizardPageIndex= 8
#define generatorWizardPageIndex= 8
#define buildModeWizardPageIndex= 9
#define launchBuildWizardPageIndex= 12
#define ctestMemCheckDummyError= 16
#define dartSubmissionError= 64
//***************************************************************************************//
//********** ParadisEO Specific strategy - The rest of the code is generic ************* //
//***************************************************************************************//
// where will the installer be created ?
#define OutputPath="E:\software\paradisEO\windows installer\compiler output"
// installer source info
#define ParadiseoSourceTag="E:\software\paradisEO\repository\tags\paradiseo-1.1\*"
#define EoTag="E:\software\eo\repository\*"
// installer description info
#define Version="1.1"
#define VersionMain="ParadisEO-1.1"
#define InstallerName="paradiseo-1.1-installer"
#define ApplicationName="ParadisEO"
#define SetupIconPath="E:\software\paradisEO\repository\utilities\trunk\windows\img\paradiseo.ico"
#define WizardMainImage="E:\software\paradisEO\repository\utilities\trunk\windows\img\paradiseo.bmp"
#define SkipParadiseoFiles="lib,installParadisEO.sh,paradiseo-peo,.mpd.conf"
#define LicenceFile="E:\software\paradisEO\repository\trunk\LICENSE"
#define FinalInstructions="E:\software\paradisEO\repository\utilities\trunk\windows\final_instructions.txt"
// additionnal info
#define Company="INRIA"
#define AboutUS="INRIA Futurs Dolphin Project-team"
#define PublisherURL="http://paradiseo.gforge.inria.fr"
#define SupportURL="http://paradiseo.gforge.inria.fr"
#define UpdatesURL="http://paradiseo.gforge.inria.fr"
// logger
#define InstallLogger="logger "
//***************************************************************************************//
[Setup]
AppName={#ApplicationName}
AppVerName={#VersionMain}
AppPublisher={#AboutUS}
AppPublisherURL={#PublisherURL}
AppSupportURL={#SupportURL}
AppUpdatesURL={#UpdatesURL}
DefaultDirName={pf}\{#ApplicationName}
DefaultGroupName={#ApplicationName}
LicenseFile={#LicenceFile}
OutputDir={#OutputPath}
OutputBaseFilename={#InstallerName}
Compression=lzma/max
SolidCompression=yes
WizardImageFile={#WizardMainImage}
SetupIconFile={#SetupIconPath}
UninstallDisplayName={#ApplicationName}
WindowVisible=False
RestartIfNeededByRun=False
ShowTasksTreeLines=True
VersionInfoVersion={#Version}
VersionInfoCompany={#Company}
VersionInfoDescription={#ApplicationName}
VersionInfoTextVersion={#ApplicationName}
SetupLogging=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
[CustomMessages]
english.CMakeMissing=CMake cannot be found on your computer. You must have CMake installed to use ParadisEO.
english.FullInstall=Full installation
english.CustomInstall=Custom installation
english.EoDescription=EO: Evolving Objects: Library for evolutionnary computation
english.MoDescription=MO: Moving Objects: Single based metaheuristics computation
english.MoeoDescription=MOEO: Multi Objective Evolving Objects
english.ErrorOccured=An error has occured
english.LaunchingBuildProcess=Launching CMake build process and the compilation...
english.LaunchingEOBuildProcess=Configuring ParadisEO-EO...
english.LaunchingMOBuildProcess=Configuring ParadisEO-MO...
english.LaunchingMOEOBuildProcess=Configuring ParadisEO-MOEO...
english.LaunchingEOCompilation=Compiling ParadisEO-EO...
english.LaunchingMOCompilation=Compiling ParadisEO-MO...
english.LaunchingMOEOCompilation=Compiling ParadisEO-MOEO...
english.error=Error
english.ErrorAbort=Error,abort.
english.CannotCompleteInstall=Impossible to complete the install of
english.BPFinished=Finished
english.BPSuccessfull=The installation has been successfully performed.
english.SelectCompiler=Select the program you want to use to compile:
english.ChooseGeneratorTitle=ParadisEO compilation
english.ChooseGeneratorSubtitle=Compiler selection
english.GenCMakeFiles=CMake configuration
english.BuildProcess=CMake configuration files generation and compilation
english.NextGenCaption=Click on the 'Next' button to launch CMake and compile ...
english.ProcessingCMake=Configuration and compilation
english.DolphinMsg=ParadisEO: An INRIA Dolphin Team project - Program developped by Thomas Legrand
english.BuildMode=Build and compilation mode.
english.SelectBuildMode=Please select the build and compilation mode:
english.Recommended=(recommended)
english.AcceptSendReport=I agree that the installation report will be sent to the DOLPHIN Team.
english.NoInfoSend1=Neither personal information nor data refering your computer will be sent.
english.NoInfoSend2=I could get a personalized and adapted support.
english.PathToCMakeTitle=Path to CMake
english.PathToCMakeSubTitle=CMake has not been found by the assistant. Please select the directory where CMake is installed on your computer
english.CMakeNotFound=The CMake binaries cannot be found in this directory
english.CMakeDownloadMsg=CMake available for download at:
english.NextGenCaptionPgmBegin= Notice that the generator you chose must be installed on your computer.
french.CMakeMissing=CMake n'a pas été détecté sur votre ordinateur. CMake doit être installé pour utiliser ParadisEO.
french.FullInstall=Installation complète
french.CustomInstall=Installation personnalisée
french.EoDescription= EO: Evolving Objects: Librairie dédiée aux méthodes évolutionnaires
french.MoDescription= MO: Moving Objects: Métaheuristiques à base de solutions uniques
french.MoeoDescription= MOEO: Multi Objective Evolving Objects: Module multi-objectif
french.ErrorOccured=Une erreur est survenue
french.LaunchingBuildProcess=Construction des fichiers de configuration...
french.LaunchingEOBuildProcess=Configuration de ParadisEO-EO...
french.LaunchingMOBuildProcess=Configuration de ParadisEO-MO...
french.LaunchingMOEOBuildProcess=Configuration de ParadisEO-MOEO...
french.LaunchingEOCompilation=Compilation de ParadisEO-EO...
french.LaunchingMOCompilation=Compilation de ParadisEO-MO...
french.LaunchingMOEOCompilation=Compilation de ParadisEO-MOEO..
french.error=Erreur
french.ErrorAbort=Une erreur est survenue, installation annulée.
french.CannotCompleteInstall=Impossible de terminer l'installation de
french.BPFinished=Fin de l'installation
french.BPSuccessfull=Succès.
french.SelectCompiler=Sélectionnez le programme que vous souhaitez utiliser pour compiler:
french.ChooseGeneratorTitle=Compilation de ParadisEO
french.ChooseGeneratorSubtitle=Selection du compilateur à utiliser
french.GenCMakeFiles=Configuration CMake
french.BuildProcess=Génération des fichiers de configuration CMake et compilation
french.NextGenCaption=Cliquez sur le bouton 'Suivant' pour lancer CMake et compiler.
french.ProcessingCMake=Configuration et compilation
french.DolphinMsg=ParadisEO: Un projet de l'équipe INRIA Dolphin - Programme réalisé par Thomas Legrand
french.BuildMode=Choix du mode de compilation.
french.SelectBuildMode=Veuillez sélectionner le type de compilation :
french.Recommended=(recommandé)
french.AcceptSendReport=Je souhaite que le rapport d'installation soit envoyé à l'équipe DOLPHIN.
french.NoInfoSend1=Aucune information personnelle ou liée à mon poste de travail ne sera transmise.
french.NoInfoSend2=Je pourrais bénéficier d'un support personnalisé et adapté.
french.PathToCMakeTitle=Chemin vers CMake
french.PathToCMakeSubTitle=CMake n'a pas été trouvé par l'assistant. Veuillez sélectionner le répertoire d'installation de CMake sur votre ordinateur
french.CMakeNotFound=Les exécutables CMake sont introuvables dans ce répertoire
french.CMakeDownloadMsg=CMake téléchargeable à l'adresse:
french.NextGenCaptionPgmBegin= Notez que le générateur que vous avez sélectionné doit être installé sur votre ordinateur.
[Types]
Name: "custom"; Description: {cm:CustomInstall}; Flags: iscustom
Name: "full"; Description: {cm:FullInstall}
[Components]
Name: eo; Description: {cm:EoDescription}; Types: full custom; Flags: fixed
Name: mo; Description:{cm:MoDescription}; Types: full custom;
Name: moeo; Description: {cm:MoeoDescription}; Types: full custom;
[Files]
Source: {#ParadiseoSourceTag}; DestDir: "{app}"; Excludes: {#SkipParadiseoFiles} ; Flags: ignoreversion recursesubdirs createallsubdirs
Source: {#EoTag}; DestDir: "{app}"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
; SPECIFIC CORRECTION - EO TAG NOT MODIFIED, USED TRUNK SOURCES
Source: E:\software\eo\repository\paradiseo-eo\CMakeLists.txt ; DestDir: "{app}\paradiseo-eo"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
Source: E:\software\eo\repository\paradiseo-eo\src\utils\pipecom.h; DestDir: "{app}\paradiseo-eo\src\utils"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
Source: E:\software\eo\repository\paradiseo-eo\src\utils\pipecom.cpp; DestDir: "{app}\paradiseo-eo\src\utils"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
Source: E:\software\eo\repository\paradiseo-eo\src\eoCtrlCContinue.h; DestDir: "{app}\paradiseo-eo\src"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
Source: E:\software\eo\repository\paradiseo-eo\src\eoCtrlCContinue.cpp; DestDir: "{app}\paradiseo-eo\src"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
[Dirs]
Name: {app}\logs
[Code]
var
GeneratorPage: TWizardPage;
BuildModePage: TWizardPage;
BuildProcessPage: TWizardPage;
CMakeLookupPage: TWizardPage;
ProgressPage: TOutputProgressWizardPage;
GeneratorBox: TNewCheckListBox;
BuildModeBox: TNewCheckListBox;
SendReportBox: TCheckBox;
Generator: String;
CTestConfig: String;
CMakeBinDir: String;
ProgressBarLabel: TLabel;
ProgressBar: TNewProgressBar;
FolderTreeView: TFolderTreeView;
CMakeAdditionalTags: String;
OkToCopyLog : Boolean;
TodaysName : String;
function GetToday : String;
begin
Result := GetDateTimeString ('yyyy/mm/dd', '-', #0);
end;
function GetTodaysName (Param: String): String;
begin
if ('' = TodaysName) then
begin
TodaysName := GetToday ();
end;
Result := TodaysName;
end;
procedure SetCmakeGenerator();
begin
if GeneratorBox.Checked[1] then
begin
Generator:='Visual Studio 9 2008' ;
exit;
end;
if GeneratorBox.Checked[2] then
begin
Generator:='Visual Studio 9 2008 Win64' ;
exit;
end;
if GeneratorBox.Checked[3] then
begin
Generator:='Visual Studio 8 2005' ;
exit;
end;
if GeneratorBox.Checked[4] then
begin
Generator:='Visual Studio 8 2005 Win64' ;
exit;
end;
if GeneratorBox.Checked[5] then
begin
Generator:='Visual Studio 7 .NET 2003' ;
exit;
end;
if GeneratorBox.Checked[6] then
begin
Generator:='Visual Studio 7' ;
exit;
end;
if GeneratorBox.Checked[7] then
begin
Generator:='Visual Studio 6' ;
exit;
end;
if GeneratorBox.Checked[8] then
begin
Generator:='NMake Makefiles' ;
exit;
end;
if GeneratorBox.Checked[9] then
begin
Generator:='MinGW Makefiles' ;
exit;
end;
if GeneratorBox.Checked[10] then
begin
Generator:='Borland Makefiles' ;
exit;
end;
if GeneratorBox.Checked[11] then
begin
Generator:='MSYS Makefiles' ;
exit;
end;
if GeneratorBox.Checked[12] then
begin
Generator:='Watcom WMake' ;
exit;
end;
end;
procedure SetCTestConfig();
var
MinConfig: String;
begin
MinConfig:=' -D ExperimentalStart -D ExperimentalBuild' ;
if SendReportBox.Checked then
begin
CTestConfig:= MinConfig + ' -D ExperimentalSubmit' ;
end;
if BuildModeBox.Checked[1] then
begin
CMakeAdditionalTags:= ' -DENABLE_CMAKE_TESTING=FALSE';
exit;
end;
if BuildModeBox.Checked[2] then
begin
CTestConfig:=CTestConfig + ' -D ExperimentalTest' ;
CMakeAdditionalTags:= ' -DENABLE_CMAKE_TESTING=TRUE';
exit;
end;
end;
function isError(ErrorCode: Integer; PrintMsgBox: Boolean): Boolean;
begin
if not (ErrorCode = 0) then
begin
if(ErrorCode = {#ctestMemCheckDummyError}) then begin
Result:= false;
exit;
end;
if(ErrorCode = {#dartSubmissionError}) then begin
Result:= false;
exit;
end;
if(PrintMsgBox) then begin
MsgBox(CustomMessage('ErrorOccured') + ': [code='+ IntToStr(ErrorCode) + ']' + ' [' + SysErrorMessage(ErrorCode) + ']' , mbCriticalError, mb_Ok);
end;
Result:= true;
end else begin
Result:= false;
end;
end;
function checkCMakeAvailable(Path: String): Integer;
var
ErrorCode: Integer;
begin
ShellExec('open', Path + 'cmake.exe','','', SW_SHOWMINIMIZED, ewWaitUntilTerminated, ErrorCode);
Result:= ErrorCode;
end;
function LaunchEOBuildProcess():Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
Log('[LaunchEOBuildProcess] [begin]');
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CMake for EO
Log('[LaunchEOBuildProcess] Launching: ' + CMakeBinDir + 'cmake.exe' + ' ..\' + ' -G"' + Generator + '"' + CMakeAdditionalTags);
Log('[LaunchEOBuildProcess] From: ' + FilePath +'\paradiseo-eo\build');
ShellExec ('open',CMakeBinDir + 'cmake.exe',' ..\' + ' -G"' + Generator + '"' + CMakeAdditionalTags, FilePath +'\paradiseo-eo\build', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
Log('[LaunchEOBuildProcess] Error code=' + IntToStr(ErrorCode));
Log('[LaunchEOBuildProcess] [End]');
Result:= ErrorCode;
end;
function LaunchEOCompilation():Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
Log('[LaunchEOCompilation] [begin]');
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CTest for EO
Log('[LaunchEOCompilation] Launching: ' + CMakeBinDir + ' ctest.exe ' + CTestConfig);
Log('[LaunchEOCompilation] From: ' + FilePath +'\paradiseo-eo\build');
Exec(ExpandConstant ('{sys}\CMD.EXE'), ' /C ' + '"' + CMakeBinDir + 'ctest.exe' + ' "' + CTestConfig + ' > build-eo-' + GetTodaysName ('') + '.log',FilePath +'\paradiseo-eo\build', SW_SHOWNORMAL, ewWaitUntilTerminated,ErrorCode);
FileCopy (FilePath +'\paradiseo-eo\build\build-eo-' + GetTodaysName ('') + '.log', ExpandConstant ('{app}\logs\build-eo-') + GetTodaysName ('') + '.log' , FALSE);
Log('[LaunchEOCompilation] Error code=' + IntToStr(ErrorCode));
Log('[LaunchEOCompilation] [End]');
Result:= ErrorCode;
end;
function LaunchMOBuildProcess(): Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
Log('[LaunchMOBuildProcess] [begin]');
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CMake for MO
Log('[LaunchMOBuildProcess] Launching: ' + CMakeBinDir + 'cmake.exe' + ' ..\' + ' -G"' + Generator + '" -Dconfig="'+FilePath + '\install.cmake"' + CMakeAdditionalTags);
Log('[LaunchMOBuildProcess] From: ' + FilePath +'\paradiseo-mo\build');
ShellExec('open',CMakeBinDir+ 'cmake.exe ',' ..\' + ' -G"' + Generator + '" -Dconfig="'+FilePath + '\install.cmake"' + CMakeAdditionalTags,FilePath +'\paradiseo-mo\build', SW_SHOWNORMAL, ewWaitUntilTerminated, Errorcode);
Log('[LaunchMOBuildProcess] Error code=' + IntToStr(ErrorCode));
Log('[LaunchMOBuildProcess] [End]');
Result:= ErrorCode;
end;
function LaunchMOCompilation():Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
Log('[LaunchMOCompilation] [begin]');
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CTest for MO
Log('[LaunchMOCompilation] Launching: ' + CMakeBinDir + ' ctest.exe ' + CTestConfig);
Log('[LaunchMOCompilation] From: ' + FilePath +'\paradiseo-mo\build');
Exec(ExpandConstant ('{sys}\CMD.EXE'), ' /C ' + '"' + CMakeBinDir + 'ctest.exe' + ' "' + CTestConfig + ' > build-mo-' + GetTodaysName ('') + '.log',FilePath +'\paradiseo-mo\build', SW_SHOWNORMAL, ewWaitUntilTerminated,ErrorCode);
FileCopy (FilePath +'\paradiseo-mo\build\build-mo-' + GetTodaysName ('') + '.log', ExpandConstant ('{app}\logs\build-mo-') + GetTodaysName ('') + '.log' , FALSE);
Log('[LaunchMOCompilation] Error code=' + IntToStr(ErrorCode));
Log('[LaunchMOCompilation] [End]');
Result:= ErrorCode;
end;
function LaunchMOEOBuildProcess(): Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CMake for MOEO
Log('[LaunchMOEOBuildProcess] Launching: ' + CMakeBinDir + 'cmake.exe' + ' ..\' + ' -G"' + Generator + '" -Dconfig="'+FilePath + '\install.cmake"' + CMakeAdditionalTags);
Log('[LaunchMOEOBuildProcess] From: ' + FilePath +'\paradiseo-moeo\build');
ShellExec('open', CMakeBinDir + 'cmake.exe', ' ..\' + ' -G"' + Generator + '" -Dconfig="'+FilePath + '\install.cmake"' + CMakeAdditionalTags, FilePath +'\paradiseo-moeo\build', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
Log('[LaunchMOEOBuildProcess] Error code=' + IntToStr(ErrorCode));
Log('[LaunchMOEOBuildProcess] [End]');
Result:= ErrorCode;
Result:= ErrorCode;
end;
function LaunchMOEOCompilation():Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
Log('[LaunchMOEOCompilation] [begin]');
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CTest for MOEO
Log('[LaunchMOEOCompilation] Launching: ' + CMakeBinDir + ' ctest.exe ' + CTestConfig);
Log('[LaunchMOEOCompilation] From: ' + FilePath +'\paradiseo-moeo\build');
Exec(ExpandConstant ('{sys}\CMD.EXE'), ' /C ' + '"' + CMakeBinDir + 'ctest.exe' + ' "' + CTestConfig + ' > build-moeo-' + GetTodaysName ('') + '.log',FilePath +'\paradiseo-moeo\build', SW_SHOWNORMAL, ewWaitUntilTerminated,ErrorCode);
FileCopy (FilePath +'\paradiseo-moeo\build\build-moeo-' + GetTodaysName ('') + '.log', ExpandConstant ('{app}\logs\build-moeo-') + GetTodaysName ('') + '.log' , FALSE);
Log('[LaunchMOEOCompilation] Error code=' + IntToStr(ErrorCode));
Log('[LaunchMOEOCompilation] [End]');
Result:= ErrorCode;
end;
procedure updateProgressBar(StartFrom: Integer;ProgressPurcentage: Integer);
var
I: Integer;
begin
try
for I := StartFrom to ProgressPurcentage do begin
ProgressPage.SetProgress(I, 100);
Sleep(50);
end;
finally
end;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
if (CurPageID = BuildProcessPage.ID) then
begin
ProgressPage.SetText('',CustomMessage('LaunchingBuildProcess'));
updateProgressBar(0,0);
ProgressPage.Show;
SetCmakeGenerator();
SetCTestConfig();
updateProgressBar(0,5);
//***************** EO *************************
ProgressPage.SetText('',CustomMessage('LaunchingEOBuildProcess'));
if (isError(launchEOBuildProcess(),true)) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+' ParadisEO-EO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
updateProgressBar(5,20);
ProgressPage.SetText('',CustomMessage('LaunchingEOCompilation'));
if (isError(LaunchEOCompilation(),true)) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+' ParadisEO-EO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
updateProgressBar(20,50);
//***************** MO *************************
if IsComponentSelected('mo') then
begin
ProgressPage.SetText('',CustomMessage('LaunchingMOBuildProcess'));
if (isError(launchMOBuildProcess(),true)) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+' ParadisEO-MO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
updateProgressBar(50,60);
ProgressPage.SetText('',CustomMessage('LaunchingMOCompilation'));
if (isError(LaunchMOCompilation(),true)) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+' ParadisEO-MO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
updateProgressBar(60,80);
end else
updateProgressBar(50,60);
//***************** MOEO *************************
if IsComponentSelected('moeo') then
begin
ProgressPage.SetText('',CustomMessage('LaunchingMOEOBuildProcess'));
if (isError(launchMOEOBuildProcess(),true)) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+' ParadisEO-MOEO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
updateProgressBar(60,75);
ProgressPage.SetText('',CustomMessage('LaunchingMOEOCompilation'));
if (isError(LaunchMOEOCompilation(),true)) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+' ParadisEO-MOEO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
updateProgressBar(75,100);
end else
updateProgressBar(60,100);
ProgressPage.SetText(CustomMessage('BPFinished'), CustomMessage('BPSuccessfull'));
sleep(2000);
ProgressPage.Hide;
end;
Result := True;
end;
function Skeleton_NextButtonClick(Page: TWizardPage): Boolean;
begin
{ Get the Cmake directory provided by the user }
CMakeBinDir:= FolderTreeView.Directory + '\';
if isError(checkCMakeAvailable(CMakeBinDir),false) then begin
CMakeBinDir:= FolderTreeView.Directory + '\' + 'bin\';
if isError(checkCMakeAvailable(CMakeBinDir),false) then begin
MsgBox(CustomMessage('CMakeNotFound'), mbCriticalError, mb_Ok);
Result := False;
exit;
end else
Result := True; exit;
MsgBox(CustomMessage('CMakeNotFound'), mbCriticalError, mb_Ok);
Result := False;
end else
Result := True;
end;
Procedure CMakeURLLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://www.cmake.org/HTML/Download.html', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
procedure CreateTheWizardPages;
var
Lbl1,Lbl2,Lbl3,Lbl4,Lbl5,Lbl6: TLabel;
CMakeURLLabel: TNewStaticText;
begin
if (isError(checkCMakeAvailable(''),False)) then begin
CMakeLookupPage := CreateCustomPage({#cmakeLookupWizardPageIndex},CustomMessage('PathToCMakeTitle'),CustomMessage('PathToCMakeSubtitle'));
FolderTreeView := TFolderTreeView.Create(CMakeLookupPage);
FolderTreeView.Top := ScaleY(40)
FolderTreeView.Width := CMakeLookupPage.SurfaceWidth;
FolderTreeView.Height := CMakeLookupPage.SurfaceHeight;
FolderTreeView.Parent := CMakeLookupPage.Surface;
FolderTreeView.Directory := '';
Lbl4 := TLabel.Create(CMakeLookupPage);
Lbl4.Top := ScaleY(20);
Lbl4.Caption := CustomMessage('CMakeDownloadMsg');
Lbl4.AutoSize := True;
Lbl4.Parent := CMakeLookupPage.Surface;
Lbl4.Font.Size := 8 ;
Lbl4.Top := ScaleY(0);
Lbl4.Left := ScaleX(5);
CMakeURLLabel := TNewStaticText.Create(CMakeLookupPage);
CMakeURLLabel.Caption := 'http://www.cmake.org/HTML/Download.html';
CMakeURLLabel.Cursor := crHand;
CMakeURLLabel.OnClick:= @CMakeURLLabelOnClick;
CMakeURLLabel.Parent := CMakeLookupPage.Surface;
CMakeURLLabel.Font.Style := CMakeURLLabel.Font.Style + [fsUnderline];
CMakeURLLabel.Font.Color := clBlue;
CMakeURLLabel.Top := ScaleY(0);
CMakeURLLabel.Left := ScaleX(170);
CMakeLookupPage.OnNextButtonClick := @Skeleton_NextButtonClick;
end;
GeneratorPage := CreateCustomPage({#generatorWizardPageIndex}, CustomMessage('ChooseGeneratorTitle'), CustomMessage('ChooseGeneratorSubtitle'));
GeneratorBox := TNewCheckListBox.Create(GeneratorPage);
GeneratorBox.Top := ScaleY(0);
GeneratorBox.Width := GeneratorPage.SurfaceWidth;
GeneratorBox.Height := ScaleY(250);
GeneratorBox.BorderStyle := bsNone;
GeneratorBox.ParentColor := True;
GeneratorBox.MinItemHeight := WizardForm.TasksList.MinItemHeight;
GeneratorBox.ShowLines := False;
GeneratorBox.WantTabs := True;
GeneratorBox.Parent := GeneratorPage.Surface;
GeneratorBox.AddGroup(CustomMessage('SelectCompiler'), '', 0, nil);
GeneratorBox.AddRadioButton('Visual Studio 9 2008', '', 0, True, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 9 2008 Win64', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 8 2005', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 8 2005 Win64', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 7 .NET 2003', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 7', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 6', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('NMake', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('MinGW', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Borland', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('MSYS', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Watcom WMake', '', 0, False, True, nil);
BuildProcessPage := CreateCustomPage({#launchBuildWizardPageIndex},CustomMessage('GenCMakeFiles'),CustomMessage('BuildProcess'));
BuildModePage := CreateCustomPage({#buildModeWizardPageIndex}, CustomMessage('BuildMode'), '');
BuildModeBox := TNewCheckListBox.Create(BuildModePage);
BuildModeBox.Top := ScaleY(0);
BuildModeBox.Width := BuildModePage.SurfaceWidth;
BuildModeBox.Height := ScaleY(80);
BuildModeBox.BorderStyle := bsNone;
BuildModeBox.ParentColor := True;
BuildModeBox.MinItemHeight := WizardForm.TasksList.MinItemHeight;
BuildModeBox.ShowLines := False;
BuildModeBox.WantTabs := True;
BuildModeBox.Parent := BuildModePage.Surface;
BuildModeBox.AddGroup(CustomMessage('SelectBuildMode'), '', 0, nil);
BuildModeBox.AddRadioButton('Normal = Release ' + CustomMessage('Recommended'), '', 0, True, True, nil);
BuildModeBox.AddRadioButton('Debug', '', 0, False, True, nil);
SendReportBox := TCheckBox.Create(BuildModePage);
SendReportBox.Top := BuildModeBox.Top + BuildModeBox.Height + ScaleY(90);
SendReportBox.Width := BuildModePage.SurfaceWidth;
SendReportBox.Height := ScaleY(15);
SendReportBox.Caption := CustomMessage('AcceptSendReport');
SendReportBox.Checked := True;
SendReportBox.Parent := BuildModePage.Surface;
SendReportBox.Font.Size := 7;
Lbl1 := TLabel.Create(BuildModePage);
Lbl1.Top := SendReportBox.Top + SendReportBox.Height + ScaleY(5);
Lbl1.Caption := CustomMessage('NoInfoSend1');
Lbl1.AutoSize := True;
Lbl1.Parent := BuildModePage.Surface;
Lbl1.Font.Size := 7 ;
Lbl1.Left := 15;
Lbl2 := TLabel.Create(BuildModePage);
Lbl2.Top := Lbl1.Top + Lbl1.Height + ScaleY(5);
Lbl2.Caption := CustomMessage('NoInfoSend2');
Lbl2.AutoSize := True;
Lbl2.Parent := BuildModePage.Surface;
Lbl2.Font.Size := 7 ;
Lbl2.Left := 15;
Lbl3 := TLabel.Create(BuildProcessPage);
Lbl3.Top := ScaleY(20);
Lbl3.Caption :=CustomMessage('NextGenCaption');
Lbl3.AutoSize := True;
Lbl3.Parent := BuildProcessPage.Surface;
Lbl5 := TLabel.Create(BuildProcessPage);
Lbl5.Top := ScaleY(40);
Lbl5.Left := ScaleX(-3);
Lbl5.Caption :=CustomMessage('NextGenCaptionPgmBegin');
Lbl5.AutoSize := True;
Lbl5.Parent := BuildProcessPage.Surface;
ProgressPage := CreateOutputProgressPage(CustomMessage('ProcessingCMake'),CustomMessage('BuildProcess'));
end;
procedure AboutButtonOnClick(Sender: TObject);
begin
MsgBox(CustomMessage('DolphinMsg'), mbInformation, mb_Ok);
end;
procedure URLLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://paradiseo.gforge.inria.fr', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
procedure InitializeWizard();
var
AboutButton, CancelButton: TButton;
URLLabel: TNewStaticText;
begin
CreateTheWizardPages;
CancelButton := WizardForm.CancelButton;
AboutButton := TButton.Create(WizardForm);
AboutButton.Left := WizardForm.ClientWidth - CancelButton.Left - CancelButton.Width - ScaleX(5);
AboutButton.Top := CancelButton.Top;
AboutButton.Width := CancelButton.Width;
AboutButton.Height := CancelButton.Height;
AboutButton.Caption := '&About...';
AboutButton.OnClick := @AboutButtonOnClick;
AboutButton.Parent := WizardForm;
URLLabel := TNewStaticText.Create(WizardForm);
URLLabel.Caption := 'http://paradiseo.gforge.inria.fr';
URLLabel.Cursor := crHand;
URLLabel.OnClick := @URLLabelOnClick;
URLLabel.Parent := WizardForm;
URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
URLLabel.Font.Color := clBlue;
URLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2;
URLLabel.Left := AboutButton.Left + AboutButton.Width + ScaleX(10);
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssDone then
OkToCopyLog := True;
end;
procedure DeinitializeSetup();
begin
if OkToCopyLog then
FileCopy (ExpandConstant ('{log}'), ExpandConstant ('{app}\logs\install-') + GetTodaysName ('') + '.log' , FALSE);
RestartReplace (ExpandConstant ('{log}'), '');
end;
[UninstallDelete]
Type: files; Name: "{app}\*"
Type: filesandordirs; Name: "{app}\*"

View file

@ -0,0 +1,780 @@
; ParadisEO install script
; Author: Thomas Legrand
#define cmakeLookupWizardPageIndex= 8
#define generatorWizardPageIndex= 8
#define buildModeWizardPageIndex= 9
#define launchBuildWizardPageIndex= 12
#define ctestMemCheckDummyError= 16
#define dartSubmissionError= 64
//***************************************************************************************//
//********** ParadisEO Specific strategy - The rest of the code is generic ************* //
//***************************************************************************************//
// where will the installer be created ?
#define OutputPath="E:\software\paradisEO\windows installer\compiler output"
// installer source info
#define ParadiseoSourceTag="E:\software\paradisEO\repository\tags\paradiseo-1.1-patch1\*"
#define EoTag="E:\software\eo\repository\tag-1.1-patch1\*"
// installer description info
#define Version="1.1"
#define VersionMain="ParadisEO-1.1"
#define InstallerName="paradiseo-1.1-installer"
#define ApplicationName="ParadisEO"
#define SetupIconPath="E:\software\paradisEO\repository\utilities\trunk\windows\img\paradiseo.ico"
#define WizardMainImage="E:\software\paradisEO\repository\utilities\trunk\windows\img\paradiseo.bmp"
#define SkipParadiseoFiles="lib,installParadisEO.sh,paradiseo-peo,.mpd.conf"
#define LicenceFile="E:\software\paradisEO\repository\trunk\LICENSE"
#define FinalInstructions="E:\software\paradisEO\repository\utilities\trunk\windows\final_instructions.txt"
// additionnal info
#define Company="INRIA"
#define AboutUS="INRIA Futurs Dolphin Project-team"
#define PublisherURL="http://paradiseo.gforge.inria.fr"
#define SupportURL="http://paradiseo.gforge.inria.fr"
#define UpdatesURL="http://paradiseo.gforge.inria.fr"
// logger
#define InstallLogger="logger "
//***************************************************************************************//
[Setup]
AppName={#ApplicationName}
AppVerName={#VersionMain}
AppPublisher={#AboutUS}
AppPublisherURL={#PublisherURL}
AppSupportURL={#SupportURL}
AppUpdatesURL={#UpdatesURL}
DefaultDirName={pf}\{#ApplicationName}
DefaultGroupName={#ApplicationName}
LicenseFile={#LicenceFile}
OutputDir={#OutputPath}
OutputBaseFilename={#InstallerName}
Compression=lzma/max
SolidCompression=yes
WizardImageFile={#WizardMainImage}
SetupIconFile={#SetupIconPath}
UninstallDisplayName={#ApplicationName}
WindowVisible=False
RestartIfNeededByRun=False
ShowTasksTreeLines=True
VersionInfoVersion={#Version}
VersionInfoCompany={#Company}
VersionInfoDescription={#ApplicationName}
VersionInfoTextVersion={#ApplicationName}
SetupLogging=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
[CustomMessages]
english.CMakeMissing=CMake cannot be found on your computer. You must have CMake installed to use ParadisEO.
english.FullInstall=Full installation
english.CustomInstall=Custom installation
english.EoDescription=EO: Evolving Objects: Library for evolutionnary computation
english.MoDescription=MO: Moving Objects: Single based metaheuristics computation
english.MoeoDescription=MOEO: Multi Objective Evolving Objects
english.ErrorOccured=An error has occured
english.LaunchingBuildProcess=Launching CMake build process and the compilation...
english.LaunchingEOBuildProcess=Configuring ParadisEO-EO...
english.LaunchingMOBuildProcess=Configuring ParadisEO-MO...
english.LaunchingMOEOBuildProcess=Configuring ParadisEO-MOEO...
english.LaunchingEOCompilation=Compiling ParadisEO-EO...
english.LaunchingMOCompilation=Compiling ParadisEO-MO...
english.LaunchingMOEOCompilation=Compiling ParadisEO-MOEO...
english.error=Error
english.ErrorAbort=Error,abort.
english.CannotCompleteInstall=Impossible to complete the install of
english.BPFinished=Finished
english.BPSuccessfull=The installation has been successfully performed.
english.SelectCompiler=Select the program you want to use to compile:
english.ChooseGeneratorTitle=ParadisEO compilation
english.ChooseGeneratorSubtitle=Compiler selection
english.GenCMakeFiles=CMake configuration
english.BuildProcess=CMake configuration files generation and compilation
english.NextGenCaption=Click on the 'Next' button to launch CMake and compile ...
english.ProcessingCMake=Configuration and compilation
english.DolphinMsg=ParadisEO: An INRIA Dolphin Team project - Program developped by Thomas Legrand
english.BuildMode=Build and compilation mode.
english.SelectBuildMode=Please select the build and compilation mode:
english.Recommended=(recommended)
english.AcceptSendReport=I agree that the installation report will be sent to the DOLPHIN Team.
english.NoInfoSend1=Neither personal information nor data refering your computer will be sent.
english.NoInfoSend2=I could get a personalized and adapted support.
english.PathToCMakeTitle=Path to CMake
english.PathToCMakeSubTitle=CMake has not been found by the assistant. Please select the directory where CMake is installed on your computer
english.CMakeNotFound=The CMake binaries cannot be found in this directory
english.CMakeDownloadMsg=CMake available for download at:
english.NextGenCaptionPgmBegin= Notice that the generator you chose must be installed on your computer.
french.CMakeMissing=CMake n'a pas été détecté sur votre ordinateur. CMake doit être installé pour utiliser ParadisEO.
french.FullInstall=Installation complète
french.CustomInstall=Installation personnalisée
french.EoDescription= EO: Evolving Objects: Librairie dédiée aux méthodes évolutionnaires
french.MoDescription= MO: Moving Objects: Métaheuristiques à base de solutions uniques
french.MoeoDescription= MOEO: Multi Objective Evolving Objects: Module multi-objectif
french.ErrorOccured=Une erreur est survenue
french.LaunchingBuildProcess=Construction des fichiers de configuration...
french.LaunchingEOBuildProcess=Configuration de ParadisEO-EO...
french.LaunchingMOBuildProcess=Configuration de ParadisEO-MO...
french.LaunchingMOEOBuildProcess=Configuration de ParadisEO-MOEO...
french.LaunchingEOCompilation=Compilation de ParadisEO-EO...
french.LaunchingMOCompilation=Compilation de ParadisEO-MO...
french.LaunchingMOEOCompilation=Compilation de ParadisEO-MOEO..
french.error=Erreur
french.ErrorAbort=Une erreur est survenue, installation annulée.
french.CannotCompleteInstall=Impossible de terminer l'installation de
french.BPFinished=Fin de l'installation
french.BPSuccessfull=Succès.
french.SelectCompiler=Sélectionnez le programme que vous souhaitez utiliser pour compiler:
french.ChooseGeneratorTitle=Compilation de ParadisEO
french.ChooseGeneratorSubtitle=Selection du compilateur à utiliser
french.GenCMakeFiles=Configuration CMake
french.BuildProcess=Génération des fichiers de configuration CMake et compilation
french.NextGenCaption=Cliquez sur le bouton 'Suivant' pour lancer CMake et compiler.
french.ProcessingCMake=Configuration et compilation
french.DolphinMsg=ParadisEO: Un projet de l'équipe INRIA Dolphin - Programme réalisé par Thomas Legrand
french.BuildMode=Choix du mode de compilation.
french.SelectBuildMode=Veuillez sélectionner le type de compilation :
french.Recommended=(recommandé)
french.AcceptSendReport=Je souhaite que le rapport d'installation soit envoyé à l'équipe DOLPHIN.
french.NoInfoSend1=Aucune information personnelle ou liée à mon poste de travail ne sera transmise.
french.NoInfoSend2=Je pourrais bénéficier d'un support personnalisé et adapté.
french.PathToCMakeTitle=Chemin vers CMake
french.PathToCMakeSubTitle=CMake n'a pas été trouvé par l'assistant. Veuillez sélectionner le répertoire d'installation de CMake sur votre ordinateur
french.CMakeNotFound=Les exécutables CMake sont introuvables dans ce répertoire
french.CMakeDownloadMsg=CMake téléchargeable à l'adresse:
french.NextGenCaptionPgmBegin= Notez que le générateur que vous avez sélectionné doit être installé sur votre ordinateur.
[Types]
Name: "custom"; Description: {cm:CustomInstall}; Flags: iscustom
Name: "full"; Description: {cm:FullInstall}
[Components]
Name: eo; Description: {cm:EoDescription}; Types: full custom; Flags: fixed
Name: mo; Description:{cm:MoDescription}; Types: full custom;
Name: moeo; Description: {cm:MoeoDescription}; Types: full custom;
[Files]
Source: {#ParadiseoSourceTag}; DestDir: "{app}"; Excludes: {#SkipParadiseoFiles} ; Flags: ignoreversion recursesubdirs createallsubdirs
Source: {#EoTag}; DestDir: "{app}"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
; SPECIFIC CORRECTION - EO TAG NOT MODIFIED, USED TRUNK SOURCES
Source: E:\software\eo\repository\tag-1.1-patch1\paradiseo-eo\CMakeLists.txt ; DestDir: "{app}\paradiseo-eo"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
Source: E:\software\eo\repository\tag-1.1-patch1\paradiseo-eo\src\utils\pipecom.h; DestDir: "{app}\paradiseo-eo\src\utils"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
Source: E:\software\eo\repository\tag-1.1-patch1\paradiseo-eo\src\utils\pipecom.cpp; DestDir: "{app}\paradiseo-eo\src\utils"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
Source: E:\software\eo\repository\tag-1.1-patch1\paradiseo-eo\src\eoCtrlCContinue.h; DestDir: "{app}\paradiseo-eo\src"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
Source: E:\software\eo\repository\tag-1.1-patch1\paradiseo-eo\src\eoCtrlCContinue.cpp; DestDir: "{app}\paradiseo-eo\src"; Excludes: "*.~*" ; Flags: ignoreversion recursesubdirs createallsubdirs
[Dirs]
Name: {app}\logs
[Code]
var
GeneratorPage: TWizardPage;
BuildModePage: TWizardPage;
BuildProcessPage: TWizardPage;
CMakeLookupPage: TWizardPage;
ProgressPage: TOutputProgressWizardPage;
GeneratorBox: TNewCheckListBox;
BuildModeBox: TNewCheckListBox;
SendReportBox: TCheckBox;
Generator: String;
CTestConfig: String;
CMakeBinDir: String;
ProgressBarLabel: TLabel;
ProgressBar: TNewProgressBar;
FolderTreeView: TFolderTreeView;
CMakeAdditionalTags: String;
OkToCopyLog : Boolean;
TodaysName : String;
function GetToday : String;
begin
Result := GetDateTimeString ('yyyy/mm/dd', '-', #0);
end;
function GetTodaysName (Param: String): String;
begin
if ('' = TodaysName) then
begin
TodaysName := GetToday ();
end;
Result := TodaysName;
end;
procedure SetCmakeGenerator();
begin
if GeneratorBox.Checked[1] then
begin
Generator:='Visual Studio 9 2008' ;
exit;
end;
if GeneratorBox.Checked[2] then
begin
Generator:='Visual Studio 9 2008 Win64' ;
exit;
end;
if GeneratorBox.Checked[3] then
begin
Generator:='Visual Studio 8 2005' ;
exit;
end;
if GeneratorBox.Checked[4] then
begin
Generator:='Visual Studio 8 2005 Win64' ;
exit;
end;
if GeneratorBox.Checked[5] then
begin
Generator:='Visual Studio 7 .NET 2003' ;
exit;
end;
if GeneratorBox.Checked[6] then
begin
Generator:='Visual Studio 7' ;
exit;
end;
if GeneratorBox.Checked[7] then
begin
Generator:='Visual Studio 6' ;
exit;
end;
if GeneratorBox.Checked[8] then
begin
Generator:='NMake Makefiles' ;
exit;
end;
if GeneratorBox.Checked[9] then
begin
Generator:='MinGW Makefiles' ;
exit;
end;
if GeneratorBox.Checked[10] then
begin
Generator:='Borland Makefiles' ;
exit;
end;
if GeneratorBox.Checked[11] then
begin
Generator:='MSYS Makefiles' ;
exit;
end;
if GeneratorBox.Checked[12] then
begin
Generator:='Watcom WMake' ;
exit;
end;
end;
procedure SetCTestConfig();
var
MinConfig: String;
begin
MinConfig:=' -D ExperimentalStart -D ExperimentalBuild -D ExperimentalTest' ;
if SendReportBox.Checked then
begin
CTestConfig:= MinConfig + ' -D ExperimentalSubmit' ;
end;
if BuildModeBox.Checked[1] then
begin
CMakeAdditionalTags:= ' -DENABLE_MINIMAL_CMAKE_TESTING=TRUE -DENABLE_CMAKE_TESTING=FALSE';
exit;
end;
if BuildModeBox.Checked[2] then
begin
CMakeAdditionalTags:= ' -DENABLE_CMAKE_TESTING=TRUE -DENABLE_MINIMAL_CMAKE_TESTING=FALSE';
exit;
end;
end;
function isError(ErrorCode: Integer; PrintMsgBox: Boolean): Boolean;
begin
if not (ErrorCode = 0) then
begin
if(ErrorCode = {#ctestMemCheckDummyError}) then begin
Result:= false;
exit;
end;
if(ErrorCode = {#dartSubmissionError}) then begin
Result:= false;
exit;
end;
if(PrintMsgBox) then begin
MsgBox(CustomMessage('ErrorOccured') + ': [code='+ IntToStr(ErrorCode) + ']' + ' [' + SysErrorMessage(ErrorCode) + ']' , mbCriticalError, mb_Ok);
end;
Result:= true;
end else begin
Result:= false;
end;
end;
function checkCMakeAvailable(Path: String): Integer;
var
ErrorCode: Integer;
begin
ShellExec('open', Path + 'cmake.exe','','', SW_SHOWMINIMIZED, ewWaitUntilTerminated, ErrorCode);
Result:= ErrorCode;
end;
function LaunchEOBuildProcess():Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
Log('[LaunchEOBuildProcess] [begin]');
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CMake for EO
Log('[LaunchEOBuildProcess] Launching: ' + CMakeBinDir + 'cmake.exe' + ' ..\' + ' -G"' + Generator + '"' + CMakeAdditionalTags);
Log('[LaunchEOBuildProcess] From: ' + FilePath +'\paradiseo-eo\build');
ShellExec ('open',CMakeBinDir + 'cmake.exe',' ..\' + ' -G"' + Generator + '"' + CMakeAdditionalTags, FilePath +'\paradiseo-eo\build', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
Log('[LaunchEOBuildProcess] Error code=' + IntToStr(ErrorCode));
Log('[LaunchEOBuildProcess] [End]');
Result:= ErrorCode;
end;
function LaunchEOCompilation():Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
Log('[LaunchEOCompilation] [begin]');
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CTest for EO
Log('[LaunchEOCompilation] Launching: ' + CMakeBinDir + ' ctest.exe ' + CTestConfig);
Log('[LaunchEOCompilation] From: ' + FilePath +'\paradiseo-eo\build');
Exec(ExpandConstant ('{sys}\CMD.EXE'), ' /C ' + '"' + CMakeBinDir + 'ctest.exe' + ' "' + CTestConfig + ' > build-eo-' + GetTodaysName ('') + '.log',FilePath +'\paradiseo-eo\build', SW_SHOWNORMAL, ewWaitUntilTerminated,ErrorCode);
FileCopy (FilePath +'\paradiseo-eo\build\build-eo-' + GetTodaysName ('') + '.log', ExpandConstant ('{app}\logs\build-eo-') + GetTodaysName ('') + '.log' , FALSE);
Log('[LaunchEOCompilation] Error code=' + IntToStr(ErrorCode));
Log('[LaunchEOCompilation] [End]');
Result:= ErrorCode;
end;
function LaunchMOBuildProcess(): Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
Log('[LaunchMOBuildProcess] [begin]');
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CMake for MO
Log('[LaunchMOBuildProcess] Launching: ' + CMakeBinDir + 'cmake.exe' + ' ..\' + ' -G"' + Generator + '" -Dconfig="'+FilePath + '\install.cmake"' + CMakeAdditionalTags);
Log('[LaunchMOBuildProcess] From: ' + FilePath +'\paradiseo-mo\build');
ShellExec('open',CMakeBinDir+ 'cmake.exe ',' ..\' + ' -G"' + Generator + '" -Dconfig="'+FilePath + '\install.cmake"' + CMakeAdditionalTags,FilePath +'\paradiseo-mo\build', SW_SHOWNORMAL, ewWaitUntilTerminated, Errorcode);
Log('[LaunchMOBuildProcess] Error code=' + IntToStr(ErrorCode));
Log('[LaunchMOBuildProcess] [End]');
Result:= ErrorCode;
end;
function LaunchMOCompilation():Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
Log('[LaunchMOCompilation] [begin]');
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CTest for MO
Log('[LaunchMOCompilation] Launching: ' + CMakeBinDir + ' ctest.exe ' + CTestConfig);
Log('[LaunchMOCompilation] From: ' + FilePath +'\paradiseo-mo\build');
Exec(ExpandConstant ('{sys}\CMD.EXE'), ' /C ' + '"' + CMakeBinDir + 'ctest.exe' + ' "' + CTestConfig + ' > build-mo-' + GetTodaysName ('') + '.log',FilePath +'\paradiseo-mo\build', SW_SHOWNORMAL, ewWaitUntilTerminated,ErrorCode);
FileCopy (FilePath +'\paradiseo-mo\build\build-mo-' + GetTodaysName ('') + '.log', ExpandConstant ('{app}\logs\build-mo-') + GetTodaysName ('') + '.log' , FALSE);
Log('[LaunchMOCompilation] Error code=' + IntToStr(ErrorCode));
Log('[LaunchMOCompilation] [End]');
Result:= ErrorCode;
end;
function LaunchMOEOBuildProcess(): Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CMake for MOEO
Log('[LaunchMOEOBuildProcess] Launching: ' + CMakeBinDir + 'cmake.exe' + ' ..\' + ' -G"' + Generator + '" -Dconfig="'+FilePath + '\install.cmake"' + CMakeAdditionalTags);
Log('[LaunchMOEOBuildProcess] From: ' + FilePath +'\paradiseo-moeo\build');
ShellExec('open', CMakeBinDir + 'cmake.exe', ' ..\' + ' -G"' + Generator + '" -Dconfig="'+FilePath + '\install.cmake"' + CMakeAdditionalTags, FilePath +'\paradiseo-moeo\build', SW_SHOWNORMAL, ewWaitUntilTerminated, ErrorCode);
Log('[LaunchMOEOBuildProcess] Error code=' + IntToStr(ErrorCode));
Log('[LaunchMOEOBuildProcess] [End]');
Result:= ErrorCode;
Result:= ErrorCode;
end;
function LaunchMOEOCompilation():Integer;
var
ErrorCode: Integer;
FilePath: String;
begin
Log('[LaunchMOEOCompilation] [begin]');
// Need the app path
FilePath := ExpandConstant('{app}');
// launch CTest for MOEO
Log('[LaunchMOEOCompilation] Launching: ' + CMakeBinDir + ' ctest.exe ' + CTestConfig);
Log('[LaunchMOEOCompilation] From: ' + FilePath +'\paradiseo-moeo\build');
Exec(ExpandConstant ('{sys}\CMD.EXE'), ' /C ' + '"' + CMakeBinDir + 'ctest.exe' + ' "' + CTestConfig + ' > build-moeo-' + GetTodaysName ('') + '.log',FilePath +'\paradiseo-moeo\build', SW_SHOWNORMAL, ewWaitUntilTerminated,ErrorCode);
FileCopy (FilePath +'\paradiseo-moeo\build\build-moeo-' + GetTodaysName ('') + '.log', ExpandConstant ('{app}\logs\build-moeo-') + GetTodaysName ('') + '.log' , FALSE);
Log('[LaunchMOEOCompilation] Error code=' + IntToStr(ErrorCode));
Log('[LaunchMOEOCompilation] [End]');
Result:= ErrorCode;
end;
procedure updateProgressBar(StartFrom: Integer;ProgressPurcentage: Integer);
var
I: Integer;
begin
try
for I := StartFrom to ProgressPurcentage do begin
ProgressPage.SetProgress(I, 100);
Sleep(50);
end;
finally
end;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
if (CurPageID = BuildProcessPage.ID) then
begin
ProgressPage.SetText('',CustomMessage('LaunchingBuildProcess'));
updateProgressBar(0,0);
ProgressPage.Show;
SetCmakeGenerator();
SetCTestConfig();
updateProgressBar(0,5);
//***************** EO *************************
ProgressPage.SetText('',CustomMessage('LaunchingEOBuildProcess'));
if (isError(launchEOBuildProcess(),true)) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+' ParadisEO-EO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
updateProgressBar(5,20);
ProgressPage.SetText('',CustomMessage('LaunchingEOCompilation'));
if (isError(LaunchEOCompilation(),true)) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+' ParadisEO-EO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
updateProgressBar(20,50);
//***************** MO *************************
if IsComponentSelected('mo') then
begin
ProgressPage.SetText('',CustomMessage('LaunchingMOBuildProcess'));
if (isError(launchMOBuildProcess(),true)) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+' ParadisEO-MO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
updateProgressBar(50,60);
ProgressPage.SetText('',CustomMessage('LaunchingMOCompilation'));
if (isError(LaunchMOCompilation(),true)) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+' ParadisEO-MO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
updateProgressBar(60,80);
end else
updateProgressBar(50,60);
//***************** MOEO *************************
if IsComponentSelected('moeo') then
begin
ProgressPage.SetText('',CustomMessage('LaunchingMOEOBuildProcess'));
if (isError(launchMOEOBuildProcess(),true)) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+' ParadisEO-MOEO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
updateProgressBar(60,75);
ProgressPage.SetText('',CustomMessage('LaunchingMOEOCompilation'));
if (isError(LaunchMOEOCompilation(),true)) then
begin
ProgressPage.SetText(CustomMessage('Error'), CustomMessage('ErrorAbort'));
MsgBox(CustomMessage('CannotCompleteInstall')+' ParadisEO-MOEO' , mbCriticalError, mb_Ok);
ProgressPage.Hide;
Result := True;
exit;
end;
updateProgressBar(75,100);
end else
updateProgressBar(60,100);
ProgressPage.SetText(CustomMessage('BPFinished'), CustomMessage('BPSuccessfull'));
sleep(2000);
ProgressPage.Hide;
end;
Result := True;
end;
function Skeleton_NextButtonClick(Page: TWizardPage): Boolean;
begin
{ Get the Cmake directory provided by the user }
CMakeBinDir:= FolderTreeView.Directory + '\';
if isError(checkCMakeAvailable(CMakeBinDir),false) then begin
CMakeBinDir:= FolderTreeView.Directory + '\' + 'bin\';
if isError(checkCMakeAvailable(CMakeBinDir),false) then begin
MsgBox(CustomMessage('CMakeNotFound'), mbCriticalError, mb_Ok);
Result := False;
exit;
end else
Result := True; exit;
MsgBox(CustomMessage('CMakeNotFound'), mbCriticalError, mb_Ok);
Result := False;
end else
Result := True;
end;
Procedure CMakeURLLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://www.cmake.org/HTML/Download.html', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
procedure CreateTheWizardPages;
var
Lbl1,Lbl2,Lbl3,Lbl4,Lbl5,Lbl6: TLabel;
CMakeURLLabel: TNewStaticText;
begin
if (isError(checkCMakeAvailable(''),False)) then begin
CMakeLookupPage := CreateCustomPage({#cmakeLookupWizardPageIndex},CustomMessage('PathToCMakeTitle'),CustomMessage('PathToCMakeSubtitle'));
FolderTreeView := TFolderTreeView.Create(CMakeLookupPage);
FolderTreeView.Top := ScaleY(40)
FolderTreeView.Width := CMakeLookupPage.SurfaceWidth;
FolderTreeView.Height := CMakeLookupPage.SurfaceHeight;
FolderTreeView.Parent := CMakeLookupPage.Surface;
FolderTreeView.Directory := '';
Lbl4 := TLabel.Create(CMakeLookupPage);
Lbl4.Top := ScaleY(20);
Lbl4.Caption := CustomMessage('CMakeDownloadMsg');
Lbl4.AutoSize := True;
Lbl4.Parent := CMakeLookupPage.Surface;
Lbl4.Font.Size := 8 ;
Lbl4.Top := ScaleY(0);
Lbl4.Left := ScaleX(5);
CMakeURLLabel := TNewStaticText.Create(CMakeLookupPage);
CMakeURLLabel.Caption := 'http://www.cmake.org/HTML/Download.html';
CMakeURLLabel.Cursor := crHand;
CMakeURLLabel.OnClick:= @CMakeURLLabelOnClick;
CMakeURLLabel.Parent := CMakeLookupPage.Surface;
CMakeURLLabel.Font.Style := CMakeURLLabel.Font.Style + [fsUnderline];
CMakeURLLabel.Font.Color := clBlue;
CMakeURLLabel.Top := ScaleY(0);
CMakeURLLabel.Left := ScaleX(170);
CMakeLookupPage.OnNextButtonClick := @Skeleton_NextButtonClick;
end;
GeneratorPage := CreateCustomPage({#generatorWizardPageIndex}, CustomMessage('ChooseGeneratorTitle'), CustomMessage('ChooseGeneratorSubtitle'));
GeneratorBox := TNewCheckListBox.Create(GeneratorPage);
GeneratorBox.Top := ScaleY(0);
GeneratorBox.Width := GeneratorPage.SurfaceWidth;
GeneratorBox.Height := ScaleY(250);
GeneratorBox.BorderStyle := bsNone;
GeneratorBox.ParentColor := True;
GeneratorBox.MinItemHeight := WizardForm.TasksList.MinItemHeight;
GeneratorBox.ShowLines := False;
GeneratorBox.WantTabs := True;
GeneratorBox.Parent := GeneratorPage.Surface;
GeneratorBox.AddGroup(CustomMessage('SelectCompiler'), '', 0, nil);
GeneratorBox.AddRadioButton('Visual Studio 9 2008', '', 0, True, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 9 2008 Win64', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 8 2005', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 8 2005 Win64', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 7 .NET 2003', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 7', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Visual Studio 6', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('NMake', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('MinGW', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Borland', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('MSYS', '', 0, False, True, nil);
GeneratorBox.AddRadioButton('Watcom WMake', '', 0, False, True, nil);
BuildProcessPage := CreateCustomPage({#launchBuildWizardPageIndex},CustomMessage('GenCMakeFiles'),CustomMessage('BuildProcess'));
BuildModePage := CreateCustomPage({#buildModeWizardPageIndex}, CustomMessage('BuildMode'), '');
BuildModeBox := TNewCheckListBox.Create(BuildModePage);
BuildModeBox.Top := ScaleY(0);
BuildModeBox.Width := BuildModePage.SurfaceWidth;
BuildModeBox.Height := ScaleY(80);
BuildModeBox.BorderStyle := bsNone;
BuildModeBox.ParentColor := True;
BuildModeBox.MinItemHeight := WizardForm.TasksList.MinItemHeight;
BuildModeBox.ShowLines := False;
BuildModeBox.WantTabs := True;
BuildModeBox.Parent := BuildModePage.Surface;
BuildModeBox.AddGroup(CustomMessage('SelectBuildMode'), '', 0, nil);
BuildModeBox.AddRadioButton('Normal = Release ' + CustomMessage('Recommended'), '', 0, True, True, nil);
BuildModeBox.AddRadioButton('Debug', '', 0, False, True, nil);
SendReportBox := TCheckBox.Create(BuildModePage);
SendReportBox.Top := BuildModeBox.Top + BuildModeBox.Height + ScaleY(90);
SendReportBox.Width := BuildModePage.SurfaceWidth;
SendReportBox.Height := ScaleY(15);
SendReportBox.Caption := CustomMessage('AcceptSendReport');
SendReportBox.Checked := True;
SendReportBox.Parent := BuildModePage.Surface;
SendReportBox.Font.Size := 7;
Lbl1 := TLabel.Create(BuildModePage);
Lbl1.Top := SendReportBox.Top + SendReportBox.Height + ScaleY(5);
Lbl1.Caption := CustomMessage('NoInfoSend1');
Lbl1.AutoSize := True;
Lbl1.Parent := BuildModePage.Surface;
Lbl1.Font.Size := 7 ;
Lbl1.Left := 15;
Lbl2 := TLabel.Create(BuildModePage);
Lbl2.Top := Lbl1.Top + Lbl1.Height + ScaleY(5);
Lbl2.Caption := CustomMessage('NoInfoSend2');
Lbl2.AutoSize := True;
Lbl2.Parent := BuildModePage.Surface;
Lbl2.Font.Size := 7 ;
Lbl2.Left := 15;
Lbl3 := TLabel.Create(BuildProcessPage);
Lbl3.Top := ScaleY(20);
Lbl3.Caption :=CustomMessage('NextGenCaption');
Lbl3.AutoSize := True;
Lbl3.Parent := BuildProcessPage.Surface;
Lbl5 := TLabel.Create(BuildProcessPage);
Lbl5.Top := ScaleY(40);
Lbl5.Left := ScaleX(-3);
Lbl5.Caption :=CustomMessage('NextGenCaptionPgmBegin');
Lbl5.AutoSize := True;
Lbl5.Parent := BuildProcessPage.Surface;
ProgressPage := CreateOutputProgressPage(CustomMessage('ProcessingCMake'),CustomMessage('BuildProcess'));
end;
procedure AboutButtonOnClick(Sender: TObject);
begin
MsgBox(CustomMessage('DolphinMsg'), mbInformation, mb_Ok);
end;
procedure URLLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://paradiseo.gforge.inria.fr', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
procedure InitializeWizard();
var
AboutButton, CancelButton: TButton;
URLLabel: TNewStaticText;
begin
CreateTheWizardPages;
CancelButton := WizardForm.CancelButton;
AboutButton := TButton.Create(WizardForm);
AboutButton.Left := WizardForm.ClientWidth - CancelButton.Left - CancelButton.Width - ScaleX(5);
AboutButton.Top := CancelButton.Top;
AboutButton.Width := CancelButton.Width;
AboutButton.Height := CancelButton.Height;
AboutButton.Caption := '&About...';
AboutButton.OnClick := @AboutButtonOnClick;
AboutButton.Parent := WizardForm;
URLLabel := TNewStaticText.Create(WizardForm);
URLLabel.Caption := 'http://paradiseo.gforge.inria.fr';
URLLabel.Cursor := crHand;
URLLabel.OnClick := @URLLabelOnClick;
URLLabel.Parent := WizardForm;
URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
URLLabel.Font.Color := clBlue;
URLLabel.Top := AboutButton.Top + AboutButton.Height - URLLabel.Height - 2;
URLLabel.Left := AboutButton.Left + AboutButton.Width + ScaleX(10);
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssDone then
OkToCopyLog := True;
end;
procedure DeinitializeSetup();
begin
if OkToCopyLog then
FileCopy (ExpandConstant ('{log}'), ExpandConstant ('{app}\logs\install-') + GetTodaysName ('') + '.log' , FALSE);
RestartReplace (ExpandConstant ('{log}'), '');
end;
[UninstallDelete]
Type: files; Name: "{app}\*"
Type: filesandordirs; Name: "{app}\*"

Binary file not shown.

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,17 @@
name = paradiseo
id =
version = 2
description = Paradiseo
author = clive.canape@inria.fr
filebase = file:///home/lille/ccanape/paradiseo.tgz
filesite = file://grid5000/postinstall/sid-x64-base-1.0-post.tgz
size =
initrdpath = /boot/initrd.img-2.6.18-3-amd64
kernelpath = /boot/vmlinuz-2.6.18-3-amd64
kernelparam =
fdisktype = 83
filesystem = ext2
siteid = 1
optsupport = 0
user = ccanape

Binary file not shown.

View file

@ -0,0 +1,93 @@
#! /bin/bash
function exe()
{
if [ -e $1 ];
then
kadeploy -e paradiseo -f $1 -p $2
rm $1
PIDS="$PIDS $!"
fi
}
`cat $OAR_NODEFILE | uniq > machines`
NODEFILE=machines
PIDS=""
N=0
for i in `cat machines`;
do
name=${i%-*r}
if [ "$name" = "azur" ];then
echo $i >>machineAzur
let $[N+=1]
fi
if [ "$name" = "sol" ];then
echo $i >>machineSol
let $[N+=1]
fi
if [ "$name" = "helios" ];then
echo $i >>machineHelios
let $[N+=1]
fi
if [ "$name" = "chti" ];then
echo $i >>machineChti
let $[N+=1]
fi
if [ "$name" = "chicon" ];then
echo $i >>machineChicon
let $[N+=1]
fi
if [ "$name" = "capricorne" ];then
echo $i >>machineCapricorne
let $[N+=1]
fi
if [ "$name" = "sagittaire" ];then
echo $i >>machineSagittaire
let $[N+=1]
fi
if [ "$name" = "gdx" ];then
echo $i >>machineGdx
let $[N+=1]
fi
if [ "$name" = "node" ];then
echo $i >>machineNode
let $[N+=1]
fi
if [ "$name" = "grelon" ];then
echo $i >>machineGrelon
let $[N+=1]
fi
if [ "$name" = "grillon" ];then
echo $i >>machineGrillon
let $[N+=1]
fi
done
exe machineSol sda3
exe machineAzur hda3
exe machineHelios sda3
exe machineChti sda3
exe machineChicon sda3
exe machineCapricorne hda3
exe machineSagittaire sda3
exe machineGdx sda3
exe machineNode sda3
exe machineGrelon sda3
exe machineGrillon sda3
wait $PIDS
MASTER=`head -n 1 $OAR_NODEFILE`
scp -o StrictHostKeyChecking=no machines root@${MASTER}:/home/g5k/machines
echo "You can connect to the Master : $MASTER"

View file

@ -0,0 +1,7 @@
if [ $# -eq 2 ];then
oarsub -I -t deploy -l nodes=$1,walltime=0$2:00:00
else
echo "Usage : launch.sh <node-number> <time>"
exit 0;
fi

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

View file

@ -0,0 +1,72 @@
######################################################################################
### 0) Include the install configuration file where are defined the main variables
######################################################################################
INCLUDE(${CMAKE_SOURCE_DIR}/install.cmake)
######################################################################################
######################################################################################
### 1) Set your application properties
######################################################################################
# Define your project name
PROJECT(mySimpleApplication)
######################################################################################
######################################################################################
### 2) Include the sources
######################################################################################
INCLUDE_DIRECTORIES(${PARADISEO_EO_SRC_DIR}/src
${PARADISEO_MO_SRC_DIR}/src
${PARADISEO_MOEO_SRC_DIR}/src
${PARADISEO_PEO_SRC_DIR}/src)
######################################################################################
######################################################################################
### 3) Specify where CMake can find the libraries
######################################################################################
# Link with the EO library directory, only if you need it
LINK_DIRECTORIES(${PARADISEO_EO_BIN_DIR}/lib)
# Link with the MOEO library directory, only if you need it
LINK_DIRECTORIES(${PARADISEO_MOEO_BIN_DIR}/lib)
# Link with the PEO library directory, only if you need it
LINK_DIRECTORIES(${PARADISEO_PEO_BIN_DIR}/lib)
######################################################################################
######################################################################################
### 4) Define your target: just an executable here
######################################################################################
ADD_EXECUTABLE(mySimpleApplication mySimpleApplication.cpp)
######################################################################################
######################################################################################
### 5) Link the librairies for your executable
######################################################################################
# Only if you need to link libraries
TARGET_LINK_LIBRARIES(mySimpleApplication eo eoutils)
######################################################################################

View file

@ -0,0 +1,82 @@
==========================================================================================
INFORMATION
==========================================================================================
PARADISEO (PARallel and DIStributed Evolving Objects) is a white-box object-oriented
framework dedicated to the flexible design of metaheursitics.
This package is especially designed to help anyone who uses ParadisEO to build his
own application.
==========================================================================================
RELEASE
==========================================================================================
The current release of the "mySimpleApplication" package is 1.0.
==========================================================================================
WEBSITE
==========================================================================================
Please visit our website at http://paradiseo.gforge.inria.fr.
==========================================================================================
BUGS
==========================================================================================
You can find the ParadisEO's bug tracker at:
http://gforge.inria.fr/tracker/?atid=663&group_id=145&func=browse
==========================================================================================
CONTACT
==========================================================================================
For any question or for help, please write us at: paradiseo-help@lists.gforge.inria.fr.
==========================================================================================
DEPENDENCIES
==========================================================================================
ParadisEO uses EO, a templates-based, ANSI-C++ compliant evolutionary computation library.
It contains classes for almost any kind of evolutionary computation you might come up to - at
least for the ones we could think of.
EO Website:
http://eodev.sourceforge.net/.
EO is distributed under the GNU Lesser General Public License:
http://www.gnu.org/copyleft/lesser.html
==========================================================================================
LICENSE
==========================================================================================
ParadisEO is governed by the CeCILL license under French law and
abiding by the rules of distribution of free software. You can use,
modify and/ or redistribute the software under the terms of the CeCILL
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info".
As a counterpart to the access to the source code and rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty and the software's author, the holder of the
economic rights, and the successive licensors have only limited liability.
In this respect, the user's attention is drawn to the risks associated
with loading, using, modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean that it is complicated to manipulate, and that also
therefore means that it is reserved for developers and experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and, more generally, to use and operate it in the
same conditions as regards security.
The fact that you are presently reading this means that you have had
knowledge of the CeCILL license and that you accept its terms.

View file

@ -0,0 +1,326 @@
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
//
// 2005-12-01 ksc Initial release
//
-->
<html>
<head>
<title>Build My Simple Application</title>
<link rel='stylesheet' title="A Bit Modern" href='http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/inria.css' type='text/css' />
<script type="text/javascript">
<!-- //
browser_type = navigator.appName;
if (browser_type == "Microsoft Internet Explorer") {
document.write("<link href='http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/inria-ie.css' rel='stylesheet' type='text/css' />");
}
//-->
</script>
</head>
<body>
<!-- Logo -->
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td><a href="/"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/logo.png" border="0" alt="" width="198" height="52" /></a></td>
</tr>
</table>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td align="left" bgcolor="#E0E0E0" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/topleft.png" height="9" width="9" alt="" /></td>
<td bgcolor="#E0E0E0" width="30"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="30" height="1" alt="" /></td>
<td align="right" bgcolor="#E0E0E0" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/topright.png" height="9" width="9" alt="" /></td>
</tr>
<!-- Outer body row -->
<tr>
<td bgcolor="#E0E0E0"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="10" height="1" alt="" /></td>
<td valign="top" width="100%" bgcolor="#E0E0E0" >
<!-- Inner Tabs / Shell -->
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td align="left" bgcolor="#ffffff" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/topleft-inner.png" height="9" width="9" alt="" /></td>
<td bgcolor="#ffffff"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="1" height="1" alt="" /></td>
<td align="right" bgcolor="#ffffff" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/topright-inner.png" height="9" width="9" alt="" /></td>
</tr>
<tr>
<td bgcolor="#ffffff"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="10" height="1" alt="" /></td>
<td valign="top" width="100%" bgcolor="white">
<!-- -->
<!-- BODY -->
<!-- -->
<div id='head'>
<div id='logo'><img src="../img/paradisEO_small.png"/></div>
<div id='page-title'>Paradiseo</div>
<!--div id='page-subtitle'>BuildMySimpleApplication</div-->
<div id='page-actions'><ul><li class='browse'><a accesskey='' class='selflink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.BuildMySimpleApplication'>View</a>
</li><li class='edit'><a accesskey='e' rel='nofollow' class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.BuildMySimpleApplication?action=edit'>Edit</a>
</li><li class='diff'><a accesskey='h' rel='nofollow' class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.BuildMySimpleApplication?action=diff'>History</a>
</li><li class='upload'><a accesskey='ak_attach' rel='nofollow' class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.BuildMySimpleApplication?action=upload'>Attach</a>
</li><li class='print'><a accesskey='' rel='nofollow' class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.BuildMySimpleApplication?action=print'>Print</a>
</li></ul>
</div>
</div>
<div id='content'>
<div id='col-left'>
<!--PageLeftFmt-->
<div id='sidebar'><p class='sidehead'> <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Home'>Home</a></strong>
</p><ul><li> <a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.News'>&gt; News</a>
</li><li> <a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.AssociatedEvents'>&gt; Associated events</a>
</li></ul><p class='vspace sidehead'> <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Documentation'>Documentation</a></strong>
</p><ul><li><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.API'>&gt; API doc</a>
</li><li><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.DesignConcepts'>&gt; Design concepts</a>
</li><li><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Tutorials'>&gt; Tutorials</a>
</li><li><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.FAQ'>&gt; FAQ</a>
</li><li><a class='urllink' href='http://gforge.inria.fr/forum/?group_id=145' rel='nofollow'>&gt; Forum</a>
</li><li><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.MailingList'>&gt; Mailing lists</a>
</li><li><a class='urllink' href='http://gforge.inria.fr/tracker/?atid=663&amp;group_id=145&amp;func=browse' rel='nofollow'>&gt; Bug tracking</a>
</li></ul><p class='vspace sidehead'> <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Download'>Download</a></strong>
</p>
<p class='vspace sidehead'> <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Contributions.Index'>Contribution repository</a></strong>
</p>
<p class='vspace sidehead'> <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Publications'>Publi &amp; appli</a></strong>
</p>
<p class='vspace sidehead'> <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Team'>Team</a></strong>
</p>
<p class='vspace'><span style='display: none;'> <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Applications'>Applications</a></strong> </span>
<br /><span style='display: none;'> sidehead <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Features'>Features</a></strong> </span>
<br /><span style='display: none;'> sidehead <strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.License'>License</a></strong> </span>
<br /><span style='display: none;'> sidehead<strong><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Contact'>Contact</a></strong> </span>
</p>
<p class='vspace' style='text-align: right;'> <span style='font-size:83%'><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Site.SideBar?action=edit'>edit</a></span>
</p>
</div>
<!--/PageLeftFmt-->
</div>
<div id='col-right'>
<!--PageText-->
<div id='wikitext'>
<h1><big>Build a simple application using <span class='wikiword'>ParadisEO</span></big></h1>
<h2><big>Introduction</big></h2>
<p>There are many steps required to produce a <span class='wikiword'>ParadisEO</span>-based program. As <span class='wikiword'>ParadisEO</span> is a C++ library, any "main" file containing the basic instructions of your program is expected to be first <strong>compiled</strong>. The way the program should be compiled depends on the environment. For example on Unix platforms, some "Makefiles" allow an automatic compilation of a C++ source file and the generation of the "makefiles" themselves is achieved by <a class='urllink' href='http://www.cmake.org/' rel='nofollow'>CMake</a>. <span class='wikiword'>CMake</span> manages the software compilation process and it can be used with several generators:
</p>
<div class='vspace'></div><dl><dd><ul><li><strong><span style='color: blue;'>Visual Studio 8 2005 </span></strong> (Win32 + Win64) projects
</li><li><strong><span style='color: blue;'>Visual Studio 7 .NET 2003 </span></strong> projects
</li><li><strong><span style='color: blue;'>Visual Studio 7 and 6</span></strong> projects
</li><li><strong><span style='color: blue;'><span class='wikiword'>NMake</span></span></strong> Makefiles
</li><li><strong><span style='color: blue;'><span class='wikiword'>MinGW</span></span></strong> Makefiles
</li><li><strong><span style='color: blue;'>Borland</span></strong> Makefiles
</li><li><strong><span style='color: blue;'><span class='wikiword'>KDevelop</span></span></strong> projects
</li><li><strong><span style='color: blue;'>Unix</span></strong> Makefiles
</li><li><strong><span style='color: blue;'>Xcode</span></strong> Projects
</li><li><strong><span style='color: blue;'>MSYS</span></strong> Makefiles
</li><li><strong><span style='color: blue;'><span class='wikiword'>WMake</span></span></strong> Makefiles
</li></ul></dd></dl><p class='vspace'>A package containing all the required files has been developped for any user who wants to build his own application easily. In this case, we suppose this application to be only made of a "main.cpp" file (no specific components). The content of the package is pre-filled so that a user has just to paste his algorithm in the cpp-file and change one variable.
</p>
<div class='vspace'></div><h2><big>"mySimpleApplication" package's content</big></h2>
<p>The package contains the following files:
</p>
<div class='vspace'></div><ul><li><strong>install.cmake</strong>: Contains variables that specify where <span class='wikiword'>ParadisEO</span> has been installed.
</li><li><strong>mySimpleApplication.cpp</strong> : A C++ main containing the algorithm
</li><li><strong>README</strong>: Contains basic information
</li><li><strong><span class='wikiword'>CMakeLists</span>.txt</strong>: The only <span class='wikiword'>CMake</span> configuration file
</li><li><strong>index.html</strong>: The content of the current web-page
</li></ul><p class='vspace'><span style='color: red;'><strong>It can be downloaded from </span><a class='wikilink' href='http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.Here'>here</a></strong>.
</p>
<div class='vspace'></div><h2><big>Adapt the package</big></h2>
<p>Here, we give the steps to custom the package for any application.
</p>
<p class='vspace'><em>Note: For further help about <span class='wikiword'>CMake</span>, see the <a class='urllink' href='http://www.cmake.org/HTML/Documentation.html' rel='nofollow'>CMake documentation</a></em>.
</p>
<p class='vspace'><br />
</p><div style='color: black; font-size: 8pt; background-color: #99CCFF;' >
<h3><ins>Step 1 : Develop your algorithm</ins></h3>
</div>
<p>You just have to edit the <strong><em>mySimpleApplication.cpp</em></strong> and implement your code.
</p>
<div class='vspace'></div><div style='color: black; font-size: 8pt; background-color: #CCFFCC;' >
<ol><li>include &lt;iostream&gt;
</li></ol><p>/// #include &lt; file &gt;
</p>
<p class='vspace'>/// Use functions from namespace std ?
<br />using namespace std;
</p>
<p class='vspace'>int main(int argc, char **argv)
<br />{
</p><pre> /// Your code ...
cout &lt;&lt; "I'm a simple application linked with <span class='wikiword'>ParadisEO</span>" &lt;&lt; endl ;
return 1;
</pre><p class='vspace'>}'
</p></div>
<p class='vspace'><br />
</p><div style='color: black; font-size: 8pt; background-color: #99CCFF;' >
<h3><ins>Step 2 : Change the <span class='wikiword'>ParadisEO</span>-path in "install.cmake"</ins></h3>
</div>
<p class='vspace'>When <span class='wikiword'>ParadisEO</span> has been configured in the standard way (the global package containing all the modules has been installed), just replace "myDirectory" by the absolute path to <span class='wikiword'>ParadisEO</span> the section n°1:
</p>
<div class='vspace'></div><div style='color: black; font-size: 8pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>SET(PARADISEO_DIR <strong>"myDirectory"</strong> CACHE PATH "<span class='wikiword'>ParadisEO</span> directory" FORCE)
</div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'>... replaced (for example) by:
</p>
<div class='vspace'></div><div style='color: black; font-size: 8pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>SET(PARADISEO_DIR <strong>"/home/john/paradiseo-ix86-1.0"</strong> CACHE PATH "<span class='wikiword'>ParadisEO</span> directory" FORCE)
</div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'><span style='color: red;'><strong>Warning: Under Windows, the path to <span class='wikiword'>ParadisEO</span> must be given with double-backslashes</strong>:</span>
</p><div style='color: black; font-size: 8pt; background-color: #ffcc33;' >
<p>SET(PARADISEO_DIR <strong>"E:<big>\\</big>soft<big>\\</big>paradiseo-ix86-1.0"</strong> CACHE PATH "<span class='wikiword'>ParadisEO</span> directory" FORCE)
</p></div>
<p class='vspace'><span style='color: green;'><strong>If you have simply installed <span class='wikiword'>ParadisEO</span> using the provided install script, go to the next step.</strong></span>
</p>
<p class='vspace'><strong><em>Advanced configuration</em></strong>: <br />
<br />If the modules of <span class='wikiword'>ParadisEO</span> have been deployed separately, the path to each module (EO, MO, MOEO and PEO) can also be specified. Here's an example for EO, <em>PARADISEO_EO_SRC_DIR</em> refers to the EO sources, <em>PARADISEO_EO_BIN_DIR</em> is the directory where EO has been compiled.
</p>
<div class='vspace'></div><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>SET(PARADISEO_EO_SRC_DIR "${PARADISEO_DIR}/paradiseo-eo" CACHE PATH
<dl><dd><dl><dd><dl><dd><dl><dd><dl><dd><div class='indent'>"<span class='wikiword'>ParadisEO</span>-EO source directory" FORCE)
</div></dd></dl></dd></dl></dd></dl></dd></dl></dd></dl></div><div class='indent'>SET(PARADISEO_EO_BIN_DIR "${PARADISEO_DIR/paradiseo-eo/build" CACHE PATH
<dl><dd><dl><dd><dl><dd><dl><dd><dl><dd><div class='indent'>"<span class='wikiword'>ParadisEO</span>-EO binary directory" FORCE)
</div></dd></dl></dd></dl></dd></dl></dd></dl></dd></dl></div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'>A third section is added to automatically set the flags required when using the package under Visual Studio 8. It has no effect for all the other cases.
</p>
<p class='vspace'><br />
</p><div style='color: black; font-size: 8pt; background-color: #99CCFF;' >
<h3><ins>Step 3 : Adapt the <span class='wikiword'>CMakeLists</span>.txt</ins></h3>
</div>
<div class='vspace'></div><ul><li>Give your project name in the section n°1 :
</li></ul><div class='vspace'></div><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>PROJECT(mySimpleApplication)
</div></dd></dl></dd></dl></dd></dl></div>
<div class='vspace'></div><ul><li>Specify the source directories to include
</li></ul><div class='vspace'></div><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>INCLUDE_DIRECTORIES(${PARADISEO_EO_SRC_DIR}/src
<dl><dd><dl><dd><dl><dd><dl><dd><dl><dd><dl><dd><dl><dd><dl><dd><div class='indent'>${PARADISEO_MO_SRC_DIR}/src
</div><div class='indent'>${PARADISEO_MOEO_SRC_DIR}/src
</div><div class='indent'>${PARADISEO_PEO_SRC_DIR}/src)
</div></dd></dl></dd></dl></dd></dl></dd></dl></dd></dl></dd></dl></dd></dl></dd></dl></div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'>For example, if you only use <span class='wikiword'>ParadisEO</span>-EO sources, just set:
</p><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>INCLUDE_DIRECTORIES(${PARADISEO_EO_SRC_DIR}/src
</div></dd></dl></dd></dl></dd></dl></div>
<div class='vspace'></div><ul><li>Specify where are the libraries (for the linker)
</li></ul><div class='vspace'></div><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>LINK_DIRECTORIES(${PARADISEO_EO_BIN_DIR}/lib)
</div><div class='indent'>LINK_DIRECTORIES(${PARADISEO_MOEO_BIN_DIR}/lib)
</div><div class='indent'>LINK_DIRECTORIES(${PARADISEO_PEO_BIN_DIR}/lib)
</div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'>For example, if you only use <span class='wikiword'>ParadisEO</span>-EO and <span class='wikiword'>ParadisEO</span>-MOEO libraries, just set:
</p><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>LINK_DIRECTORIES(${PARADISEO_EO_BIN_DIR}/lib)
</div><div class='indent'>LINK_DIRECTORIES(${PARADISEO_MOEO_BIN_DIR}/lib)
</div></dd></dl></dd></dl></dd></dl></div>
<div class='vspace'></div><ul><li>Define your executable: give the executable name + the name of the cpp file
</li></ul><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>ADD_EXECUTABLE(mySimpleApplication mySimpleApplication.cpp)
</div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'>Important: If you change the name of the cpp file "mySimpleApplication.cpp", don't forget to give the right name for the ADD_EXECUTABLE command.
</p>
<div class='vspace'></div><ul><li>Specify the libraries that should be linked to build your executable (for example, for Unix Makefiles, the option used to give the linked libraries is "-L &lt; a path to the lib&gt;")
</li></ul><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>TARGET_LINK_LIBRARIES(mySimpleApplication lib1 lib2 ...)
</div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'>An example using the "eo" and "eoutils" of <span class='wikiword'>ParadisEO</span>-EO is:
</p><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>TARGET_LINK_LIBRARIES(mySimpleApplication <strong>eo eoutils</strong>)
</div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'>Important: If you change the name of the executable (see a few lines above), don't forget to replace <strong><em>"mySimpleApplication</em></strong> " by the right name in:
</p>
<div class='vspace'></div><div style='color: black; font-size: 9pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><dl><dd><div class='indent'>TARGET_LINK_LIBRARIES(<strong><em>mySimpleApplication</em></strong> eo eoutils)
</div></dd></dl></dd></dl></dd></dl></div>
<p class='vspace'><br />
</p><div style='color: black; font-size: 8pt; background-color: #99CCFF;' >
<h3><ins>Step 4 : Launch the build process and compile</ins></h3>
</div>
<p class='vspace'>There are two ways to build and compile your program:
</p><div class='indent'>- Compile it in the source directory, that means where your main cpp file is
</div><div class='indent'>- Compile it somewhere else in order to have on one hand the source files, on the other the rest (makefiles of configuration file, ".o" files, the executable itself). This way is called <strong><em> out-source-build</em></strong> and is highly recommended.
</div><p class='vspace'>Moreover, you should know in advance the kind of generator you want <span class='wikiword'>CMake</span> to use.
</p>
<p class='vspace'>For an "out-source-build", let's suppose your application's source file is located in <span style='color: green;'> <strong>/home/john/mySimpleApplication</strong></span> and you want to build it in <span style='color: red;'> <strong>/home/john/mySimpleApplication/build</strong></span> for <strong><span style='color: blue;'>Visual Studio 8 2005 </span></strong> :
</p>
<p class='vspace'>(<em>Note: The "build" directory exists if the archive, we would advise you to build your program in it</em>.)
</p>
<p class='vspace'>From <strong><span style='color: red;'>/home/john/mySimpleApplication/build</span></strong>, simply run (from a terminal/console)
</p><div style='color: black; font-size: 8pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><div class='indent'><strong>cmake <span style='color: green;'>/home/john/mySimpleApplication</span> -G<span style='color: blue;'>"Visual Studio 8 2005"</span></strong>
</div></dd></dl></dd></dl></div>
<p class='vspace'>The generic call for <span class='wikiword'>CMake</span> is:
</p><div style='color: black; font-size: 8pt; background-color: #ffffcc;' >
<dl><dd><dl><dd><div class='indent'><strong>cmake <span style='color: green;'>&lt;path to the sources&gt; </span> -G<span style='color: blue;'>"&lt;generator name&gt;"</span></strong>
</div></dd></dl></dd></dl></div>
<p class='vspace'>Then :
</p>
<p class='vspace'>- Go in <strong><span style='color: red;'>/home/john/mySimpleApplication/build</span></strong>
<br />- Compile your program using the appropriate tool. Examples:
</p><dl><dd><dl><dd><div class='indent'>--&gt; If you chose the Unix Makefiles generator, enter "make"
</div><div class='indent'>--&gt; If you chose Visual Studio generator, open the generated solution/project and compile
</div><div class='indent'>--&gt; ...
</div></dd></dl></dd></dl>
<p class='vspace'><br />
<br /><strong> For further help and information, feel free to send us an email at <a class='urllink' href='mailto:paradiseo-help@lists.gforge.inria.fr' rel='nofollow'>paradiseo-help@lists.gforge.inria.fr</a> </strong>.
</p>
</div>
<!--PageFooterFmt-->
<div id='footer'>abitmodernCopyright
&nbsp&nbsp&nbsp&nbsp
<!--a href="http://paradiseo.gforge.inria.fr/index.php?n=Paradiseo.BuildMySimpleApplication?action=pdf" title="Read this web page on format .pdf" ><acronym title="Portable Document Format" lang="en">PDF version </acronym></a-->
</div> <!--/PageFooterFmt-->
</div>
<div class='clearfix'></div>
</div>
<div class='clearfix'></div>
<!-- -->
<!-- END BODY -->
<!-- -->
</td>
<td width="10" bgcolor="#ffffff"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="2" height="1" alt="" /></td>
</tr>
<tr>
<td align="left" bgcolor="#E0E0E0" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/bottomleft-inner.png" height="11" width="11" alt="" /></td>
<td bgcolor="#ffffff"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="1" height="1" alt="" ></td>
<td align="right" bgcolor="#E0E0E0" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/bottomright-inner.png" height="11" width="11" alt="" /></td>
</tr>
</TABLE>
</td>
<td width="10" bgcolor="#E0E0E0"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="2" height="1" alt="" /></td>
</tr>
<tr>
<td align="left" bgcolor="#E0E0E0" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/bottomleft.png" height="9" width="9" alt="" /></td>
<td bgcolor="#E0E0E0"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/clear.png" width="1" height="1" alt="" /></td>
<td align="right" bgcolor="#E0E0E0" width="9"><img src="http://paradiseo.gforge.inria.fr/pub/skins/abitmodern/images/tabs/bottomright.png" height="9" width="9" alt="" /></td>
</tr>
</table>
</body>
</html>

View file

@ -0,0 +1,50 @@
#########################################################################################################
# 1) ParadisEO install: SIMPLE Configuration
#########################################################################################################
# Here, just specify PARADISEO_DIR : the directory where ParadisEO has been installed
SET(PARADISEO_DIR "myDirectory" CACHE PATH "ParadisEO directory" FORCE)
#########################################################################################################
#########################################################################################################
# 2) ParadisEO install: ADVANCED Configuration
#########################################################################################################
SET(PARADISEO_EO_SRC_DIR "${PARADISEO_DIR}/paradiseo-eo" CACHE PATH "ParadisEO-EO source directory" FORCE)
SET(PARADISEO_EO_BIN_DIR "${PARADISEO_DIR}/paradiseo-eo/build" CACHE PATH "ParadisEO-EO binary directory" FORCE)
SET(PARADISEO_MO_SRC_DIR "${PARADISEO_DIR}/paradiseo-mo" CACHE PATH "ParadisEO-MO source directory" FORCE)
SET(PARADISEO_MO_BIN_DIR "${PARADISEO_DIR}/paradiseo-mo/build" CACHE PATH "ParadisEO-MO binary directory" FORCE)
SET(PARADISEO_MOEO_SRC_DIR "${PARADISEO_DIR}/paradiseo-moeo" CACHE PATH "ParadisEO-MOEO source directory" FORCE)
SET(PARADISEO_MOEO_BIN_DIR "${PARADISEO_DIR}/paradiseo-moeo/build" CACHE PATH "ParadisEO-MOEO binary directory" FORCE)
SET(PARADISEO_PEO_SRC_DIR "${PARADISEO_DIR}/paradiseo-peo" CACHE PATH "ParadisEO-PEO source directory" FORCE)
SET(PARADISEO_PEO_BIN_DIR "${PARADISEO_DIR}/paradiseo-peo/build" CACHE PATH "ParadisEO-PEO binary directory" FORCE)
#########################################################################################################
######################################################################################
### 3) OPTIONNAL: Windows advanced config - especially for Microsoft Visual Studio 8
######################################################################################
IF(CMAKE_CXX_COMPILER MATCHES cl)
IF(NOT WITH_SHARED_LIBS)
IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005")
SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy")
SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od")
SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2")
SET(CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O2")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MTd /Z7 /Od")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE")
ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005")
ENDIF(NOT WITH_SHARED_LIBS)
ENDIF(CMAKE_CXX_COMPILER MATCHES cl)
######################################################################################

View file

@ -0,0 +1,17 @@
#include <iostream>
// #include < file >
// Use functions from namespace std ?
using namespace std;
int main(int argc, char **argv)
{
// Your code ...
cout << "I'm a simple application linked with ParadisEO" << endl ;
return 1;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,613 @@
%!PS-Adobe-2.0 EPSF-2.0
%%Title: /home/jeremie/Bureau/uml/dia/sketchEO.dia
%%Creator: Dia v0.96.1
%%CreationDate: Fri Oct 3 11:21:28 2008
%%For: humeau
%%Orientation: Portrait
%%Magnification: 1.0000
%%BoundingBox: 0 0 674 396
%%BeginSetup
%%EndSetup
%%EndComments
%%BeginProlog
[ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
/parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
/two /three /four /five /six /seven /eight /nine /colon /semicolon
/less /equal /greater /question /at /A /B /C /D /E
/F /G /H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W /X /Y
/Z /bracketleft /backslash /bracketright /asciicircum /underscore /quoteleft /a /b /c
/d /e /f /g /h /i /j /k /l /m
/n /o /p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/space /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright
/ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron /degree /plusminus /twosuperior /threesuperior
/acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf
/threequarters /questiondown /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis /Eth /Ntilde
/Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex
/Udieresis /Yacute /Thorn /germandbls /agrave /aacute /acircumflex /atilde /adieresis /aring
/ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave
/uacute /ucircumflex /udieresis /yacute /thorn /ydieresis] /isolatin1encoding exch def
/cp {closepath} bind def
/c {curveto} bind def
/f {fill} bind def
/a {arc} bind def
/ef {eofill} bind def
/ex {exch} bind def
/gr {grestore} bind def
/gs {gsave} bind def
/sa {save} bind def
/rs {restore} bind def
/l {lineto} bind def
/m {moveto} bind def
/rm {rmoveto} bind def
/n {newpath} bind def
/s {stroke} bind def
/sh {show} bind def
/slc {setlinecap} bind def
/slj {setlinejoin} bind def
/slw {setlinewidth} bind def
/srgb {setrgbcolor} bind def
/rot {rotate} bind def
/sc {scale} bind def
/sd {setdash} bind def
/ff {findfont} bind def
/sf {setfont} bind def
/scf {scalefont} bind def
/sw {stringwidth pop} bind def
/tr {translate} bind def
/ellipsedict 8 dict def
ellipsedict /mtrx matrix put
/ellipse
{ ellipsedict begin
/endangle exch def
/startangle exch def
/yrad exch def
/xrad exch def
/y exch def
/x exch def /savematrix mtrx currentmatrix def
x y tr xrad yrad sc
0 0 1 startangle endangle arc
savematrix setmatrix
end
} def
/mergeprocs {
dup length
3 -1 roll
dup
length
dup
5 1 roll
3 -1 roll
add
array cvx
dup
3 -1 roll
0 exch
putinterval
dup
4 2 roll
putinterval
} bind def
/Times-Roman-latin1
/Times-Roman findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Times-Italic-latin1
/Times-Italic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Times-Bold-latin1
/Times-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Times-BoldItalic-latin1
/Times-BoldItalic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/AvantGarde-Book-latin1
/AvantGarde-Book findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/AvantGarde-BookOblique-latin1
/AvantGarde-BookOblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/AvantGarde-Demi-latin1
/AvantGarde-Demi findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/AvantGarde-DemiOblique-latin1
/AvantGarde-DemiOblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Bookman-Light-latin1
/Bookman-Light findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Bookman-LightItalic-latin1
/Bookman-LightItalic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Bookman-Demi-latin1
/Bookman-Demi findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Bookman-DemiItalic-latin1
/Bookman-DemiItalic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Courier-latin1
/Courier findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Courier-Oblique-latin1
/Courier-Oblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Courier-Bold-latin1
/Courier-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Courier-BoldOblique-latin1
/Courier-BoldOblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-latin1
/Helvetica findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-Oblique-latin1
/Helvetica-Oblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-Bold-latin1
/Helvetica-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-BoldOblique-latin1
/Helvetica-BoldOblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-Narrow-latin1
/Helvetica-Narrow findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-Narrow-Oblique-latin1
/Helvetica-Narrow-Oblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-Narrow-Bold-latin1
/Helvetica-Narrow-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Helvetica-Narrow-BoldOblique-latin1
/Helvetica-Narrow-BoldOblique findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/NewCenturySchoolbook-Roman-latin1
/NewCenturySchoolbook-Roman findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/NewCenturySchoolbook-Italic-latin1
/NewCenturySchoolbook-Italic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/NewCenturySchoolbook-Bold-latin1
/NewCenturySchoolbook-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/NewCenturySchoolbook-BoldItalic-latin1
/NewCenturySchoolbook-BoldItalic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Palatino-Roman-latin1
/Palatino-Roman findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Palatino-Italic-latin1
/Palatino-Italic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Palatino-Bold-latin1
/Palatino-Bold findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Palatino-BoldItalic-latin1
/Palatino-BoldItalic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/Symbol-latin1
/Symbol findfont
definefont pop
/ZapfChancery-MediumItalic-latin1
/ZapfChancery-MediumItalic findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
/ZapfDingbats-latin1
/ZapfDingbats findfont
dup length dict begin
{1 index /FID ne {def} {pop pop} ifelse} forall
/Encoding isolatin1encoding def
currentdict end
definefont pop
28.346000 -28.346000 scale
-12.695000 -8.110000 translate
%%EndProlog
0.100000 slw
[] 0 sd
0.678431 0.847059 0.901961 srgb
n 22.125000 -1.407500 m 22.125000 -0.007500 l 26.585000 -0.007500 l 26.585000 -1.407500 l f
0.000000 0.000000 1.000000 srgb
n 22.125000 -1.407500 m 22.125000 -0.007500 l 26.585000 -0.007500 l 26.585000 -1.407500 l cp s
/Helvetica-Bold-latin1 ff 0.700000 scf sf
0.000000 0.000000 0.000000 srgb
(eoEasyEA) 22.375000 -0.580000 m
dup sw 3.960000 exch sub
8 div exch 0.0 exch
gs 1 -1 sc ashow gr
0.678431 0.847059 0.901961 srgb
n 24.285000 -2.107500 m 24.285000 -1.107500 l 26.985000 -1.107500 l 26.985000 -2.107500 l f
[1.000000] 0 sd
[0.300000] 0 sd
0.000000 0.000000 1.000000 srgb
n 24.285000 -2.107500 m 24.285000 -1.107500 l 26.985000 -1.107500 l 26.985000 -2.107500 l cp s
/Courier-latin1 ff 0.560000 scf sf
0.000000 0.000000 0.000000 srgb
(:EOT) 24.585000 -1.605000 m
dup sw 1.400000 exch sub
4 div exch 0.0 exch
gs 1 -1 sc ashow gr
0.100000 slw
[] 0 sd
1.000000 1.000000 1.000000 srgb
n 21.745000 -5.090000 m 21.745000 -3.690000 l 26.935000 -3.690000 l 26.935000 -5.090000 l f
0.000000 0.000000 1.000000 srgb
n 21.745000 -5.090000 m 21.745000 -3.690000 l 26.935000 -3.690000 l 26.935000 -5.090000 l cp s
/Helvetica-BoldOblique-latin1 ff 0.700000 scf sf
0.000000 0.000000 0.000000 srgb
(eoContinue) 21.995000 -4.262500 m
dup sw 4.690000 exch sub
10 div exch 0.0 exch
gs 1 -1 sc ashow gr
1.000000 1.000000 1.000000 srgb
n 24.635000 -5.790000 m 24.635000 -4.790000 l 27.335000 -4.790000 l 27.335000 -5.790000 l f
[0.300000] 0 sd
[0.300000] 0 sd
0.000000 0.000000 1.000000 srgb
n 24.635000 -5.790000 m 24.635000 -4.790000 l 27.335000 -4.790000 l 27.335000 -5.790000 l cp s
/Courier-latin1 ff 0.560000 scf sf
0.000000 0.000000 0.000000 srgb
(:EOT) 24.935000 -5.287500 m
dup sw 1.400000 exch sub
4 div exch 0.0 exch
gs 1 -1 sc ashow gr
0.100000 slw
[] 0 sd
1.000000 1.000000 1.000000 srgb
n 29.120000 -1.352500 m 29.120000 0.047500 l 35.992500 0.047500 l 35.992500 -1.352500 l f
0.000000 0.000000 1.000000 srgb
n 29.120000 -1.352500 m 29.120000 0.047500 l 35.992500 0.047500 l 35.992500 -1.352500 l cp s
/Helvetica-BoldOblique-latin1 ff 0.700000 scf sf
0.000000 0.000000 0.000000 srgb
(eoReplacement) 29.370000 -0.525000 m
dup sw 6.372500 exch sub
13 div exch 0.0 exch
gs 1 -1 sc ashow gr
1.000000 1.000000 1.000000 srgb
n 33.692500 -2.052500 m 33.692500 -1.052500 l 36.392500 -1.052500 l 36.392500 -2.052500 l f
[0.300000] 0 sd
[0.300000] 0 sd
0.000000 0.000000 1.000000 srgb
n 33.692500 -2.052500 m 33.692500 -1.052500 l 36.392500 -1.052500 l 36.392500 -2.052500 l cp s
/Courier-latin1 ff 0.560000 scf sf
0.000000 0.000000 0.000000 srgb
(:EOT) 33.992500 -1.550000 m
dup sw 1.400000 exch sub
4 div exch 0.0 exch
gs 1 -1 sc ashow gr
0.100000 slw
[] 0 sd
1.000000 1.000000 1.000000 srgb
n 12.745000 -1.390000 m 12.745000 0.010000 l 19.450000 0.010000 l 19.450000 -1.390000 l f
0.000000 0.000000 1.000000 srgb
n 12.745000 -1.390000 m 12.745000 0.010000 l 19.450000 0.010000 l 19.450000 -1.390000 l cp s
/Helvetica-BoldOblique-latin1 ff 0.700000 scf sf
0.000000 0.000000 0.000000 srgb
(eoPopEvalFunc) 12.995000 -0.562500 m
dup sw 6.205000 exch sub
13 div exch 0.0 exch
gs 1 -1 sc ashow gr
1.000000 1.000000 1.000000 srgb
n 17.150000 -2.090000 m 17.150000 -1.090000 l 19.850000 -1.090000 l 19.850000 -2.090000 l f
[0.300000] 0 sd
[0.300000] 0 sd
0.000000 0.000000 1.000000 srgb
n 17.150000 -2.090000 m 17.150000 -1.090000 l 19.850000 -1.090000 l 19.850000 -2.090000 l cp s
/Courier-latin1 ff 0.560000 scf sf
0.000000 0.000000 0.000000 srgb
(:EOT) 17.450000 -1.587500 m
dup sw 1.400000 exch sub
4 div exch 0.0 exch
gs 1 -1 sc ashow gr
0.100000 slw
[] 0 sd
1.000000 1.000000 1.000000 srgb
n 22.445000 2.810000 m 22.445000 4.210000 l 26.372500 4.210000 l 26.372500 2.810000 l f
0.000000 0.000000 1.000000 srgb
n 22.445000 2.810000 m 22.445000 4.210000 l 26.372500 4.210000 l 26.372500 2.810000 l cp s
/Helvetica-BoldOblique-latin1 ff 0.700000 scf sf
0.000000 0.000000 0.000000 srgb
(eoBreed) 22.695000 3.637500 m
dup sw 3.427500 exch sub
7 div exch 0.0 exch
gs 1 -1 sc ashow gr
1.000000 1.000000 1.000000 srgb
n 24.072500 2.110000 m 24.072500 3.110000 l 26.772500 3.110000 l 26.772500 2.110000 l f
[0.300000] 0 sd
[0.300000] 0 sd
0.000000 0.000000 1.000000 srgb
n 24.072500 2.110000 m 24.072500 3.110000 l 26.772500 3.110000 l 26.772500 2.110000 l cp s
/Courier-latin1 ff 0.560000 scf sf
0.000000 0.000000 0.000000 srgb
(:EOT) 24.372500 2.612500 m
dup sw 1.400000 exch sub
4 div exch 0.0 exch
gs 1 -1 sc ashow gr
0.100000 slw
[] 0 sd
1.000000 1.000000 1.000000 srgb
n 17.242900 5.789290 m 17.242900 7.189290 l 22.905400 7.189290 l 22.905400 5.789290 l f
0.000000 0.000000 1.000000 srgb
n 17.242900 5.789290 m 17.242900 7.189290 l 22.905400 7.189290 l 22.905400 5.789290 l cp s
/Helvetica-BoldOblique-latin1 ff 0.700000 scf sf
0.000000 0.000000 0.000000 srgb
(eoTransform) 17.492900 6.616790 m
dup sw 5.162500 exch sub
11 div exch 0.0 exch
gs 1 -1 sc ashow gr
1.000000 1.000000 1.000000 srgb
n 20.605400 5.089290 m 20.605400 6.089290 l 23.305400 6.089290 l 23.305400 5.089290 l f
[0.300000] 0 sd
[0.300000] 0 sd
0.000000 0.000000 1.000000 srgb
n 20.605400 5.089290 m 20.605400 6.089290 l 23.305400 6.089290 l 23.305400 5.089290 l cp s
/Courier-latin1 ff 0.560000 scf sf
0.000000 0.000000 0.000000 srgb
(:EOT) 20.905400 5.591790 m
dup sw 1.400000 exch sub
4 div exch 0.0 exch
gs 1 -1 sc ashow gr
0.100000 slw
[] 0 sd
1.000000 1.000000 1.000000 srgb
n 25.720300 5.810000 m 25.720300 7.210000 l 29.765300 7.210000 l 29.765300 5.810000 l f
0.000000 0.000000 1.000000 srgb
n 25.720300 5.810000 m 25.720300 7.210000 l 29.765300 7.210000 l 29.765300 5.810000 l cp s
/Helvetica-BoldOblique-latin1 ff 0.700000 scf sf
0.000000 0.000000 0.000000 srgb
(eoSelect) 25.970300 6.637500 m
dup sw 3.545000 exch sub
8 div exch 0.0 exch
gs 1 -1 sc ashow gr
1.000000 1.000000 1.000000 srgb
n 27.465300 5.110000 m 27.465300 6.110000 l 30.165300 6.110000 l 30.165300 5.110000 l f
[0.300000] 0 sd
[0.300000] 0 sd
0.000000 0.000000 1.000000 srgb
n 27.465300 5.110000 m 27.465300 6.110000 l 30.165300 6.110000 l 30.165300 5.110000 l cp s
/Courier-latin1 ff 0.560000 scf sf
0.000000 0.000000 0.000000 srgb
(:EOT) 27.765300 5.612500 m
dup sw 1.400000 exch sub
4 div exch 0.0 exch
gs 1 -1 sc ashow gr
0.100000 slw
[] 0 sd
0 slj
0 slc
n 22.905400 6.489290 m 24.408750 6.489290 l 24.408750 5.518945 l s
[] 0 sd
0 slj
0 slc
1.000000 1.000000 1.000000 srgb
n 24.408750 4.260366 m 24.648750 4.960366 l 24.408750 5.660366 l 24.168750 4.960366 l ef
0.100000 slw
[] 0 sd
0 slj
0 slc
0.000000 0.000000 0.000000 srgb
n 24.408750 4.260366 m 24.648750 4.960366 l 24.408750 5.660366 l 24.168750 4.960366 l cp s
/Courier-latin1 ff 0.560000 scf sf
0.100000 slw
[] 0 sd
0 slj
0 slc
n 24.340000 -3.690000 m 24.340000 -2.548750 l 24.355000 -2.548750 l 24.355000 -2.666079 l s
[] 0 sd
0 slj
0 slc
1.000000 1.000000 1.000000 srgb
n 24.355000 -1.407500 m 24.115000 -2.107500 l 24.355000 -2.807500 l 24.595000 -2.107500 l ef
0.100000 slw
[] 0 sd
0 slj
0 slc
0.000000 0.000000 0.000000 srgb
n 24.355000 -1.407500 m 24.115000 -2.107500 l 24.355000 -2.807500 l 24.595000 -2.107500 l cp s
0.100000 slw
[] 0 sd
0 slj
0 slc
n 29.120000 -0.652500 m 27.852500 -0.652500 l 27.852500 -0.707500 l 27.843579 -0.707500 l s
[] 0 sd
0 slj
0 slc
1.000000 1.000000 1.000000 srgb
n 26.585000 -0.707500 m 27.285000 -0.947500 l 27.985000 -0.707500 l 27.285000 -0.467500 l ef
0.100000 slw
[] 0 sd
0 slj
0 slc
0.000000 0.000000 0.000000 srgb
n 26.585000 -0.707500 m 27.285000 -0.947500 l 27.985000 -0.707500 l 27.285000 -0.467500 l cp s
0.100000 slw
[] 0 sd
0 slj
0 slc
n 24.408750 2.059646 m 24.408750 1.026073 l 24.355000 1.026073 l 24.355000 1.251079 l s
[] 0 sd
0 slj
0 slc
1.000000 1.000000 1.000000 srgb
n 24.355000 -0.007500 m 24.595000 0.692500 l 24.355000 1.392500 l 24.115000 0.692500 l ef
0.100000 slw
[] 0 sd
0 slj
0 slc
0.000000 0.000000 0.000000 srgb
n 24.355000 -0.007500 m 24.595000 0.692500 l 24.355000 1.392500 l 24.115000 0.692500 l cp s
0.100000 slw
[] 0 sd
0 slj
0 slc
n 19.450000 -0.690000 m 20.762361 -0.690000 l 20.762361 -0.707500 l 20.816143 -0.707500 l s
[] 0 sd
0 slj
0 slc
1.000000 1.000000 1.000000 srgb
n 22.074722 -0.707500 m 21.374722 -0.467500 l 20.674722 -0.707500 l 21.374722 -0.947500 l ef
0.100000 slw
[] 0 sd
0 slj
0 slc
0.000000 0.000000 0.000000 srgb
n 22.074722 -0.707500 m 21.374722 -0.467500 l 20.674722 -0.707500 l 21.374722 -0.947500 l cp s
0.100000 slw
[] 0 sd
0 slj
0 slc
n 25.670047 6.510000 m 24.408750 6.510000 l 24.408750 5.518945 l s
[] 0 sd
0 slj
0 slc
1.000000 1.000000 1.000000 srgb
n 24.408750 4.260366 m 24.648750 4.960366 l 24.408750 5.660366 l 24.168750 4.960366 l ef
0.100000 slw
[] 0 sd
0 slj
0 slc
0.000000 0.000000 0.000000 srgb
n 24.408750 4.260366 m 24.648750 4.960366 l 24.408750 5.660366 l 24.168750 4.960366 l cp s
showpage

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View file

@ -0,0 +1,64 @@
######################################################################################
### 1) Project properties
######################################################################################
# set the project name
PROJECT(paradisEO-practices)
# check cmake version compatibility
CMAKE_MINIMUM_REQUIRED(VERSION 2.4 FATAL_ERROR)
# regular expression checking
INCLUDE_REGULAR_EXPRESSION("^.*$" "^$")
# set a language
ENABLE_LANGUAGE(CXX)
ENABLE_LANGUAGE(C)
#####################################################################################
######################################################################################
### 2) Include the main configuration variables
######################################################################################
# Need the config file whose full path is given thanks to the "config" variable
INCLUDE("install.cmake")
######################################################################################
######################################################################################
### 3) Paths checking
######################################################################################
IF(WIN32)
SET (ABSOLUTE_PATH_REGEX "^[A-Z]:|^[a-z]:")
ELSE(WIN32)
SET (ABSOLUTE_PATH_REGEX "^/")
ENDIF(WIN32)
SET(REQUIRED_PATHS "EO_SRC_DIR" "EO_BIN_DIR" "MO_SRC_DIR" "MO_BIN_DIR")
FOREACH (path ${REQUIRED_PATHS})
IF(EXISTS ${${path}})
MESSAGE (STATUS "Using ${path}=${${path}}")
ELSE(EXISTS ${${path}})
MESSAGE (FATAL_ERROR "\n Cannot find \"${${path}}\". Please, fill \"${config}\" with a correct value")
ENDIF(EXISTS ${${path}})
IF(NOT ${${path}} MATCHES "${ABSOLUTE_PATH_REGEX}")
MESSAGE (FATAL_ERROR "${${path}} MUST BE an absolute path")
ENDIF(NOT ${${path}} MATCHES "${ABSOLUTE_PATH_REGEX}")
ENDFOREACH (path ${REQUIRED_PATHS})
######################################################################################
######################################################################################
### 6) Where must cmake go now ?
######################################################################################
SUBDIRS(tsp lesson2 lesson3 lesson4 lesson5)
######################################################################################

View file

@ -0,0 +1,7 @@
PARADISEO (PARallel and DIStributed Evolving Objects) is a white-box object-oriented framework dedicated to the flexible design of metaheursitics. Based on EO, this template-based, ANSI-C++ compliant computation library is portable across both Windows system and sequential platforms (Unix, Linux, MacOS, etc.).
WEBSITE: http://paradiseo.gforge.inria.fr

View file

@ -0,0 +1,61 @@
#####################################################################################
### Manage the build type
#####################################################################################
# the user should choose the build type on windows environments,excepted under cygwin (default=none)
SET(CMAKE_DEFAULT_BUILD_TYPE "Release" CACHE STRING "Variable that stores the default CMake build type" FORCE)
FIND_PROGRAM(MEMORYCHECK_COMMAND
NAMES purify valgrind
PATHS
"/usr/local/bin /usr/bin [HKEY_LOCAL_MACHINE\\SOFTWARE\\Rational Software\\Purify\\Setup;InstallFolder]"
DOC "Path to the memory checking command, used for memory error detection.")
IF(NOT CMAKE_BUILD_TYPE)
SET( CMAKE_BUILD_TYPE
${CMAKE_DEFAULT_BUILD_TYPE} CACHE STRING
"Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel."
FORCE)
ENDIF(NOT CMAKE_BUILD_TYPE)
IF(WIN32 AND NOT CYGWIN)
IF(CMAKE_CXX_COMPILER MATCHES cl)
IF(NOT WITH_SHARED_LIBS)
IF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005")
SET(CMAKE_CXX_FLAGS "/nologo /W3 /Gy")
SET(CMAKE_CXX_FLAGS_DEBUG "/MTd /Z7 /Od")
SET(CMAKE_CXX_FLAGS_RELEASE "/MT /O2")
SET(CMAKE_CXX_FLAGS_MINSIZEREL "/MT /O2")
SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/MTd /Z7 /Od")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE")
ENDIF(CMAKE_GENERATOR STREQUAL "Visual Studio 8 2005")
ENDIF(NOT WITH_SHARED_LIBS)
ENDIF(CMAKE_CXX_COMPILER MATCHES cl)
ELSE(WIN32 AND NOT CYGWIN)
IF(CMAKE_COMPILER_IS_GNUCXX)
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g -Wall -Wextra")
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2")
SET(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} -O6")
ENDIF(CMAKE_COMPILER_IS_GNUCXX)
ENDIF(WIN32 AND NOT CYGWIN)
IF(CMAKE_BUILD_TYPE MATCHES Debug)
ADD_DEFINITIONS(-DCMAKE_VERBOSE_MAKEFILE=ON)
ENDIF(CMAKE_BUILD_TYPE MATCHES Debug)
#####################################################################################
##########################################################################################################################################
### ParadisEO Install Configuration
### The path to the modules EO and MO must be specified above.
##########################################################################################################################################
SET(EO_SRC_DIR "E:\\temp\\ParadisEO\\paradiseo-eo" CACHE PATH "ParadisEO-EO source directory" FORCE)
SET(EO_BIN_DIR "E:\\temp\\ParadisEO\\paradiseo-eo\\build" CACHE PATH "ParadisEO-EO binary directory" FORCE)
SET(MO_SRC_DIR "E:\\temp\\ParadisEO\\paradiseo-mo" CACHE PATH "ParadisMO-MO source directory" FORCE)
SET(MO_BIN_DIR "E:\\temp\\ParadisEO\\paradiseo-mo\\build" CACHE PATH "ParadisMO-MO binary directory" FORCE)
###########################################################################################################################################

View file

@ -0,0 +1,216 @@
\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage{epsf}
\usepackage{amssymb}
\usepackage{here}
\usepackage{comment}
\usepackage{graphicx}
\topmargin -2.5cm
\textheight 25,5cm
\textwidth 16cm
\oddsidemargin 0cm
\evensidemargin 0cm
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fichier entete
%\input /usr/local/home/gisEns/fseynhae/Ens/Entete.tex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\textbf{ParadisEO Practices} {\copyright Franck Seynhaeve,
Jean-Charles Boisson, Thomas Legrand} \Large{\textbf{\\\\
Lesson 1: Install ParadisEO and the practices}}
\normalsize
\vspace{-0,3cm}
\section{The ParadisEO platform}
\medskip
ParadisEO\footnote{http$\,:$//paradiseo.gforge.inria.fr/} (PARallel and DIStributed Evolving Objects) is a white-box
object-oriented framework dedicated to the flexible design of metaheuristics.
Based on EO\footnote{\tt http$\,:$//eodev.sourceforge.net/} (Evolutionary Computation Framework),
this template-based,
ANSI-C++ compliant computation library is portable across both Windows
system and sequential platforms (Unix, Linux, MacOS, etc.).
\smallskip
ParadisEO can be used under several environments as the build process (CMake)
is able to generate:
\begin{itemize}
\item[$\bullet$] Visual Studio 8 2005 (Win32 + Win64) projects
\item[$\bullet$] Visual Studio 7 .NET 2003 projects
\item[$\bullet$] Visual Studio 7 and 6 projects
\item[$\bullet$] NMake Makefiles
\item[$\bullet$] MinGW Makefiles
\item[$\bullet$] Borland Makefiles
\item[$\bullet$] KDevelop projects
\item[$\bullet$] Unix Makefiles
\item[$\bullet$] Xcode Projects
\item[$\bullet$] MSYS Makefiles
\item[$\bullet$] WMake Makefiles
\end{itemize}
\smallskip
Paradiseo is composed of several packages that constitute a global framework.
\begin{center}
\end{center}
\begin{itemize}
\item[$\bullet$] Paradiseo-EO provides tools for the development of population-based metaheuristic:
\begin{itemize}
\item[$\ast$] Genetic algorithm
\item[$\ast$] Genetic programming
\item[$\ast$] Particle Swarm Optimization
\item[$\ast$] ...
\end{itemize}
\item[$\bullet$] Paradiseo-MO provides tools for the development of single solution-based metaheuristics:
\begin{itemize}
\item[$\ast$] Hill-Climbing
\item[$\ast$] Tabu Search
\item[$\ast$] Simulated annealing
\item[$\ast$] Incremental evaluation, partial neighbourhood
\item[$\ast$] ...
\end{itemize}
\item[$\bullet$] Paradiseo-MOEO provides tools for the design of Multi-objective metaheuristics:
\begin{itemize}
\item[$\ast$] MO fitness assignment shemes (the ones used in NSGA-II, IBEA ...)
\item[$\ast$] MO diversity assignment shemes (sharing, crowding)
\item[$\ast$] Elitism
\item[$\ast$] Performance metrics (contribution, entropy ...)
\item[$\ast$] Easy-to-use standard evolutionary algorithms (NSGA-II, IBEA ...)
\item[$\ast$] ...
\end{itemize}
\item[$\bullet$] Paradiseo-PEO provides tools for the design of parallel and distributed metaheuristics:
\begin{itemize}
\item[$\ast$] Parallel evaluation
\item[$\ast$] Parallel evaluation function
\item[$\ast$] Island model
\item[$\ast$] Cellular model
\end{itemize}
\end{itemize}
\smallskip
Furthermore, Paradiseo also introduces tools for the design of distributed, hybrid and cooperative models:
\begin{itemize}
\item[$\bullet$] High level hybrid metaheuristics: coevolutionary and relay model
\item[$\bullet$] Low level hybrid metaheuristics: coevolutionary and relay model
\end{itemize}
\section{Installation}
\subsection{ParadisEO}
The practices require ParadisEO to be installed on your
computer. You can easily process to the installation:
\begin{itemize}
\item[$\bullet$] Make sure to have the following tools
available in your environment:
\hspace{1cm}$\vartriangleright$ {\tt CMake}
\\\hspace*{1cm}$\vartriangleright$ {\tt Tar} or a similar extractor
\item[$\bullet$] Download ParadisEO (choose the {\tt tar.gz} file)
from:
\\\hspace*{1cm}$\vartriangleright$ {\tt http$\,:$//www2.lifl.fr/OPAC/Paradiseo/licence/FrmDownload.php}
\item[$\bullet$] Extract the content of the archive:
\\\hspace*{1cm}$\vartriangleright$ Put the archive {\tt
paradiseo-ix86-1.0.tar.gz} in the directory of your
choice. Let's suppose you put it in \textbf{{\tt
/home/me/software}}
\\\hspace*{1cm}$\vartriangleright$ Extract it by entering
the following line in a terminal: {\tt tar xzf paradiseo-ix86-1.0.tar.gz}
\item[$\bullet$] Install it:
\\\hspace*{1cm}$\vartriangleright$ {\tt bash installParadiseo.sh} or {\tt sh
installParadiseo.sh} if your shell is a "sh" one
\\\hspace*{1cm}$\vartriangleright$ \textbf{Select your generator (Unix Makefiles recommended) }
\\\hspace*{1cm}$\vartriangleright$ \textbf{Select the minimum installation mode by choosing the \emph{basic install} }
\end{itemize}
\subsection{The archive dedicated to the practices}
To start with the practices, you have to install the archive
called {\tt paradiseo\_practices\_0208.tgz} that you have been
given. This archive is also available for download at
{\tt http$\,:$//paradiseo.gforge.inria.fr}.\\\\
\textbf{ Let's suppose you have installed ParadisEO
into the {\tt /home/me/software} directory. Each time
it appears, you are to replace this path with the one
corresponding to your ParadisEO installation directory.
}
\\\\When the archive has been extracted, please go in the
{\tt practices} directory and edit the {\tt install.cmake}
file:
\begin{itemize}
\item[$\bullet$] Fill the {\tt EO\_SRC\_DIR} variable with the path to ParadisEO-EO :
\hspace{1cm}{\tt /home/me/software/ParadisEO/paradiseo-eo}
\item[$\bullet$] Fill the {\tt EO\_BIN\_DIR} variable with the path to
ParadisEO-EO build directory :
\hspace{1cm}{\tt /home/me/software/ParadisEO/paradiseo-eo/build}
\item[$\bullet$] Fill the {\tt MO\_SRC\_DIR} variable with the path to ParadisEO-MO :
\hspace{1cm}{\tt /home/me/software/ParadisEO/paradiseo-mo}
\item[$\bullet$] Fill the {\tt MO\_BIN\_DIR} variable with the path to
ParadisEO-MO build directory :
\hspace{1cm}{\tt /home/me/software/ParadisEO/paradiseo-mo/build}
\end{itemize}
\medskip
Then, go in the {\tt build} directory and run :
\hspace{1cm}{\tt cmake ../}
\medskip
You can now compile the practices using: {\tt make}
\section{Archive content}
At the top level of the {\tt practices} directory, you must have:
\begin{itemize}
\item[$\bullet$] {\bf tsp/src}: Contains the sources required to solve the TSP
problem using ParadisEO. The associated benchmarks are in the
{\bf benchs} directory.
\item[$\bullet$] {\bf lesson1}: ParadisEO installation practice, contains {\tt lesson1.pdf}.
\item[$\bullet$] {\bf lesson2}: Contains an implementation of the Hill-Climbing
{\tt hill\_climbing.cpp} and the corresponding tutorial {\tt lesson2.pdf}.
\item[$\bullet$] {\bf lesson3}: Contains an implementation of a tabu
search {\tt tabu\_search.cpp} and the corresponding tutorial {\tt lesson3.pdf}.
\item[$\bullet$] {\bf lesson4}: Contains an implementation of the
Simulated Annealing {\tt simulated\_annealing.cpp} and the corresponding
tutorial {\tt lesson4.pdf}.
\item[$\bullet$] {\bf lesson5}: Contains an implementation of a
genetic algorithm {\tt gen\_algo.cpp} .
\item[$\bullet$] {\bf build}: Contains the built targets and
the executables (subdirectories {\bf lesson1},
{\bf lesson2}, {\bf lesson3}, {\bf lesson4} and {\bf lesson5}).
\end{itemize}
\end{document}

View file

@ -0,0 +1,41 @@
######################################################################################
### 1) Include the sources
######################################################################################
INCLUDE_DIRECTORIES(${EO_SRC_DIR}/src)
INCLUDE_DIRECTORIES(${EO_SRC_DIR}/src/utils)
INCLUDE_DIRECTORIES(${MO_SRC_DIR}/src)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/tsp/src)
######################################################################################
######################################################################################
### 2) Specify where CMake can find the libraries
######################################################################################
LINK_DIRECTORIES(${EO_BIN_DIR}/lib ${CMAKE_BINARY_DIR}/tsp/src)
######################################################################################
######################################################################################
### 3) Define your target(s): just an executable here
######################################################################################
ADD_EXECUTABLE(hill_climbing hill_climbing.cpp)
ADD_DEPENDENCIES(hill_climbing tsp)
######################################################################################
######################################################################################
### 4) Link the librairies for your target(s)
######################################################################################
TARGET_LINK_LIBRARIES(hill_climbing tsp eo eoutils)
######################################################################################

View file

@ -0,0 +1,67 @@
// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
// "hill_climbing.cpp"
// (c) OPAC Team, LIFL, 2003-2006
/* LICENCE TEXT
Contact: paradiseo-help@lists.gforge.inria.fr
*/
#include <mo.h>
#include <graph.h>
#include <route.h>
#include <route_eval.h>
#include <route_init.h>
#include <two_opt.h>
#include <two_opt_init.h>
#include <two_opt_next.h>
#include <two_opt_incr_eval.h>
int
main (int __argc, char * __argv [])
{
if (__argc != 2) {
std :: cerr << "Usage : ./hill_climbing [instance]" << std :: endl ;
return 1 ;
}
srand (1000) ;
Graph :: load (__argv [1]) ; // Instance
Route route ; // Solution
RouteInit init ; // Sol. Random Init.
init (route) ;
RouteEval full_eval ; // Full. Eval.
full_eval (route) ;
std :: cout << "[From] " << route << std :: endl ;
/* Tools for an efficient (? :-))
local search ! */
TwoOptInit two_opt_init ; // Init.
TwoOptNext two_opt_next ; // Explorer.
TwoOptIncrEval two_opt_incr_eval ; // Eff. eval.
//moFirstImprSelect <TwoOpt> two_opt_select ;
moBestImprSelect <TwoOpt> two_opt_select ;
//moRandImprSelect <TwoOpt> two_opt_select ;
moHC <TwoOpt> hill_climbing (two_opt_init, two_opt_next, two_opt_incr_eval, two_opt_select, full_eval) ;
hill_climbing (route) ;
std :: cout << "[To] " << route << std :: endl ;
return 0 ;
}

View file

@ -0,0 +1,96 @@
\documentclass[a4paper]{article}
\usepackage[english]{babel}
\usepackage{epsf}
\usepackage{amssymb}
\usepackage{here}
\usepackage{comment}
\usepackage{graphicx}
\topmargin -2.5cm
\textheight 25,5cm
\textwidth 16cm
\oddsidemargin 0cm
\evensidemargin 0cm
\begin{document}
\textbf{ParadisEO Practices} {\copyright Franck Seynhaeve,
Jean-Charles Boisson, Thomas Legrand} \Large{\textbf{\\\\
Lesson 2: Implement a Hill-Climbing using ParadisEO}}
\normalsize
\vspace{-0,3cm}
\section{Example}
The archive {\tt paradiseo\_practices\_0208.tgz} installed
on your computer contains a Hill-Climbing implemented using ParadisEO-MO~
(see {\tt hill\_climbing} in the {\bf build/lesson2} directory).
\medskip
To run it, please go in {\bf build/lesson2} and start the program {\tt hill\_climbing} by giving
one of the TSP instances located in {\bf tsp/benchs}.
\medskip
When entering {\tt ./hill\_climbing ../../tsp/benchs/berlin52.tsp}, you should end up with the
following outputs:
\smallskip
\noindent
\texttt{>> Loading [../../tsp/benchs/eil101.tsp]} \\
\texttt{[From] -3435 101 36 55 54 65 50 80 14 27 46 15 93 58 78 47 99 64 68}\\
\texttt{49 72 81 82 76 41 16 66 30 29 83 95 71 38 35 19 5 63 26 43 96 79 52}\\
\texttt{59 69 7 56 37 3 32 28 9 13 1 91 31 73 11 40 62 17 24 45 88 6 85 22}\\
\texttt{18 20 44 94 12 33 60 89 74 42 97 21 100 57 77 92 98 51 2 25 75 10 86}\\
\texttt{8 23 67 70 34 90 87 48 53 0 39 4 84 61}\\
\texttt{[To] -708 101 36 97 91 58 95}\\
\texttt{98 92 84 99 90 43 13 37 85 15 60 16 83 4 59 82 44 7 45 35 48 63 10}\\
\texttt{18 46 47 81 17 51 26 27 25 39 57 52 100 88 5 93 94 12 1 56 86 96 41}\\
\texttt{42 14 40 21 73 71 72 20 3 55 74 22 66 38 24 54 53 23 28 78 2 76 67}\\
\texttt{79 11 75 68 0 49 32 80 77 33 50 8 34 70 64 65 19 29 69 31 89 62 9 30}\\
\texttt{87 6 61}\\
The printed-out results show for the initial best solution and the final one~:
\\ \hspace*{0.5cm}-the length of the route
\\ \hspace*{0.5cm}-the number of cities
\\ \hspace*{0.5cm}-the route itself (notice that the city index starts from 0).
\section{Tabu search}
Study the {\tt hill\_climbing.cpp} file located in the {\bf lesson2} directory
using~:
\begin{itemize}
\item[$\bullet$] the ParadisEO-MO API documentation available at~:
\hspace{1cm}http$\,:$//paradiseo.gforge.inria.fr/addon/paradiseo-mo/doc/index.html
\item[$\bullet$] the source files located in the {\bf tsp/src/} directory
\end{itemize}
\section{Customize the Hill CLimbing}
Make a backup (copy) of the cpp file {\tt tabuhill\_climbing.cpp}. You can now modify the
original {\tt hill\_climbing.cpp} and use the existing makefiles to compile it.
Edit and modify the {\tt hill\_climbing.cpp} file~:
\begin{itemize}
\item[$\bullet$] Try to tune a few parameters (random seed
and the move selector) and observe the changes on the final
solution.
\end{itemize}
\smallskip
To compile {\tt hill\_climbing.cpp}, you should use the
command {\tt make} from {\bf build/lesson2}.
\medskip
Finally, test your modifications on several TSP instances ({\tt berlin52},
{\tt eil101} ...) and compare the results you get.
\end{document}

View file

@ -0,0 +1,41 @@
######################################################################################
### 1) Include the sources
######################################################################################
INCLUDE_DIRECTORIES(${EO_SRC_DIR}/src)
INCLUDE_DIRECTORIES(${EO_SRC_DIR}/src/utils)
INCLUDE_DIRECTORIES(${MO_SRC_DIR}/src)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/tsp/src)
######################################################################################
######################################################################################
### 2) Specify where CMake can find the libraries
######################################################################################
LINK_DIRECTORIES(${EO_BIN_DIR}/lib ${CMAKE_BINARY_DIR}/tsp/src)
######################################################################################
######################################################################################
### 3) Define your target(s): just an executable here
######################################################################################
ADD_EXECUTABLE(tabu_search tabu_search.cpp)
ADD_DEPENDENCIES(tabu_search tsp)
######################################################################################
######################################################################################
### 4) Link the librairies for your target(s)
######################################################################################
TARGET_LINK_LIBRARIES(tabu_search tsp eo eoutils)
######################################################################################

Some files were not shown because too many files have changed in this diff Show more