Migrating doc from Sphinx towards Pelican.
* Change: In documentation, now generate the overall documentation using Pelican instead of Sphinx. This allows to have an unified approach between the coriolis.lip6.fr website and the local documentation. So we keep using "only" two doc generators: doxygen & Pelican.
|
@ -8,6 +8,7 @@
|
|||
FindLibbfd.cmake
|
||||
FindQwt.cmake
|
||||
FindSphinx.cmake
|
||||
FindPelican.cmake
|
||||
GetGitRevisionDescription.cmake
|
||||
GetGitRevisionDescription.cmake.in
|
||||
)
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
find_program( PELICAN_EXECUTABLE NAMES pelican
|
||||
HINTS $ENV{PELICAN_DIR}
|
||||
PATH_SUFFIXES bin
|
||||
DOC "Pelican blog generator"
|
||||
)
|
||||
|
||||
include( FindPackageHandleStandardArgs )
|
||||
find_package_handle_standard_args( Pelican DEFAULT_MSG PELICAN_EXECUTABLE )
|
||||
mark_as_advanced( PELICAN_EXECUTABLE )
|
|
@ -1,6 +1,6 @@
|
|||
# -*- mode: CMAKE; explicit-buffer-name: # "CMakeLists.txt<crlcore/doc/crlcore>" -*-
|
||||
|
||||
set ( htmlInstallDir share/doc/coriolis2/en/html/crlcore )
|
||||
set ( htmlInstallDir share/doc/coriolis2/en/html/doc/crlcore )
|
||||
set ( latexInstallDir share/doc/coriolis2/en/latex/crlcore )
|
||||
set ( doxExtras closed.png
|
||||
open.png
|
||||
|
|
|
@ -54,7 +54,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -92,7 +92,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -59,7 +59,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -66,7 +66,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -123,7 +123,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -98,7 +98,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -60,7 +60,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -80,7 +80,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -93,7 +93,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -68,7 +68,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -64,7 +64,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -53,7 +53,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -118,7 +118,7 @@ Static Public Member Functions</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -87,7 +87,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -923,7 +923,7 @@ Static Public Member Functions</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -56,7 +56,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -175,7 +175,7 @@ Public Member Functions</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -67,7 +67,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -495,7 +495,7 @@ Public Member Functions</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -60,7 +60,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -292,7 +292,7 @@ Public Member Functions</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -71,7 +71,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -763,7 +763,7 @@ Static Public Member Functions</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -86,7 +86,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -846,7 +846,7 @@ Public Member Functions</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -96,7 +96,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -1136,7 +1136,7 @@ Public Member Functions</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -54,7 +54,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -127,7 +127,7 @@ Public Member Functions</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -68,7 +68,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -451,7 +451,7 @@ Static Public Member Functions</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -70,7 +70,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -682,7 +682,7 @@ Static Public Member Functions</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -64,7 +64,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -452,7 +452,7 @@ Static Public Member Functions</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -56,7 +56,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -190,7 +190,7 @@ Public Member Functions</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -64,7 +64,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -198,7 +198,7 @@ Static Public Member Functions</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -73,7 +73,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -53,7 +53,7 @@ Directories</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -49,7 +49,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -49,7 +49,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -61,7 +61,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -54,7 +54,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -48,7 +48,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -68,7 +68,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -62,7 +62,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -57,7 +57,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -55,7 +55,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -91,7 +91,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -54,7 +54,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -588,7 +588,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -258,7 +258,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -54,7 +54,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -100,7 +100,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -63,7 +63,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -51,7 +51,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -48,7 +48,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -57,7 +57,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -57,7 +57,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -154,7 +154,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -51,7 +51,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -64,7 +64,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -45,7 +45,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -149,7 +149,7 @@ Typedefs</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -149,7 +149,7 @@ Enumerations</h2></td></tr>
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -85,7 +85,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -52,7 +52,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -67,7 +67,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -52,7 +52,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -51,7 +51,7 @@ $(function() {
|
|||
<hr>
|
||||
<table class="footer1">
|
||||
<tr>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Oct 28 2019</small></td>
|
||||
<td class="LFooter"><small>Generated by doxygen 1.8.14 on Mon Feb 3 2020</small></td>
|
||||
<td class="RFooter"><a href='#pagetop'><small>Return to top of page</small></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
\vspace*{1cm}
|
||||
{\large Generated by Doxygen 1.8.14}\\
|
||||
\vspace*{0.5cm}
|
||||
{\small Mon Oct 28 2019 18:06:32}\\
|
||||
{\small Mon Feb 3 2020 17:10:37}\\
|
||||
\end{center}
|
||||
\end{titlepage}
|
||||
|
||||
|
|
|
@ -11,128 +11,201 @@
|
|||
|
||||
list(INSERT CMAKE_MODULE_PATH 0 "${DESTDIR}$ENV{CORIOLIS_TOP}/share/cmake/Modules/")
|
||||
find_package(Bootstrap REQUIRED)
|
||||
find_package(Sphinx)
|
||||
#find_package(Sphinx)
|
||||
find_package(Pelican)
|
||||
setup_project_paths(CORIOLIS)
|
||||
|
||||
set_cmake_policies()
|
||||
|
||||
add_subdirectory(examples)
|
||||
set( htmlInstallDir share/doc/coriolis2/en/html/main )
|
||||
set( pdfInstallDir share/doc/coriolis2/en/pdf/main )
|
||||
|
||||
set( htmlInstallDir share/doc/coriolis2/en/html )
|
||||
if(BUILD_DOC)
|
||||
if(SPHINX_EXECUTABLE)
|
||||
message(STATUS "Sphinx has been found, generate the documentation...")
|
||||
set ( pythonCppRst PythonCpp/pdfHeader.rst
|
||||
PythonCpp/Introduction.rst
|
||||
PythonCpp/Configuration.rst
|
||||
PythonCpp/DBoStandalone.rst
|
||||
PythonCpp/DBoHierarchy.rst
|
||||
PythonCpp/NonDBo.rst
|
||||
PythonCpp/DbU.rst
|
||||
PythonCpp/Name.rst )
|
||||
if(PELICAN_EXECUTABLE)
|
||||
message(STATUS "Pelican has been found, generate the documentation...")
|
||||
|
||||
set ( pythonTutorialRst PythonTutorial/pdfHeader.rst
|
||||
PythonTutorial/Introduction.rst
|
||||
PythonTutorial/Environment.rst
|
||||
PythonTutorial/CellNetComponent.rst
|
||||
PythonTutorial/Collections.rst
|
||||
PythonTutorial/CgtScript.rst
|
||||
PythonTutorial/Netlist.rst
|
||||
PythonTutorial/RealDesigns.rst
|
||||
PythonTutorial/ToolEngines.rst
|
||||
PythonTutorial/AdvancedTopics.rst )
|
||||
|
||||
set ( usersGuideRst UsersGuide/pdfHeader.rst
|
||||
UsersGuide/LicenseCredits.rst
|
||||
UsersGuide/Releases.rst
|
||||
UsersGuide/DesignFlow.rst
|
||||
UsersGuide/Installation.rst
|
||||
UsersGuide/Configuration.rst
|
||||
UsersGuide/ViewerTools.rst
|
||||
UsersGuide/ScriptsPlugins.rst )
|
||||
set ( pythonCppRst content/pages/python-cpp/PythonCpp_HTML.rst
|
||||
content/pages/python-cpp/Introduction.rst
|
||||
content/pages/python-cpp/Configuration.rst
|
||||
content/pages/python-cpp/DBoStandalone.rst
|
||||
content/pages/python-cpp/DBoHierarchy.rst
|
||||
content/pages/python-cpp/NonDBo.rst
|
||||
content/pages/python-cpp/DbU.rst
|
||||
content/pages/python-cpp/Name.rst )
|
||||
|
||||
set ( confTechnoRst ConfigurationTechnology/pdfHeader.rst
|
||||
ConfigurationTechnology/Architecture.rst )
|
||||
|
||||
set ( rdsRst RDS/pdfHeader.rst
|
||||
RDS/RDSpage.rst )
|
||||
set ( pythonTutorialRst content/pages/python-tutorial/PythonTutorial_HTML.rst
|
||||
content/pages/python-tutorial/Introduction.rst
|
||||
content/pages/python-tutorial/Environment.rst
|
||||
content/pages/python-tutorial/CellNetComponent.rst
|
||||
content/pages/python-tutorial/Collections.rst
|
||||
content/pages/python-tutorial/CgtScript.rst
|
||||
content/pages/python-tutorial/Netlist.rst
|
||||
content/pages/python-tutorial/RealDesigns.rst
|
||||
content/pages/python-tutorial/ToolEngines.rst
|
||||
content/pages/python-tutorial/AdvancedTopics.rst )
|
||||
|
||||
set ( usersGuideRst content/pages/users-guide/UsersGuide_HTML.rst
|
||||
content/pages/users-guide/LicenseCredits.rst
|
||||
content/pages/users-guide/Releases.rst
|
||||
content/pages/users-guide/DesignFlow.rst
|
||||
content/pages/users-guide/Installation.rst
|
||||
content/pages/users-guide/Configuration.rst
|
||||
content/pages/users-guide/ViewerTools.rst
|
||||
content/pages/users-guide/ScriptsPlugins.rst )
|
||||
|
||||
set (stratusRst Stratus/pdfHeader.rst
|
||||
Stratus/Developper.rst
|
||||
Stratus/Language.rst
|
||||
Stratus/DpGen.rst
|
||||
Stratus/Patterns.rst )
|
||||
|
||||
add_custom_target ( doc_HTML ALL
|
||||
cd ${DOCUMENTATION_SOURCE_DIR}
|
||||
&& rm -rf _build
|
||||
&& sphinx-build -b html -d _build/doctrees . _build/html
|
||||
DEPENDS etc/definitions.rst
|
||||
_static/SoC.css
|
||||
_static/www-SoC.css
|
||||
_static/SoC-ReST.css
|
||||
_static/pygments.css
|
||||
CrlCore/CrlCore.rst
|
||||
Hurricane/Hurricane.rst
|
||||
Unicorn/Unicorn.rst
|
||||
Viewer/Viewer.rst
|
||||
${usersGuideRst} UsersGuide/index.rst
|
||||
${pythonTutorialRst} PythonTutorial/index.rst
|
||||
${pythonCppRst} PythonCpp/index.rst
|
||||
${rdsRst} RDS/index.rst
|
||||
${stratusRst} Stratus/index.rst
|
||||
)
|
||||
|
||||
add_custom_target ( pdf_UsersGuide ALL
|
||||
cd ${DOCUMENTATION_SOURCE_DIR}/UsersGuide
|
||||
&& ../etc/doPdf.sh ${usersGuideRst} UsersGuide.rst
|
||||
DEPENDS etc/definitions.rst
|
||||
etc/SoC-ReST.tex
|
||||
${usersGuideRst} )
|
||||
|
||||
add_custom_target ( pdf_PythonTutorial ALL
|
||||
cd ${DOCUMENTATION_SOURCE_DIR}/PythonTutorial
|
||||
&& ../etc/doPdf.sh ${pythonTutorialRst} PythonTutorial.rst
|
||||
DEPENDS etc/definitions.rst
|
||||
etc/SoC-ReST.tex
|
||||
PythonTutorial/definitions.rst
|
||||
${pythonTutorialRst} )
|
||||
|
||||
add_custom_target ( pdf_Stratus ALL
|
||||
cd ${DOCUMENTATION_SOURCE_DIR}/Stratus
|
||||
&& ../etc/doPdf.sh ${stratusRst} Stratus.rst
|
||||
DEPENDS etc/definitions.rst
|
||||
etc/SoC-ReST.tex
|
||||
${stratusRst} )
|
||||
|
||||
add_custom_target ( pdf_PythonCpp ALL
|
||||
cd ${DOCUMENTATION_SOURCE_DIR}/PythonCpp
|
||||
&& ../etc/doPdf.sh ${pythonCppRst} PythonCpp.rst
|
||||
DEPENDS etc/definitions.rst
|
||||
etc/SoC-ReST.tex
|
||||
${pythonCppRst} )
|
||||
set ( rdsRst content/pages/rds/RDS_HTML.rst
|
||||
content/pages/rds/RDSpage.rst )
|
||||
|
||||
set ( stratusRst content/pages/stratus/Stratus_HTML.rst
|
||||
content/pages/stratus/Developper.rst
|
||||
content/pages/stratus/Language.rst
|
||||
content/pages/stratus/DpGen.rst
|
||||
content/pages/stratus/Patterns.rst )
|
||||
|
||||
add_custom_target ( doc_HTML ALL
|
||||
cd ${DOCUMENTATION_SOURCE_DIR}
|
||||
&& rm -rf output
|
||||
&& ./build.py --pdfs --pelican
|
||||
DEPENDS etc/definitions.rst
|
||||
themes/nest-coriolis/static/css/nest.css
|
||||
themes/nest-coriolis/static/css/pygment.css
|
||||
themes/nest-coriolis/static/css/coriolis.css
|
||||
content/pages/documentation.rst
|
||||
content/pages/gitlab.rst
|
||||
content/pages/homepage.rst
|
||||
content/pages/symbolic-layout.rst
|
||||
${usersGuideRst}
|
||||
${pythonTutorialRst}
|
||||
${pythonCppRst}
|
||||
${rdsRst}
|
||||
${stratusRst}
|
||||
)
|
||||
|
||||
else(PELICAN_EXECUTABLE)
|
||||
message(STATUS "Pelican has *not* been found, use the git supplied documentation.")
|
||||
endif(PELICAN_EXECUTABLE)
|
||||
endif(BUILD_DOC)
|
||||
|
||||
install( DIRECTORY output/ DESTINATION ${htmlInstallDir} )
|
||||
|
||||
|
||||
# Old part for Sphinx, keep it for now.
|
||||
#set( htmlInstallDir share/doc/coriolis2/en/html/main )
|
||||
#set( pdfInstallDir share/doc/coriolis2/en/pdf/main )
|
||||
|
||||
#if(BUILD_DOC)
|
||||
# if(SPHINX_EXECUTABLE)
|
||||
# message(STATUS "Sphinx has been found, generate the documentation...")
|
||||
# set ( pythonCppRst PythonCpp/pdfHeader.rst
|
||||
# PythonCpp/Introduction.rst
|
||||
# PythonCpp/Configuration.rst
|
||||
# PythonCpp/DBoStandalone.rst
|
||||
# PythonCpp/DBoHierarchy.rst
|
||||
# PythonCpp/NonDBo.rst
|
||||
# PythonCpp/DbU.rst
|
||||
# PythonCpp/Name.rst )
|
||||
#
|
||||
# set ( pythonTutorialRst PythonTutorial/pdfHeader.rst
|
||||
# PythonTutorial/Introduction.rst
|
||||
# PythonTutorial/Environment.rst
|
||||
# PythonTutorial/CellNetComponent.rst
|
||||
# PythonTutorial/Collections.rst
|
||||
# PythonTutorial/CgtScript.rst
|
||||
# PythonTutorial/Netlist.rst
|
||||
# PythonTutorial/RealDesigns.rst
|
||||
# PythonTutorial/ToolEngines.rst
|
||||
# PythonTutorial/AdvancedTopics.rst )
|
||||
#
|
||||
# set ( usersGuideRst UsersGuide/pdfHeader.rst
|
||||
# UsersGuide/LicenseCredits.rst
|
||||
# UsersGuide/Releases.rst
|
||||
# UsersGuide/DesignFlow.rst
|
||||
# UsersGuide/Installation.rst
|
||||
# UsersGuide/Configuration.rst
|
||||
# UsersGuide/ViewerTools.rst
|
||||
# UsersGuide/ScriptsPlugins.rst )
|
||||
#
|
||||
# set ( confTechnoRst ConfigurationTechnology/pdfHeader.rst
|
||||
# ConfigurationTechnology/Architecture.rst )
|
||||
#
|
||||
# set ( rdsRst RDS/pdfHeader.rst
|
||||
# RDS/RDSpage.rst )
|
||||
#
|
||||
# set (stratusRst Stratus/pdfHeader.rst
|
||||
# Stratus/Developper.rst
|
||||
# Stratus/Language.rst
|
||||
# Stratus/DpGen.rst
|
||||
# Stratus/Patterns.rst )
|
||||
#
|
||||
# add_custom_target ( doc_HTML ALL
|
||||
# cd ${DOCUMENTATION_SOURCE_DIR}
|
||||
# && rm -rf _build
|
||||
# && sphinx-build -b html -d _build/doctrees . _build/html
|
||||
# DEPENDS etc/definitions.rst
|
||||
# _static/SoC.css
|
||||
# _static/www-SoC.css
|
||||
# _static/SoC-ReST.css
|
||||
# _static/pygments.css
|
||||
# CrlCore/CrlCore.rst
|
||||
# Hurricane/Hurricane.rst
|
||||
# Unicorn/Unicorn.rst
|
||||
# Viewer/Viewer.rst
|
||||
# ${usersGuideRst} UsersGuide/index.rst
|
||||
# ${pythonTutorialRst} PythonTutorial/index.rst
|
||||
# ${pythonCppRst} PythonCpp/index.rst
|
||||
# ${rdsRst} RDS/index.rst
|
||||
# ${stratusRst} Stratus/index.rst
|
||||
# )
|
||||
#
|
||||
# add_custom_target ( pdf_UsersGuide ALL
|
||||
# cd ${DOCUMENTATION_SOURCE_DIR}/UsersGuide
|
||||
# && ../etc/doPdf.sh ${usersGuideRst} UsersGuide.rst
|
||||
# DEPENDS etc/definitions.rst
|
||||
# etc/SoC-ReST.tex
|
||||
# ${usersGuideRst} )
|
||||
#
|
||||
# add_custom_target ( pdf_PythonTutorial ALL
|
||||
# cd ${DOCUMENTATION_SOURCE_DIR}/PythonTutorial
|
||||
# && ../etc/doPdf.sh ${pythonTutorialRst} PythonTutorial.rst
|
||||
# DEPENDS etc/definitions.rst
|
||||
# etc/SoC-ReST.tex
|
||||
# PythonTutorial/definitions.rst
|
||||
# ${pythonTutorialRst} )
|
||||
#
|
||||
# add_custom_target ( pdf_Stratus ALL
|
||||
# cd ${DOCUMENTATION_SOURCE_DIR}/Stratus
|
||||
# && ../etc/doPdf.sh ${stratusRst} Stratus.rst
|
||||
# DEPENDS etc/definitions.rst
|
||||
# etc/SoC-ReST.tex
|
||||
# ${stratusRst} )
|
||||
#
|
||||
# add_custom_target ( pdf_PythonCpp ALL
|
||||
# cd ${DOCUMENTATION_SOURCE_DIR}/PythonCpp
|
||||
# && ../etc/doPdf.sh ${pythonCppRst} PythonCpp.rst
|
||||
# DEPENDS etc/definitions.rst
|
||||
# etc/SoC-ReST.tex
|
||||
# ${pythonCppRst} )
|
||||
#
|
||||
# add_custom_target ( pdf_ConfTechno ALL
|
||||
# cd ${DOCUMENTATION_SOURCE_DIR}/ConfigurationTechnology
|
||||
# && ../etc/doPdf.sh ${confTechnoRst} ConfigurationTechnology.rst
|
||||
# DEPENDS etc/definitions.rst
|
||||
# etc/SoC-ReST.tex
|
||||
# ${confTechnoRst} )
|
||||
|
||||
add_custom_target ( pdf_RDS ALL
|
||||
cd ${DOCUMENTATION_SOURCE_DIR}/RDS
|
||||
&& ../etc/doPdf.sh ${rdsRst} RDS.rst
|
||||
DEPENDS etc/definitions.rst
|
||||
etc/SoC-ReST.tex
|
||||
${rdsRst} )
|
||||
else(SPHINX_EXECUTABLE)
|
||||
message(STATUS "Sphinx has *not* been found, use the git supplied documentation.")
|
||||
endif(SPHINX_EXECUTABLE)
|
||||
endif(BUILD_DOC)
|
||||
|
||||
install( DIRECTORY _build/html/ DESTINATION ${htmlInstallDir} )
|
||||
install( FILES RDS/RDS.pdf
|
||||
PythonTutorial/PythonTutorial.pdf
|
||||
PythonCpp/PythonCpp.pdf
|
||||
UsersGuide/UsersGuide.pdf DESTINATION ${pdfInstallDir} )
|
||||
#
|
||||
# add_custom_target ( pdf_RDS ALL
|
||||
# cd ${DOCUMENTATION_SOURCE_DIR}/RDS
|
||||
# && ../etc/doPdf.sh ${rdsRst} RDS.rst
|
||||
# DEPENDS etc/definitions.rst
|
||||
# etc/SoC-ReST.tex
|
||||
# ${rdsRst} )
|
||||
# else(SPHINX_EXECUTABLE)
|
||||
# message(STATUS "Sphinx has *not* been found, use the git supplied documentation.")
|
||||
# endif(SPHINX_EXECUTABLE)
|
||||
#endif(BUILD_DOC)
|
||||
#
|
||||
#install( DIRECTORY _build/html/ DESTINATION ${htmlInstallDir} )
|
||||
#install( FILES RDS/RDS.pdf
|
||||
# PythonTutorial/PythonTutorial.pdf
|
||||
# PythonCpp/PythonCpp.pdf
|
||||
# UsersGuide/UsersGuide.pdf DESTINATION ${pdfInstallDir} )
|
||||
|
|
|
@ -0,0 +1,405 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
import re
|
||||
import os
|
||||
import os.path
|
||||
import sys
|
||||
import time
|
||||
import shutil
|
||||
import socket
|
||||
import subprocess
|
||||
import logging
|
||||
import optparse
|
||||
|
||||
|
||||
def log ( message ):
|
||||
print message
|
||||
logging.info( message )
|
||||
return
|
||||
|
||||
|
||||
class ErrorMessage ( Exception ):
|
||||
|
||||
def __init__ ( self, code, *arguments ):
|
||||
self._code = code
|
||||
self._errors = [ 'Malformed call to ErrorMessage()'
|
||||
, '%s' % str(arguments) ]
|
||||
|
||||
text = None
|
||||
if len(arguments) == 1:
|
||||
if isinstance(arguments[0],Exception): text = str(arguments[0]).split('\n')
|
||||
else:
|
||||
self._errors = arguments[0]
|
||||
elif len(arguments) > 1:
|
||||
text = list(arguments)
|
||||
|
||||
if text:
|
||||
self._errors = []
|
||||
while len(text[0]) == 0: del text[0]
|
||||
|
||||
lstrip = 0
|
||||
if text[0].startswith('[ERROR]'): lstrip = 8
|
||||
|
||||
for line in text:
|
||||
if line[0:lstrip ] == ' '*lstrip or \
|
||||
line[0:lstrip-1] == '[ERROR]':
|
||||
self._errors += [ line[lstrip:] ]
|
||||
else:
|
||||
self._errors += [ line.lstrip() ]
|
||||
return
|
||||
|
||||
def __str__ ( self ):
|
||||
if not isinstance(self._errors,list):
|
||||
return "[ERROR] %s" % self._errors
|
||||
|
||||
formatted = "\n"
|
||||
for i in range(len(self._errors)):
|
||||
if i == 0: formatted += "[ERROR] %s" % self._errors[i]
|
||||
else: formatted += " %s" % self._errors[i]
|
||||
if i+1 < len(self._errors): formatted += "\n"
|
||||
return formatted
|
||||
|
||||
def addMessage ( self, message ):
|
||||
if not isinstance(self._errors,list):
|
||||
self._errors = [ self._errors ]
|
||||
if isinstance(message,list):
|
||||
for line in message:
|
||||
self._errors += [ line ]
|
||||
else:
|
||||
self._errors += [ message ]
|
||||
return
|
||||
|
||||
def terminate ( self ):
|
||||
print self
|
||||
sys.exit(self._code)
|
||||
|
||||
def _getCode ( self ): return self._code
|
||||
|
||||
code = property(_getCode)
|
||||
|
||||
|
||||
class Configuration ( object ):
|
||||
|
||||
def __init__ ( self ):
|
||||
self.onSource = False
|
||||
self.onLepka = False
|
||||
self.onDocker = False
|
||||
hostname = socket.gethostname()
|
||||
if hostname.startswith('lepka'): self.onLepka = True
|
||||
else: self.onDocker = True
|
||||
|
||||
scriptDir = os.path.abspath(os.getcwd())
|
||||
if scriptDir.endswith( 'coriolis/documentation' ):
|
||||
self.onLepka = False
|
||||
self.onSource = True
|
||||
|
||||
if self.onDocker:
|
||||
log( 'Using *Docker* configuration.' )
|
||||
self.pelicanDir = '/data/git/coriolis.lip6.fr/pelican'
|
||||
self.apacheDir = '/var/www/html'
|
||||
if self.onLepka:
|
||||
log( 'Using *Lepka* configuration.' )
|
||||
self.pelicanDir = os.path.join( os.environ['HOME'], 'cms/coriolis.lip6.fr/pelican' )
|
||||
self.apacheDir = '/dsk/l1/httpd/coriolis'
|
||||
if self.onSource:
|
||||
log( 'Using *Source* configuration.' )
|
||||
self.pelicanDir = scriptDir
|
||||
self.apacheDir = None
|
||||
|
||||
self.localDocDir = '/dsk/l1/jpc/coriolis-2.x/Linux.el7_64/Release.Shared/install/share/doc/coriolis2/en/html/doc'
|
||||
self.remoteDocDir = '/data'
|
||||
self.remoteGitDir = '/data/git'
|
||||
self.remotePelicanDir = os.path.join( self.remoteGitDir, 'coriolis.lip6.fr/pelican' )
|
||||
self.pluginsDir = os.path.join( self.remoteGitDir, 'pelican-plugins' )
|
||||
|
||||
self.logDir = os.path.join( self.pelicanDir, 'logs' )
|
||||
|
||||
self.target = 'coriolis-d'
|
||||
return
|
||||
|
||||
|
||||
class Command ( object ):
|
||||
|
||||
def __init__ ( self, command ):
|
||||
self.command = command
|
||||
self.outlog = None
|
||||
self.errlog = None
|
||||
return
|
||||
|
||||
def asString ( self ):
|
||||
s = ''
|
||||
for i in range(len(self.command)):
|
||||
if i: s += ' '
|
||||
if ' ' in self.command[i]: s += '"'+self.command[i]+'"'
|
||||
else: s += self.command[i]
|
||||
return s
|
||||
|
||||
def execute ( self ):
|
||||
sys.stdout.flush()
|
||||
sys.stderr.flush()
|
||||
log( self.asString() )
|
||||
child = subprocess.Popen( self.command, stdin =subprocess.PIPE
|
||||
, stdout=subprocess.PIPE
|
||||
, stderr=subprocess.PIPE )
|
||||
self.outlog, self.errlog = child.communicate()
|
||||
if len(self.outlog): logging.info ( self.outlog )
|
||||
if len(self.errlog): logging.error( self.errlog )
|
||||
|
||||
status = child.returncode
|
||||
status >>= 8
|
||||
if status != 0:
|
||||
ErrorMessage( status, "%s (status:%d)."%(error,status) ).terminate()
|
||||
return status
|
||||
|
||||
@staticmethod
|
||||
def rmtree ( path ):
|
||||
command = 'rm -rf %s' % path
|
||||
try:
|
||||
log( command )
|
||||
shutil.rmtree( path )
|
||||
except shutil.Error, e:
|
||||
logging.error( str(e) )
|
||||
return 1
|
||||
return 0
|
||||
|
||||
@staticmethod
|
||||
def copytree ( src, dst ):
|
||||
command = 'cp -r %s %s' % (src,dst)
|
||||
try:
|
||||
log( command )
|
||||
shutil.copytree( src, dst )
|
||||
except OSError, e:
|
||||
logging.error( e )
|
||||
return 1
|
||||
except shutil.Error, errors:
|
||||
for error in errors:
|
||||
logging.error( 'cp %s %s: %s' % error )
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
class SshCommand ( object ):
|
||||
|
||||
def __init__ ( self, scriptlet ):
|
||||
self.scriptlet = scriptlet
|
||||
return
|
||||
|
||||
def execute ( self, target ):
|
||||
command = [ 'ssh', '-x', target, self.scriptlet ]
|
||||
Command( command ).execute()
|
||||
return
|
||||
|
||||
|
||||
class Document ( object ):
|
||||
|
||||
def __init__ ( self, conf, document ):
|
||||
self.conf = conf
|
||||
self.document = os.path.basename( document )
|
||||
self.rdir = os.path.dirname ( document )
|
||||
return
|
||||
|
||||
def toPdf ( self ):
|
||||
pdfDir = '%s/content/pdfs' % self.conf.pelicanDir
|
||||
stylesheet = '%s/etc/SoC-ReST.tex' % self.conf.pelicanDir
|
||||
documentPdf = '%s.pdf' % self.document
|
||||
documentRst = '%s.rst' % self.document
|
||||
documentTex = '%s.tex' % self.document
|
||||
documentRawTex = '%s-raw.tex' % self.document
|
||||
documentTmps = [ documentTex
|
||||
, documentRawTex
|
||||
, '%s.log' % self.document
|
||||
, '%s.out' % self.document
|
||||
, '%s.aux' % self.document
|
||||
, '%s.toc' % self.document
|
||||
]
|
||||
targetPdf = os.path.join( pdfDir, documentPdf )
|
||||
|
||||
cwd = os.getcwd()
|
||||
os.chdir( os.path.join(self.conf.pelicanDir,self.rdir) )
|
||||
os.environ[ 'TEXINPUTS' ] = '%s/etc/images//:./images//:' % self.conf.pelicanDir
|
||||
Command( [ 'rst2latex', '--use-latex-toc'
|
||||
, '--stylesheet=%s' % stylesheet
|
||||
, documentRst
|
||||
, documentRawTex
|
||||
] ).execute()
|
||||
|
||||
pMulticol = re.compile( r' \\& \\\\multicolumn\{2\}\{l\|\}\{' )
|
||||
fdi = open( documentRawTex, 'r' )
|
||||
fdo = open( documentTex , 'w' )
|
||||
for line in fdi.readlines():
|
||||
fdo.write( pMulticol.sub(' \\& \\\\multicolumn{2}{p{0.6\\\\DUtablewidth}|}{',line) )
|
||||
fdi.close()
|
||||
fdo.close()
|
||||
|
||||
Command( [ 'pdflatex', '-halt-on-error', documentTex ] ).execute()
|
||||
Command( [ 'pdflatex', '-halt-on-error', documentTex ] ).execute()
|
||||
|
||||
for file in documentTmps: os.unlink( file )
|
||||
|
||||
if not os.path.isdir( pdfDir ):
|
||||
log( 'mkdir %s' % pdfDir )
|
||||
os.mkdir( pdfDir )
|
||||
|
||||
if os.path.exists( targetPdf ): os.unlink( targetPdf )
|
||||
log( 'mv %s %s' % (documentPdf,pdfDir) )
|
||||
shutil.move( documentPdf, pdfDir )
|
||||
|
||||
os.chdir( cwd )
|
||||
return
|
||||
|
||||
|
||||
class Site ( object ):
|
||||
|
||||
def __init__ ( self, conf ):
|
||||
self.conf = conf
|
||||
return
|
||||
|
||||
def build ( self ):
|
||||
print 'cd %s' % self.conf.pelicanDir
|
||||
os.chdir( self.conf.pelicanDir )
|
||||
status = Command( [ 'pelican', '-vD', '--ignore-cache', 'content' ] ).execute()
|
||||
if status: return status
|
||||
|
||||
if self.conf.onLepka:
|
||||
Command.rmtree ( self.conf.apacheDir )
|
||||
Command.copytree( './output', self.conf.apacheDir )
|
||||
Command.copytree( self.conf.localDocDir, os.path.join(self.conf.apacheDir,'doc') )
|
||||
return
|
||||
|
||||
def gitPush ( self ):
|
||||
print 'cd %s' % self.conf.pelicanDir
|
||||
os.chdir( self.conf.pelicanDir )
|
||||
|
||||
lines = ''
|
||||
cmd = Command( ['git', 'status', 'content', 'common', 'theme'] )
|
||||
cmd.execute()
|
||||
if cmd.outlog: lines = cmd.outlog.split('\n')
|
||||
if lines[-2] != 'nothing to commit, working directory clean':
|
||||
message = [ 'There are some uncommited changes in the site contents.' ] + lines
|
||||
print ErrorMessage( 1, message )
|
||||
#return False
|
||||
|
||||
Command( ['git', 'push'] ).execute()
|
||||
return True
|
||||
|
||||
def gitCommitPdfs ( self ):
|
||||
print 'cd %s' % self.conf.pelicanDir
|
||||
os.chdir( self.conf.pelicanDir )
|
||||
|
||||
lines = ''
|
||||
cmd = Command( ['git', 'status', 'content/pdfs'] )
|
||||
cmd.execute()
|
||||
if cmd.outlog: lines = cmd.outlog.split('\n')
|
||||
if lines[-2] != 'nothing to commit, working directory clean':
|
||||
message = 'Updated PDFs, %s.' % time.strftime( '%B %d, %Y (%H:%M)' )
|
||||
Command( ['git', 'add' , 'content/pdfs'] ).execute()
|
||||
Command( ['git', 'commit', '-m', message ] ).execute()
|
||||
|
||||
return True
|
||||
|
||||
def remoteBuild ( self ):
|
||||
Command( [ 'ssh', '-x', '-o', 'StrictHostKeyChecking no'
|
||||
, self.conf.target, "echo 'Force SSH key loading.'" ] ).execute()
|
||||
|
||||
Command( [ 'rsync', '--rsh=/usr/bin/ssh', '-avH'
|
||||
, self.conf.localDocDir
|
||||
, '%s:%s' % (self.conf.target,self.conf.remoteDocDir) ] ).execute()
|
||||
|
||||
remoteScript = \
|
||||
' if [ ! -d %(remotePelicanDir)s ]; then' \
|
||||
' cd %(remoteGitDir)s;' \
|
||||
' git clone gitsoc@bop-t:coriolis.lip6.fr;' \
|
||||
' sudo pelican-themes -s %(remotePelicanDir)s/themes/nest-coriolis;' \
|
||||
' sudo chown -R pelican:pelican /var/www/html;' \
|
||||
' fi;' \
|
||||
' cd %(remotePelicanDir)s;' \
|
||||
' git pull;' \
|
||||
' if [ ! -d %(pluginsDir)s ]; then' \
|
||||
' cd %(remoteGitDir)s;' \
|
||||
' git clone https://github.com/getpelican/pelican-plugins;' \
|
||||
' cd pelican-plugins;' \
|
||||
' patch -p1 -i %(remotePelicanDir)s/patchs/0001-bootstrap-rst.no-math.patch;' \
|
||||
' fi;' \
|
||||
' cd %(remotePelicanDir)s;' \
|
||||
' ./build.py -p;' \
|
||||
% { 'pluginsDir' : self.conf.pluginsDir
|
||||
, 'remoteGitDir' : self.conf.remoteGitDir
|
||||
, 'remotePelicanDir' : self.conf.remotePelicanDir
|
||||
}
|
||||
|
||||
SshCommand( remoteScript ).execute( self.conf.target )
|
||||
return
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
usage = \
|
||||
'\n' \
|
||||
'\nThe "build.py" script rebuild the "coriolis.lip6.fr" website hosted' \
|
||||
'\nat the Sorbonne Universite/LIP6. It can work in the following modes:' \
|
||||
'\n' \
|
||||
'\n1. Fully install the website on a freshly generated docker image.' \
|
||||
'\n2. Update the "coriolis.lip6.fr" website.' \
|
||||
'\n3. Generate a static website on my laptop ("lepka").' \
|
||||
'\n4. Generate the static documentation shipped with coriolis (in git).' \
|
||||
'\n' \
|
||||
'\nNOTE: About the "<-C|--coriolis> remote rebuild option."' \
|
||||
'\n Your ${HOME}/.ssh/config file must contain an alias for the' \
|
||||
'\n "coriolis-d" host, as shown below:' \
|
||||
'\n' \
|
||||
'\n Host coriolis-d' \
|
||||
'\n User pelican' \
|
||||
'\n HostName localhost' \
|
||||
'\n HostKeyAlias coriolis-d' \
|
||||
'\n Port 2250' \
|
||||
'\n CheckHostIP no' \
|
||||
'\n ForwardAgent yes' \
|
||||
'\n ForwardX11 no' \
|
||||
'\n RemoteForward 2227 localhost:2227' \
|
||||
'\n' \
|
||||
'\n It logs as user "pelican" using the ssh port 2250 and creates' \
|
||||
'\n a tunnel between port 2227 on the remote host (the web server)' \
|
||||
'\n and port 2227 on the local host (your machine). You *must* have' \
|
||||
'\n an ssh tunnel between your machine and "bop" on the local port' \
|
||||
'\n 2227 for this to work. The "2227" tunnel between the web server' \
|
||||
'\n and "bop" is used to perform "git pull".' \
|
||||
'\n' \
|
||||
'\n./build.py <options>'
|
||||
|
||||
parser = optparse.OptionParser( usage )
|
||||
parser.add_option( '-p', '--pelican' , action='store_true', dest='doPelican' , help='Run pelican.' )
|
||||
parser.add_option( '-P', '--pdfs' , action='store_true', dest='doPdfs' , help='Generate the PDFs.' )
|
||||
parser.add_option( '-C', '--coriolis', action='store_true', dest='doCoriolis', help='Build/update the web site on the server (docker).' )
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
conf = Configuration()
|
||||
if not os.path.isdir( conf.logDir ):
|
||||
os.mkdir( conf.logDir )
|
||||
|
||||
logging.basicConfig( filename='logs/build-%s.log' % time.strftime( '%Y%m%d-%H%M' )
|
||||
, format='%(asctime)s:%(levelname)s| %(message)s'
|
||||
, level=logging.INFO
|
||||
)
|
||||
|
||||
documents = [ Document( conf, 'content/pages/users-guide/UsersGuide' )
|
||||
, Document( conf, 'content/pages/python-tutorial/PythonTutorial' )
|
||||
, Document( conf, 'content/pages/python-cpp/PythonCpp' )
|
||||
, Document( conf, 'content/pages/stratus/Stratus' )
|
||||
, Document( conf, 'content/pages/rds/RDS' )
|
||||
]
|
||||
|
||||
coriolis = Site( conf )
|
||||
|
||||
if options.doPdfs:
|
||||
for document in documents: document.toPdf()
|
||||
if not conf.onSource:
|
||||
coriolis.gitCommitPdfs()
|
||||
|
||||
if options.doPelican:
|
||||
coriolis.build()
|
||||
|
||||
if options.doCoriolis:
|
||||
coriolis.gitPush()
|
||||
coriolis.remoteBuild()
|
||||
|
||||
sys.exit( 0 )
|
After Width: | Height: | Size: 378 B |
After Width: | Height: | Size: 698 B |
After Width: | Height: | Size: 425 B |
After Width: | Height: | Size: 459 B |
After Width: | Height: | Size: 94 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 288 KiB |
After Width: | Height: | Size: 340 KiB |
After Width: | Height: | Size: 146 KiB |
After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 198 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 26 KiB |
|
@ -0,0 +1,100 @@
|
|||
.. -*- Mode: rst -*-
|
||||
|
||||
|
||||
=============
|
||||
Documentation
|
||||
=============
|
||||
|
||||
|
||||
:slug: documentation
|
||||
:date: 2020-01-01 23:00
|
||||
:author: Jean-Paul Chaput
|
||||
:Contact: <Jean-Paul.Chaput@lip6.fr>
|
||||
:Version: Jan 1, 2020 (jpc)
|
||||
:status: hidden
|
||||
|
||||
|
||||
.. include:: ../../etc/definitions.rst
|
||||
|
||||
|
||||
Coriolis Documentation
|
||||
======================
|
||||
|
||||
.. row::
|
||||
|
||||
.. column::
|
||||
:width: 5
|
||||
:offset: 1
|
||||
|
||||
`Coriolis User's Guide <{filename}/pages/users-guide/UsersGuide_HTML.rst>`_ |br|
|
||||
Using the software
|
||||
|
||||
`Python Tutorial <{filename}/pages/python-tutorial/PythonTutorial_HTML.rst>`_ |br|
|
||||
A Tutorial to use Coriolis through Python
|
||||
|
||||
`Python/C++ Tutorial <{filename}/pages/python-cpp/PythonCpp_HTML.rst>`_ |br|
|
||||
A Tutorial to the Python/C++ interface |API|
|
||||
|
||||
`Stratus Language <{filename}/pages/stratus/Stratus_HTML.rst>`_ |br|
|
||||
A Netlist Capture Language (on top of Python)
|
||||
|
||||
`DpGen Extension (Stratus) <{filename}/pages/stratus/DpGen_HTML.rst>`_ |br|
|
||||
Netlist Capture extension for Datapathes
|
||||
|
||||
`Pattern Extension (Stratus) <{filename}/pages/stratus/Patterns_HTML.rst>`_ |br|
|
||||
Patterns generation extension
|
||||
|
||||
`RDS documentation <{filename}/pages/rds/RDS_HTML.rst>`_ |br|
|
||||
Translating symbolic layout to |GDS|.
|
||||
|
||||
|
||||
.. column::
|
||||
:width: 5
|
||||
|
||||
.. row::
|
||||
|
||||
`Hurricane Reference <../doc/hurricane/index.html>`_ |br|
|
||||
|Hurricane| Netlist & Physical structure C++ |API|
|
||||
|
||||
`Viewer Reference <../doc/viewer/index.html>`_ |br|
|
||||
Graphical interface C++ |API|
|
||||
|
||||
`CRL Core Reference <../doc/crlcore/index.html>`_ |br|
|
||||
Parsers/Drivers and I/O C++ |API|
|
||||
|
||||
`Unicorn Reference <../doc/unicorn/index.html>`_ |br|
|
||||
Main GUI C++ |API|
|
||||
|
||||
`Katabatic Reference <../doc/katabatic/index.html>`_ |br|
|
||||
Articulated Segments Data-Structure
|
||||
|
||||
`Kite Reference <../doc/kite/index.html>`_ |br|
|
||||
Digital router
|
||||
|
||||
`Hurricane/Analog Reference <../doc/analog/index.html>`_ |br|
|
||||
About digital design
|
||||
|
||||
`Oroshi Reference <../doc/oroshi/index.html>`_ |br|
|
||||
Analog devices generators
|
||||
|
||||
|
||||
Third Party Documentation
|
||||
=========================
|
||||
|
||||
.. row::
|
||||
|
||||
.. column::
|
||||
:width: 5
|
||||
:offset: 1
|
||||
|
||||
`LEF/DEF Language Reference <../doc/lefdef/lefdefref/lefdefrefTOC.html>`_ |br|
|
||||
Cadence LEF/DEF 5.8 language reference
|
||||
|
||||
.. column::
|
||||
:width: 5
|
||||
|
||||
`LEF C++ API <../doc/lefdef/lefapi/ch1Intro.html>`_ |br|
|
||||
Cadence Documentation of LEF 5.8 C++ API
|
||||
|
||||
`DEF C++ API <../doc/lefdef/defapi/ch1Intro.html>`_ |br|
|
||||
Cadence Documentation of DEF 5.8 C++ API
|
|
@ -0,0 +1,28 @@
|
|||
.. -*- Mode: rst -*-
|
||||
|
||||
|
||||
===================
|
||||
Gitlab Repositories
|
||||
===================
|
||||
|
||||
|
||||
:slug: gitlab
|
||||
:date: 2019-12-29 16:00
|
||||
:author: Jean-Paul Chaput
|
||||
:Contact: <Jean-Paul.Chaput@lip6.fr>
|
||||
:Version: June 4, 2019 (jpc)
|
||||
:status: hidden
|
||||
|
||||
|
||||
.. include:: ../../etc/definitions.rst
|
||||
|
||||
|
||||
The |git| repositories of all the components of the project:
|
||||
|
||||
================================ =======================================================
|
||||
Component Repository
|
||||
================================ =======================================================
|
||||
|Alliance| https://gitlab.lip6.fr/jpc/alliance.git
|
||||
|Coriolis| https://gitlab.lip6.fr/jpc/coriolis.git
|
||||
:cb:`Alliance Check Toolkit` https://gitlab.lip6.fr/jpc/alliance-check-toolkit.git
|
||||
================================ =======================================================
|
|
@ -0,0 +1,109 @@
|
|||
.. -*- Mode: rst -*-
|
||||
|
||||
|
||||
=============================
|
||||
Coriolis |VLSI| Backend Tools
|
||||
=============================
|
||||
|
||||
|
||||
:slug: homepage
|
||||
:date: 2019-12-20 16:00
|
||||
:author: Jean-Paul Chaput
|
||||
:Contact: <Jean-Paul.Chaput@lip6.fr>
|
||||
:Version: June 4, 2019 (jpc)
|
||||
|
||||
|
||||
.. include:: ../../etc/definitions.rst
|
||||
|
||||
.. contents::
|
||||
|
||||
|
||||
Abstract
|
||||
========
|
||||
|
||||
.. image:: {attach}/images/common/amd2901_chip_routed.png
|
||||
:width: 50%
|
||||
:align: center
|
||||
:alt: Routed AM2901 layout picture.
|
||||
|
||||
|
||||
|Alliance| is a complete toolchain for |VLSI| design. It provides a |VHDL| compiler
|
||||
and simulator, logic synthetiser, automatic place & route and portable |CMOS|
|
||||
library. It has been in used in research projects such as the 875K transistors
|
||||
|StaCS| superscalar microprocessor or the 400K transistors |IEEE| gigabit |HSL|
|
||||
router. It has been actively developped during the 1990-2000 years and is maintained
|
||||
since. It's practical limit for one standard cell block (flat) is about 10K gates,
|
||||
above that limit you would need to use hierarchy and manually build a floorplan.
|
||||
|Alliance| is entirely written in C.
|
||||
|
||||
|Coriolis| was started in the year 2000 as a replacement for the place & route stage
|
||||
of |Alliance|. As such it is able to handle standard cells block (flat) of at least 150K
|
||||
gates. It was later extended to support analog design re-implementing the methodology
|
||||
introduced by the |CIAN| team of |LIP6| / |SU| in |CAIRO| / |CAIRO+|. The tools have
|
||||
been designed from the ground up to support digital only, analog only or mixed circuits.
|
||||
|Coriolis| is written in a mix of C++ and |Python|.
|
||||
|
||||
|Alliance| / |Coriolis| is free software. All source code is realeased under the GPL_
|
||||
license, except for |Hurricane| which is under LGPL_ and the Si2_ |LEF| / |DEF|
|
||||
parser drivers that are under `Apache License, Version 2.0`_.
|
||||
|
||||
`Short introduction to Symbolic Layout. <{filename}/pages/symbolic-layout.rst>`_
|
||||
|
||||
|
||||
Design Flow
|
||||
~~~~~~~~~~~
|
||||
|
||||
We are also upgrading the complete design flow by replacing |Alliance| obsoleting
|
||||
tools by more advanced |FOSS| alternatives:
|
||||
|
||||
* Yosys_ for logical synthesis.
|
||||
* GHDL_ for |VHDL| simulation.
|
||||
|
||||
|
||||
|
||||
Design & Features of |Coriolis|
|
||||
===============================
|
||||
|
||||
The |Coriolis| toolchain is build upon the |Hurricane| database.
|
||||
|
||||
* **Tool Integration.** To better manages the challenges arising in the
|
||||
increasingly bigger designs, the various tools have to work together
|
||||
as a whole, in a tight integration at runtime. The |Hurricane| database
|
||||
has been develop to address this problem and as a results, all |Coriolis|
|
||||
tools are built upon it and can communicate through that core database.
|
||||
|
||||
* **Deterministic.** The database and the tools are completely deterministics.
|
||||
Two runs in *exactly* the same context gives the same result.
|
||||
|
||||
* **C++ & Python.** The |Hurricane| database and all tools are fully exported
|
||||
in |Python| providing a seamless integration. The whole toolchain is build
|
||||
as a mix of C++ for computational intensive part and |Python| scripts for
|
||||
everything else. There is not even a binary, the main program *is* a
|
||||
|Python| script and can be rewritten in any way you like.
|
||||
|
||||
* **Graphic Interface.** |Hurricane| also come with a graphical interface
|
||||
allowing to display, explore or check your design. The graphic interface
|
||||
can be extended (in C++) do display any custom overlay.
|
||||
|
||||
* **Symbolic Layout.** For digital part of the designs, we use a symbolic
|
||||
layer approach. Note that |Coriolis| can make digital designs using real
|
||||
technology, but it's a largely untested feature yet.
|
||||
|
||||
* **Analog Design.** A complete user-guided methodology for designing analog
|
||||
circuits is available. It is fully integrated in all the tools and will
|
||||
allow mixed design in the near future.
|
||||
|
||||
|
||||
Disclaimer
|
||||
==========
|
||||
|
||||
|Alliance| / |Coriolis| tools, at the time being, are not suitable for deep submicron
|
||||
technological nodes (below 130nm / 180nm).
|
||||
|
||||
For portability across foundries, technological nodes and freedom from fondries |NDA|,
|
||||
|Alliance| / |Coriolis| rely on *portable* layout (or *scalable* layout, or *symbolic* layout).
|
||||
To produce a valid |GDS| file, you would need to use the |s2r| translation tool which
|
||||
needs a configuration file suited for the target technology, and *that* file is under
|
||||
|NDA|. So, either should be written by you, or given to you through services like
|
||||
MyCMP_.
|
||||
|