diff --git a/Makefile b/Makefile index 5f491ea1..92fbcec1 100644 --- a/Makefile +++ b/Makefile @@ -55,8 +55,8 @@ check_dir: install: check_dir - @./bootstrap/ccb.py $(DEVTOOLSET_OPTION) --project=coriolis --make="$(SMP_FLAGS) install" - @./bootstrap/ccb.py $(DEVTOOLSET_OPTION) --project=coriolis --make="-j1 install" --doc + @./bootstrap/ccb.py $(DEVTOOLSET_OPTION) --project=support --project=coriolis --make="$(SMP_FLAGS) install" + @./bootstrap/ccb.py $(DEVTOOLSET_OPTION) --project=support --project=coriolis --make="-j1 install" --doc @echo ""; \ echo "============================================================================"; \ echo "Coriolis has been successfully built"; \ diff --git a/README.rst b/README.rst index 91cef49b..861e003e 100644 --- a/README.rst +++ b/README.rst @@ -47,13 +47,17 @@ To build Coriolis, ensure the following prerequisites are met: * bison & flex. * Qt 4 or 5. * libxml2. +* RapidJSON * A C++11 compliant compiler. The build system relies on a fixed directory tree from the root of the user currently building it. Thus first step is to get a clone of the repository in the right place. Proceed as follow: :: - ego@home:~$ mkdir -p ~/coriolis-2.x/src + ego@home:~$ mkdir -p ~/coriolis-2.x/src/support + ego@home:~$ cd ~/coriolis-2.x/src/support + ego@home:~$ git clone http://github.com/miloyip/rapidjson + ego@home:~$ git checkout ec322005072076ef53984462fb4a1075c27c7dfd ego@home:~$ cd ~/coriolis-2.x/src ego@home:src$ git clone https://www-soc.lip6.fr/git/coriolis.git ego@home:src$ cd coriolis diff --git a/bootstrap/build.conf b/bootstrap/build.conf index 8447c0e8..b29b7b1e 100644 --- a/bootstrap/build.conf +++ b/bootstrap/build.conf @@ -6,7 +6,12 @@ projectdir = 'coriolis-2.x' projects = [ - { 'name' : "coriolis" + { 'name' : "support" + , 'tools' : [ "rapidjson" + ] + , 'repository': 'No_repository_for_support' + } + , { 'name' : "coriolis" , 'tools' : [ "bootstrap" , "vlsisapd" , "hurricane" @@ -38,6 +43,7 @@ projects = [ , "graph" , "pharos" , "isis" + , "horus" #, "schematic" , "solver" , "autoDTR" diff --git a/bootstrap/builder/AboutWidget.py b/bootstrap/builder/AboutWidget.py index eb7428cd..9113665a 100644 --- a/bootstrap/builder/AboutWidget.py +++ b/bootstrap/builder/AboutWidget.py @@ -2,7 +2,7 @@ # -*- mode:Python -*- # # This file is part of the Coriolis Software. -# Copyright (c) UPMC/LIP6 2012-2015, All Rights Reserved +# Copyright (c) UPMC/LIP6 2012-2016, All Rights Reserved # # +-----------------------------------------------------------------+ # | C O R I O L I S | @@ -54,7 +54,7 @@ class AboutWidget ( QWidget ): subTitle.setFont( QFont('Courier',10,QFont.Bold) ) authors = QLabel( 'Coriolis CAD System 1.0 . . . . . . . . ccb 1.0\n' - 'Copyright (c) 2008-2015 . . . . . . . . . . UPMC\n' + 'Copyright (c) 2008-2016 . . . . . . . . . . UPMC\n' 'Authors . . . . . . . . . . . . . Damien Dupuis\n' ' . . . . . . . . . . . . Jean-Paul Chaput\n' 'E-Mail . . . . . . . . Jean-Paul.Chaput@lip6.fr' diff --git a/bootstrap/builder/Builder.py b/bootstrap/builder/Builder.py index fc8031c9..e9eb302e 100644 --- a/bootstrap/builder/Builder.py +++ b/bootstrap/builder/Builder.py @@ -1,7 +1,7 @@ # -*- mode:Python -*- # # This file is part of the Coriolis Software. -# Copyright (c) UPMC/LIP6 2008-2015, All Rights Reserved +# Copyright (c) UPMC/LIP6 2008-2016, All Rights Reserved # # +-----------------------------------------------------------------+ # | C O R I O L I S | @@ -150,8 +150,9 @@ class Builder: def _build ( self, tool ): - toolSourceDir = os.path.join ( self.sourceDir, tool.getToolDir() ) - toolBuildDir = os.path.join ( self.buildDir , tool.name ) + toolSourceDir = os.path.join ( self.sourceDir, tool.getToolDir() ) + toolBuildDir = os.path.join ( self.buildDir , tool.name ) + cmakeInstallDir = os.path.join ( self.installDir, "share", "cmake", "Modules" ) # Supplied directly in the CMakeLists.txt. #cmakeModules = os.path.join ( self.installDir, "share", "cmake", "Modules" ) @@ -170,8 +171,10 @@ class Builder: if self._qt5: command += [ "-D", "WITH_QT5:STRING=TRUE" ] if self._openmp: command += [ "-D", "WITH_OPENMP:STRING=TRUE" ] - command += [ "-D", "CMAKE_BUILD_TYPE:STRING=%s" % self.buildMode - , "-D", "BUILD_SHARED_LIBS:STRING=%s" % self.enableShared + command += [ "-D", "CMAKE_BUILD_TYPE:STRING=%s" % self.buildMode + , "-D", "BUILD_SHARED_LIBS:STRING=%s" % self.enableShared + , "-D", "CMAKE_INSTALL_PREFIX:STRING=%s" % self.installDir + , "-D", "CMAKE_INSTALL_DIR:STRING=%s" % cmakeInstallDir #, "-D", "CMAKE_MODULE_PATH:STRING=%s" % cmakeModules , toolSourceDir ] @@ -191,6 +194,7 @@ class Builder: , "-D", "CHECK_DETERMINISM:STRING=%s" % self._checkDeterminism , "-D", "CMAKE_VERBOSE_MAKEFILE:STRING=%s" % self._verboseMakefile , "-D", "CMAKE_INSTALL_PREFIX:STRING=%s" % self.installDir + , "-D", "CMAKE_INSTALL_DIR:STRING=%s" % cmakeInstallDir ] if self.libSuffix: command += [ "-D", "LIB_SUFFIX:STRING=%s" % self.libSuffix ] diff --git a/bootstrap/builder/BuilderGui.py b/bootstrap/builder/BuilderGui.py index ec750562..77ab6f39 100644 --- a/bootstrap/builder/BuilderGui.py +++ b/bootstrap/builder/BuilderGui.py @@ -2,7 +2,7 @@ # -*- mode:Python -*- # # This file is part of the Coriolis Software. -# Copyright (c) UPMC/LIP6 2012-2015, All Rights Reserved +# Copyright (c) UPMC/LIP6 2012-2016, All Rights Reserved # # +-----------------------------------------------------------------+ # | C O R I O L I S | diff --git a/bootstrap/builder/CompileWidget.py b/bootstrap/builder/CompileWidget.py index cb527a1d..c911e2dc 100644 --- a/bootstrap/builder/CompileWidget.py +++ b/bootstrap/builder/CompileWidget.py @@ -2,7 +2,7 @@ # -*- mode:Python -*- # # This file is part of the Coriolis Software. -# Copyright (c) UPMC/LIP6 2012-2015, All Rights Reserved +# Copyright (c) UPMC/LIP6 2012-2016, All Rights Reserved # # +-----------------------------------------------------------------+ # | C O R I O L I S | diff --git a/bootstrap/builder/Configuration.py b/bootstrap/builder/Configuration.py index ca574de7..19a8c498 100644 --- a/bootstrap/builder/Configuration.py +++ b/bootstrap/builder/Configuration.py @@ -2,7 +2,7 @@ # -*- mode:Python -*- # # This file is part of the Coriolis Software. -# Copyright (c) UPMC 2008-2015, All Rights Reserved +# Copyright (c) UPMC 2008-2016, All Rights Reserved # # +-----------------------------------------------------------------+ # | C O R I O L I S | @@ -146,6 +146,8 @@ class Configuration ( object ): self._osCygwinW7 = re.compile (".*CYGWIN_NT-6\.1.*i686.*") self._osCygwinW8_64 = re.compile (".*CYGWIN_NT-6\.[2-3].*x86_64.*") self._osCygwinW8 = re.compile (".*CYGWIN_NT-6\.[2-3].*i686.*") + self._osCygwinW10_64 = re.compile (".*CYGWIN_NT-10\.[0-3].*x86_64.*") + self._osCygwinW10 = re.compile (".*CYGWIN_NT-10\.[0-3].*i686.*") uname = subprocess.Popen ( ["uname", "-srm"], stdout=subprocess.PIPE ) lines = uname.stdout.readlines() @@ -186,6 +188,10 @@ class Configuration ( object ): self._osType = "Cygwin.W8_64" self._libSuffix = "64" elif self._osCygwinW8.match(lines[0]): self._osType = "Cygwin.W8" + elif self._osCygwinW10_64.match(lines[0]): + self._osType = "Cygwin.W10_64" + self._libSuffix = "64" + elif self._osCygwinW10.match(lines[0]): self._osType = "Cygwin.W10" else: uname = subprocess.Popen ( ["uname", "-sr"], stdout=subprocess.PIPE ) self._osType = uname.stdout.readlines()[0][:-1] diff --git a/bootstrap/builder/ConfigureWidget.py b/bootstrap/builder/ConfigureWidget.py index 20cdea86..fa7b0cb5 100644 --- a/bootstrap/builder/ConfigureWidget.py +++ b/bootstrap/builder/ConfigureWidget.py @@ -2,7 +2,7 @@ # -*- mode:Python -*- # # This file is part of the Coriolis Software. -# Copyright (c) UPMC/LIP6 2012-2015, All Rights Reserved +# Copyright (c) UPMC/LIP6 2012-2016, All Rights Reserved # # +-----------------------------------------------------------------+ # | C O R I O L I S | diff --git a/bootstrap/builder/Highlighter.py b/bootstrap/builder/Highlighter.py index 0bc6e11f..ba07b9d5 100644 --- a/bootstrap/builder/Highlighter.py +++ b/bootstrap/builder/Highlighter.py @@ -2,7 +2,7 @@ # -*- mode:Python -*- # # This file is part of the Coriolis Software. -# Copyright (c) UPMC/LIP6 2012-2015, All Rights Reserved +# Copyright (c) UPMC/LIP6 2012-2016, All Rights Reserved # # +-----------------------------------------------------------------+ # | C O R I O L I S | diff --git a/bootstrap/builder/OptionsWidget.py b/bootstrap/builder/OptionsWidget.py index 4105aba4..bbfb0a51 100644 --- a/bootstrap/builder/OptionsWidget.py +++ b/bootstrap/builder/OptionsWidget.py @@ -2,7 +2,7 @@ # -*- mode:Python -*- # # This file is part of the Coriolis Software. -# Copyright (c) UPMC/LIP6 2012-2015, All Rights Reserved +# Copyright (c) UPMC/LIP6 2012-2016, All Rights Reserved # # +-----------------------------------------------------------------+ # | C O R I O L I S | diff --git a/bootstrap/builder/Project.py b/bootstrap/builder/Project.py index 0f1cc05b..572f2969 100644 --- a/bootstrap/builder/Project.py +++ b/bootstrap/builder/Project.py @@ -2,7 +2,7 @@ # -*- mode:Python -*- # # This file is part of the Coriolis Software. -# Copyright (c) UPMC/LIP6 2012-2015, All Rights Reserved +# Copyright (c) UPMC/LIP6 2012-2016, All Rights Reserved # # +-----------------------------------------------------------------+ # | C O R I O L I S | diff --git a/bootstrap/builder/ProjectWidgets.py b/bootstrap/builder/ProjectWidgets.py index 9fea7e0a..b9c15716 100644 --- a/bootstrap/builder/ProjectWidgets.py +++ b/bootstrap/builder/ProjectWidgets.py @@ -2,7 +2,7 @@ # -*- mode:Python -*- # # This file is part of the Coriolis Software. -# Copyright (c) UPMC/LIP6 2012-2015, All Rights Reserved +# Copyright (c) UPMC/LIP6 2012-2016, All Rights Reserved # # +-----------------------------------------------------------------+ # | C O R I O L I S | diff --git a/bootstrap/builder/__init__.py b/bootstrap/builder/__init__.py index 7ff72f35..7771e534 100644 --- a/bootstrap/builder/__init__.py +++ b/bootstrap/builder/__init__.py @@ -2,7 +2,7 @@ # -*- mode:Python -*- # # This file is part of the Coriolis Software. -# Copyright (c) UPMC/LIP6 2012-2015, All Rights Reserved +# Copyright (c) UPMC/LIP6 2012-2016, All Rights Reserved # # +-----------------------------------------------------------------+ # | C O R I O L I S | diff --git a/bootstrap/ccb.py b/bootstrap/ccb.py index e209cb77..0f582fb1 100755 --- a/bootstrap/ccb.py +++ b/bootstrap/ccb.py @@ -3,7 +3,7 @@ # -*- mode:Python -*- # # This file is part of the Coriolis Software. -# Copyright (c) UPMC 2008-2015, All Rights Reserved +# Copyright (c) UPMC 2008-2016, All Rights Reserved # # +-----------------------------------------------------------------+ # | C O R I O L I S | @@ -80,6 +80,8 @@ def guessOs (): osCygwinW7 = re.compile (".*CYGWIN_NT-6\.1.*i686.*") osCygwinW8_64 = re.compile (".*CYGWIN_NT-6\.[2-3].*x86_64.*") osCygwinW8 = re.compile (".*CYGWIN_NT-6\.[2-3].*i686.*") + osCygwinW10_64 = re.compile (".*CYGWIN_NT-10\.[0-3].*x86_64.*") + osCygwinW10 = re.compile (".*CYGWIN_NT-10\.[0-3].*i686.*") uname = subprocess.Popen ( ["uname", "-srm"], stdout=subprocess.PIPE ) lines = uname.stdout.readlines() @@ -127,6 +129,11 @@ def guessOs (): libDir = "lib64" elif osCygwinW8.match(lines[0]): osType = "Cygwin.W8" + elif osCygwinW10_64.match(lines[0]): + osType = "Cygwin.W10_64" + libDir = "lib64" + elif osCygwinW10.match(lines[0]): + osType = "Cygwin.W10" else: uname = subprocess.Popen ( ["uname", "-sr"], stdout=subprocess.PIPE ) osType = uname.stdout.readlines()[0][:-1] diff --git a/bootstrap/cmake_modules/FindBootstrap.cmake b/bootstrap/cmake_modules/FindBootstrap.cmake index 322c6e77..b76b67fc 100644 --- a/bootstrap/cmake_modules/FindBootstrap.cmake +++ b/bootstrap/cmake_modules/FindBootstrap.cmake @@ -78,14 +78,16 @@ #set(DEBUG_FLAGS "-g -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC") set(DEBUG_FLAGS "-g") if(CYGWIN) - set(CXX_STANDARD "gnu++0x") + set(ADDTIONAL_FLAGS "-D_GLIBCXX_USE_C99") + set(CXX_STANDARD "gnu++11") else() + set(ADDTIONAL_FLAGS "") set(CXX_STANDARD "c++11") endif() - set(CMAKE_C_FLAGS_DEBUG "-std=${CXX_STANDARD} -Wall ${DEBUG_FLAGS}" CACHE STRING "C Compiler Debug options." FORCE) - set(CMAKE_C_FLAGS_RELEASE "-std=${CXX_STANDARD} -Wall -O2 -DNDEBUG" CACHE STRING "C Compiler Release options." FORCE) - set(CMAKE_CXX_FLAGS_DEBUG "-std=${CXX_STANDARD} -Wall ${DEBUG_FLAGS}" CACHE STRING "C++ Compiler Debug options." FORCE) - set(CMAKE_CXX_FLAGS_RELEASE "-std=${CXX_STANDARD} -Wall -O2 -DNDEBUG" CACHE STRING "C++ Compiler Release options." FORCE) + set(CMAKE_C_FLAGS_DEBUG "-std=${CXX_STANDARD} -Wall ${ADDTIONAL_FLAGS} ${DEBUG_FLAGS}" CACHE STRING "C Compiler Debug options." FORCE) + set(CMAKE_C_FLAGS_RELEASE "-std=${CXX_STANDARD} -Wall -O2 ${ADDTIONAL_FLAGS} -DNDEBUG" CACHE STRING "C Compiler Release options." FORCE) + set(CMAKE_CXX_FLAGS_DEBUG "-std=${CXX_STANDARD} -Wall ${ADDTIONAL_FLAGS} ${DEBUG_FLAGS}" CACHE STRING "C++ Compiler Debug options." FORCE) + set(CMAKE_CXX_FLAGS_RELEASE "-std=${CXX_STANDARD} -Wall -O2 ${ADDTIONAL_FLAGS} -DNDEBUG" CACHE STRING "C++ Compiler Release options." FORCE) # diff --git a/bootstrap/coriolisEnv.py b/bootstrap/coriolisEnv.py index db1b5041..b6ba9261 100755 --- a/bootstrap/coriolisEnv.py +++ b/bootstrap/coriolisEnv.py @@ -52,6 +52,8 @@ def guessOs (): osCygwinW7 = re.compile (".*CYGWIN_NT-6\.1.*i686.*") osCygwinW8_64 = re.compile (".*CYGWIN_NT-6\.[2-3].*x86_64.*") osCygwinW8 = re.compile (".*CYGWIN_NT-6\.[2-3].*i686.*") + osCygwinW10_64 = re.compile (".*CYGWIN_NT-10\.[0-3].*x86_64.*") + osCygwinW10 = re.compile (".*CYGWIN_NT-10\.[0-3].*i686.*") uname = subprocess.Popen ( ["uname", "-srm"], stdout=subprocess.PIPE ) lines = uname.stdout.readlines() @@ -108,6 +110,11 @@ def guessOs (): libDir = "lib64" elif osCygwinW8.match(lines[0]): osType = "Cygwin.W8" + elif osCygwinW10_64.match(lines[0]): + osType = "Cygwin.W10_64" + libDir = "lib64" + elif osCygwinW10.match(lines[0]): + osType = "Cygwin.W10" else: uname = subprocess.Popen ( ["uname", "-sr"], stdout=subprocess.PIPE ) osType = uname.stdout.readlines()[0][:-1] @@ -165,16 +172,18 @@ if __name__ == "__main__": 'PATH="%(PATH)s";' \ 'BOOTSTRAP_TOP="%(BOOTSTRAP_TOP)s";' \ 'CORIOLIS_TOP="%(CORIOLIS_TOP)s";' \ - 'STRATUS_MAPPING_NAME="%(SYSCONF_DIR)s/stratus2sxlib.xml";' \ 'export PATH BOOTSTRAP_TOP CORIOLIS_TOP STRATUS_MAPPING_NAME;' +# 'STRATUS_MAPPING_NAME="%(SYSCONF_DIR)s/stratus2sxlib.xml";' \ + shellScriptCsh = \ 'echo "%(MESSAGE)s";' \ 'echo "Switching to Coriolis 2.x (%(buildDir)s)";' \ 'setenv PATH "%(PATH)s";' \ 'setenv BOOTSTRAP_TOP "%(BOOTSTRAP_TOP)s";' \ - 'setenv CORIOLIS_TOP "%(CORIOLIS_TOP)s";' \ - 'setenv STRATUS_MAPPING_NAME "%(SYSCONF_DIR)s/stratus2sxlib.xml";' + 'setenv CORIOLIS_TOP "%(CORIOLIS_TOP)s";' + +# 'setenv STRATUS_MAPPING_NAME "%(SYSCONF_DIR)s/stratus2sxlib.xml";' \ buildDir = buildType + "." + linkType scriptDir = os.path.dirname ( os.path.abspath(__file__) ) diff --git a/bootstrap/socInstaller.py b/bootstrap/socInstaller.py index 2396a39b..6149ce25 100755 --- a/bootstrap/socInstaller.py +++ b/bootstrap/socInstaller.py @@ -3,7 +3,7 @@ # -*- mode:Python -*- # # This file is part of the Coriolis Software. -# Copyright (c) UPMC 2015-2015, All Rights Reserved +# Copyright (c) UPMC 2015-2016, All Rights Reserved # # +-----------------------------------------------------------------+ # | C O R I O L I S | @@ -155,8 +155,8 @@ class Command ( object ): class GitRepository ( object ): @staticmethod - def getLocalRepository ( gitRepository ): - localRepo = gitRepository.split( '/' )[-1] + def getLocalRepository ( url ): + localRepo = url.split( '/' )[-1] if localRepo.endswith('.git'): localRepo = localRepo[:-4] return localRepo @@ -197,8 +197,8 @@ class GitRepository ( object ): class Configuration ( object ): PrimaryNames = \ - [ 'sender' , 'receiver' - , 'coriolisRepo', 'chamsRepo' , 'benchsRepo' + [ 'sender' , 'receivers' + , 'coriolisRepo', 'chamsRepo' , 'benchsRepo', 'supportRepos' , 'homeDir' , 'masterHost' , 'debugArg' , 'nightlyMode' , 'rmSource' , 'rmBuild', 'doGit', 'doBuild', 'doBenchs', 'doSendReport' @@ -210,7 +210,8 @@ class Configuration ( object ): def __init__ ( self ): self._sender = 'Jean-Paul.Chaput@soc.lip6.fr' - self._receiver = 'Jean-Paul.Chaput@lip6.fr' + self._receivers = [ 'Jean-Paul.Chaput@lip6.fr', 'Eric.Lao@lip6.fr' ] + self._supportRepos = [ 'http://github.com/miloyip/rapidjson' ] self._coriolisRepo = 'https://www-soc.lip6.fr/git/coriolis.git' self._chamsRepo = 'file:///users/outil/chams/chams.git' self._benchsRepo = 'https://www-soc.lip6.fr/git/alliance-check-toolkit.git' @@ -321,16 +322,17 @@ class Report ( object ): def __init__ ( self, conf ): self.conf = conf - date = time.strftime( "%A %d %B %Y" ) - stateText = 'FAILED' - modeText = 'SoC installation' + commaspace = ', ' + date = time.strftime( "%A %d %B %Y" ) + stateText = 'FAILED' + modeText = 'SoC installation' if self.conf.success: stateText = 'SUCCESS' if self.conf.nightlyMode: modeText = 'Nightly build' self.message = MIMEMultipart() self.message['Subject'] = '[%s] Coriolis & Chams %s %s' % (stateText,modeText,date) self.message['From' ] = self.conf.sender - self.message['To' ] = self.conf.receiver + self.message['To' ] = commaspace.join( self.conf.receivers ) self.attachements = [] self.mainText = '\n' @@ -372,9 +374,9 @@ class Report ( object ): for attachement in self.attachements: self.message.attach( attachement ) - print "Sending mail report to <%s>" % self.conf.receiver + print "Sending mail report to <%s>" % self.conf.receivers session = smtplib.SMTP( 'localhost' ) - session.sendmail( self.conf.sender, self.conf.receiver, self.message.as_string() ) + session.sendmail( self.conf.sender, self.conf.receivers, self.message.as_string() ) session.quit() return @@ -408,11 +410,20 @@ try: if options.rmSource or options.rmAll: conf.rmSource = True if options.rmBuild or options.rmAll: conf.rmBuild = True + gitSupports = [] + for supportRepo in conf.supportRepos: + gitSupports.append( GitRepository( supportRepo, conf.srcDir+'/support' ) ) gitCoriolis = GitRepository( conf.coriolisRepo, conf.srcDir ) gitChams = GitRepository( conf.chamsRepo , conf.srcDir ) gitBenchs = GitRepository( conf.benchsRepo , conf.srcDir ) if conf.doGit: + for gitSupport in gitSupports: + if conf.rmSource: gitSupport.removeLocalRepo() + gitSupport.clone() + #if gitSupport.url.endswith('rapidjson'): + # gitSupport.checkout( 'a1c4f32' ) + if conf.rmSource: gitCoriolis.removeLocalRepo() gitCoriolis.clone () gitCoriolis.checkout( 'devel' ) @@ -440,7 +451,7 @@ try: if conf.doBuild: conf.openLog( 'build' ) if conf.doBenchs: conf.openLog( 'benchs' ) - buildCommand = '%s --root=%s --project=coriolis --project=chams --make="-j%%d install" %%s' \ + buildCommand = '%s --root=%s --project=support --project=coriolis --project=chams --make="-j%%d install" %%s' \ % (ccbBin,conf.rootDir) benchsCommand = 'cd %s/benchs && ./bin/go.sh clean && ./bin/go.sh lvx' \ % (gitBenchs.localRepoDir) diff --git a/crlcore/doc/crlcore/footer.html b/crlcore/doc/crlcore/footer.html index 1daff68c..a42b1c3f 100644 --- a/crlcore/doc/crlcore/footer.html +++ b/crlcore/doc/crlcore/footer.html @@ -9,7 +9,7 @@
Coriolis Core (CRL) | -Copyright © 2008-2015 UPMC All rights reserved | +Copyright © 2008-2016 UPMC All rights reserved |