| |
| |
| <!DOCTYPE html> |
| <html class="writer-html5" lang="en" > |
| <head> |
| <meta charset="utf-8" /> |
| |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
| |
| <title>Prerequisites — OpenPASS Documentation</title> |
| |
| |
| |
| <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" /> |
| <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" /> |
| <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" /> |
| <link rel="stylesheet" href="../../../_static/css/theme.css" type="text/css" /> |
| <link rel="stylesheet" href="../../../_static/tabs.css" type="text/css" /> |
| <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" /> |
| |
| |
| |
| <link rel="shortcut icon" href="../../../_static/openPASS.ico"/> |
| |
| |
| |
| |
| |
| |
| |
| |
| <!--[if lt IE 9]> |
| <script src="../../../_static/js/html5shiv.min.js"></script> |
| <![endif]--> |
| |
| |
| <script type="text/javascript" id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script> |
| <script data-url_root="../../../" id="documentation_options" src="../../../_static/documentation_options.js"></script> |
| <script src="../../../_static/jquery.js"></script> |
| <script src="../../../_static/underscore.js"></script> |
| <script src="../../../_static/doctools.js"></script> |
| <script src="../../../_static/tabs.js"></script> |
| |
| <script type="text/javascript" src="../../../_static/js/theme.js"></script> |
| |
| |
| <link rel="index" title="Index" href="../../../genindex.html" /> |
| <link rel="search" title="Search" href="../../../search.html" /> |
| <link rel="next" title="Building Prerequisites" href="30_build_prerequisites.html" /> |
| <link rel="prev" title="Quick Start" href="10_quickstart.html" /> |
| </head> |
| |
| <body class="wy-body-for-nav"> |
| |
| |
| <div class="wy-grid-for-nav"> |
| |
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> |
| <div class="wy-side-scroll"> |
| <div class="wy-side-nav-search" > |
| |
| |
| |
| <a href="../../../index.html" class="icon icon-home"> openPASS |
| |
| |
| |
| |
| <img src="../../../_static/openPASS.png" class="logo" alt="Logo"/> |
| |
| </a> |
| |
| |
| |
| |
| <div class="version"> |
| 9999.9999.9999 |
| </div> |
| |
| |
| |
| |
| <div role="search"> |
| <form id="rtd-search-form" class="wy-form" action="../../../search.html" method="get"> |
| <input type="text" name="q" placeholder="Search docs" /> |
| <input type="hidden" name="check_keywords" value="yes" /> |
| <input type="hidden" name="area" value="default" /> |
| </form> |
| </div> |
| |
| |
| </div> |
| |
| |
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> |
| |
| |
| |
| |
| |
| |
| <p class="caption"><span class="caption-text">Installation Guides</span></p> |
| <ul class="current"> |
| <li class="toctree-l1"><a class="reference internal" href="../../10_gui_installation_guide.html">GUI Installation Guide</a></li> |
| <li class="toctree-l1 current"><a class="reference internal" href="../../20_sim_installation_guide.html">Simulation Installation Guide</a><ul class="current"> |
| <li class="toctree-l2"><a class="reference internal" href="../meta/sphinx.html">Sphinx</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="10_quickstart.html">Quick Start</a></li> |
| <li class="toctree-l2 current"><a class="current reference internal" href="#">Prerequisites</a><ul> |
| <li class="toctree-l3"><a class="reference internal" href="#gnu-compiler-collection-gcc">GNU Compiler Collection (gcc)</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#gnu-debugger-gdb">GNU Debugger (gdb)</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#cmake">CMake</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#ccache">Ccache</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#doxygen">Doxygen</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#qt-framework">Qt Framework</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#boost-c-libraries">Boost C++ Libraries</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#googletest">googletest</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#open-simulation-interface-osi">Open Simulation Interface (OSI)</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#protocol-buffers-protobuf">Protocol Buffers (protobuf)</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#modelon-fmi-library-fmil">Modelon FMI Library (FMIL)</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l2"><a class="reference internal" href="30_build_prerequisites.html">Building Prerequisites</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="40_cmake.html">Cmake Build Environment</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="50_windows.html">Building under Windows</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="60_linux.html">Building under Linux</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../ides/10_vscode.html">Working with VSCode</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="../ides/20_qt_creator.html">Working with Qt Creator</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l1"><a class="reference internal" href="../../21_pcm_installation_guide.html">PCM Installation Guide</a></li> |
| </ul> |
| <p class="caption"><span class="caption-text">User Guides</span></p> |
| <ul> |
| <li class="toctree-l1"><a class="reference internal" href="../../../user_guide/10_gui_user_guide.html">GUI User Guide</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../../user_guide/20_sim_user_guide.html">Simulation User Guide</a></li> |
| </ul> |
| <p class="caption"><span class="caption-text">Advanced topics</span></p> |
| <ul> |
| <li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/10_documentation.html">Documentation Concept</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../../advanced_topics/20_simulator_advanced.html">Simulator</a></li> |
| </ul> |
| <p class="caption"><span class="caption-text">Other Information</span></p> |
| <ul> |
| <li class="toctree-l1"><a class="reference internal" href="../../../glossary.html">Glossary</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="../../../license.html">License</a></li> |
| </ul> |
| |
| |
| |
| </div> |
| |
| </div> |
| </nav> |
| |
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> |
| |
| |
| <nav class="wy-nav-top" aria-label="top navigation"> |
| |
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> |
| <a href="../../../index.html">openPASS</a> |
| |
| </nav> |
| |
| |
| <div class="wy-nav-content"> |
| |
| <div class="rst-content"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <div role="navigation" aria-label="breadcrumbs navigation"> |
| |
| <ul class="wy-breadcrumbs"> |
| |
| <li><a href="../../../index.html" class="icon icon-home"></a> »</li> |
| |
| <li><a href="../../20_sim_installation_guide.html">Simulation Installation Guide</a> »</li> |
| |
| <li>Prerequisites</li> |
| |
| |
| <li class="wy-breadcrumbs-aside"> |
| |
| |
| <a href="../../../_sources/installation_guide/sim_installation_guide/installation/20_prerequisites.rst.txt" rel="nofollow"> View page source</a> |
| |
| |
| </li> |
| |
| </ul> |
| |
| |
| <hr/> |
| </div> |
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> |
| <div itemprop="articleBody"> |
| |
| <div class="section" id="prerequisites"> |
| <span id="id1"></span><h1>Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this headline">¶</a></h1> |
| <p>This section gives detailed information about the prerequisite and tested version. |
| In short:</p> |
| <div class="sphinx-tabs docutils container"> |
| <div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-0-0-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-0-0-0" name="0-0" role="tab" tabindex="0">Windows (MSYS2)</button><button aria-controls="panel-0-0-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-0-0-1" name="0-1" role="tab" tabindex="-1">Linux (Debian Bullseye)</button></div><div aria-labelledby="tab-0-0-0" class="sphinx-tabs-panel" id="panel-0-0-0" name="0-0" role="tabpanel" tabindex="0"><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>pacman -S mingw-w64-x86_64-boost <span class="c1">#1.75.0-2</span> |
| pacman -S mingw-w64-x86_64-ccache <span class="c1">#3.7.9-1</span> |
| pacman -S mingw-w64-x86_64-cmake <span class="c1">#3.19.2-1</span> |
| pacman -S mingw-w64-x86_64-doxygen <span class="c1">#1.8.20-1</span> |
| pacman -S mingw-w64-x86_64-gcc <span class="c1">#10.2.0-6</span> |
| pacman -S mingw-w64-x86_64-gdb <span class="c1">#10.1-2</span> |
| pacman -S mingw-w64-x86_64-graphviz <span class="c1">#2.44.1-3</span> |
| pacman -S mingw-w64-x86_64-gtest <span class="c1">#1.10.0-1</span> |
| pacman -S mingw-w64-x86_64-make <span class="c1">#4.3-1</span> |
| pacman -S mingw-w64-x86_64-protobuf <span class="c1">#3.12.4-1</span> |
| pacman -S mingw-w64-x86_64-qt5 <span class="c1">#5.15.2-5</span> |
| </pre></div> |
| </div> |
| <p>Details: <a class="reference internal" href="50_windows.html#building-under-windows"><span class="std std-ref">Building under Windows</span></a></p> |
| </div><div aria-labelledby="tab-0-0-1" class="sphinx-tabs-panel" hidden="true" id="panel-0-0-1" name="0-1" role="tabpanel" tabindex="0"><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>apt install ccache |
| apt install cmake |
| apt install doxygen |
| apt install googletest |
| apt install gcc |
| apt install g++ |
| apt install graphviz |
| apt install libprotobuf-dev |
| apt install protobuf-compiler <span class="c1"># when building osi</span> |
| apt install qt5-default |
| </pre></div> |
| </div> |
| <p>Details: <a class="reference internal" href="60_linux.html#building-under-linux"><span class="std std-ref">Building under Linux</span></a></p> |
| </div></div> |
| <div class="section" id="gnu-compiler-collection-gcc"> |
| <h2>GNU Compiler Collection (gcc)<a class="headerlink" href="#gnu-compiler-collection-gcc" title="Permalink to this headline">¶</a></h2> |
| <p><strong>Version (latest tested):</strong> 10.2.3</p> |
| <p><strong>OpenPASS</strong> is developed on Linux and Windows (64-Bit) in <a class="reference external" href="https://isocpp.org/">C++17</a> using the GNU Compiler Collection (<a class="reference external" href="https://gcc.gnu.org/">gcc</a>).</p> |
| <div class="admonition-useful-hints admonition"> |
| <p class="admonition-title">Useful hints</p> |
| <ul> |
| <li><div class="line-block"> |
| <div class="line"><strong>openPASS</strong> has been developed using gcc 7.x, 8.x, 9.x, and more recently gcc 10.x.</div> |
| <div class="line">There are no known issues regarding the different versions.</div> |
| </div> |
| </li> |
| <li><p>Since no compiler specific features are used, the source should also compile with <a class="reference external" href="https://clang.llvm.org/">clang</a>.</p></li> |
| <li><p>Generally, there is support for <a class="reference external" href="https://docs.microsoft.com/en-us/cpp/build/reference/c-cpp-building-reference">MSVC</a> , but currently not actively maintained by the <strong>openPASS</strong> Working Group.</p></li> |
| </ul> |
| </div> |
| </div> |
| <div class="section" id="gnu-debugger-gdb"> |
| <h2>GNU Debugger (gdb)<a class="headerlink" href="#gnu-debugger-gdb" title="Permalink to this headline">¶</a></h2> |
| <p><strong>Version (latest tested):</strong> 9.2</p> |
| <p>Debugging tools for gcc: <a class="reference external" href="https://www.gnu.org/savannah-checkouts/gnu/gdb/index.html">https://www.gnu.org/savannah-checkouts/gnu/gdb/index.html</a></p> |
| </div> |
| <div class="section" id="cmake"> |
| <h2>CMake<a class="headerlink" href="#cmake" title="Permalink to this headline">¶</a></h2> |
| <p><strong>Version (latest tested):</strong> 3.18.4</p> |
| <p><strong>OpenPASS</strong> uses <a class="reference external" href="https://cmake.org/">CMake</a> for building and testing. |
| For details on the provided options, see <a class="reference internal" href="40_cmake.html#cmake"><span class="std std-ref">Cmake Build Environment</span></a>.</p> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>The former support for <code class="docutils literal notranslate"><span class="pre">qmake</span></code> is expiring and not documented anymore.</p> |
| </div> |
| </div> |
| <div class="section" id="ccache"> |
| <span id="prerequisites-ccache"></span><h2>Ccache<a class="headerlink" href="#ccache" title="Permalink to this headline">¶</a></h2> |
| <p><strong>Version (latest tested):</strong> 3.7.11</p> |
| <p><strong>OpenPASS</strong> supports the compiler cache <a class="reference external" href="https://ccache.dev/">Ccache</a> for faster recompilation. |
| Use only, if you need to recompile regularly.</p> |
| <div class="admonition-useful-hints admonition"> |
| <p class="admonition-title">Useful hints</p> |
| <ul class="simple"> |
| <li><p>The first compilation is definilty slower (e.g. by 30%), as the cache needs to be built.</p></li> |
| <li><p>If used regularily, increasing the cache size is recommended, e.g.: <code class="docutils literal notranslate"><span class="pre">ccache</span> <span class="pre">-M</span> <span class="pre">20G</span></code></p></li> |
| </ul> |
| </div> |
| </div> |
| <div class="section" id="doxygen"> |
| <h2>Doxygen<a class="headerlink" href="#doxygen" title="Permalink to this headline">¶</a></h2> |
| <p><strong>Version (latest tested):</strong> 1.8.20</p> |
| <p>Documentation is created using <a class="reference external" href="https://www.doxygen.nl/index.html">Doxygen</a>.</p> |
| <div class="admonition-useful-hints admonition"> |
| <p class="admonition-title">Useful hints</p> |
| <ul class="simple"> |
| <li><p>Doxygen introduced support for Markdown with 1.8, which is still in use. |
| Don’t use older versions.</p></li> |
| </ul> |
| </div> |
| </div> |
| <div class="section" id="qt-framework"> |
| <h2>Qt Framework<a class="headerlink" href="#qt-framework" title="Permalink to this headline">¶</a></h2> |
| <p><strong>Version (officially supported):</strong> 5.12.3</p> |
| <p><strong>OpenPASS</strong> uses some features from the <a class="reference external" href="https://www.qt.io/">Qt</a> framework. |
| While the GUI of <strong>openPASS</strong> (Open Source) heavily relies on it, the simulation core tries to stick to the C++ standard framework as far as possible.</p> |
| <div class="admonition-note-on-versions admonition"> |
| <p class="admonition-title">Note on Versions</p> |
| <div class="line-block"> |
| <div class="line">Versions starting from 5.4 should generally work, but are not officially supported anymore/yet.</div> |
| <div class="line">Version 5.15.1 has been reported to work well.</div> |
| </div> |
| </div> |
| </div> |
| <div class="section" id="boost-c-libraries"> |
| <h2>Boost C++ Libraries<a class="headerlink" href="#boost-c-libraries" title="Permalink to this headline">¶</a></h2> |
| <p><strong>Version (officially supported):</strong> 1.72.0</p> |
| <p>Especially for geometrical calculations, <strong>openPASS</strong> uses parts of the <a class="reference external" href="https://www.boost.org/">Boost C++ Libraries</a>.</p> |
| <div class="admonition-note-on-versions admonition"> |
| <p class="admonition-title">Note on Versions</p> |
| <p>More recent versions should integrate without issues, but 1.74.0 already raise warnings for some deprecated headers.</p> |
| </div> |
| </div> |
| <div class="section" id="googletest"> |
| <h2>googletest<a class="headerlink" href="#googletest" title="Permalink to this headline">¶</a></h2> |
| <p><strong>Version (officially supported)</strong> 1.10.0</p> |
| <p>Tests are written in <a class="reference external" href="https://github.com/google/googletest">googletest</a> and <strong>OpenPASS</strong> makes use of the included <em>googletest</em> (gtest) C++ testing framework, as well as the included mocking framework <em>googlemock</em> (gmock).</p> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>The lastest major release brought several API changes, which made some code fixes necessary. |
| Use newer versions with precaution.</p> |
| </div> |
| </div> |
| <div class="section" id="open-simulation-interface-osi"> |
| <span id="prerequisites-osi"></span><h2>Open Simulation Interface (OSI)<a class="headerlink" href="#open-simulation-interface-osi" title="Permalink to this headline">¶</a></h2> |
| <p><strong>Version (officially supported):</strong> 3.2.0</p> |
| <p>The internal world representation uses the <a class="reference external" href="https://github.com/OpenSimulationInterface">Open Simulation Interface</a> (<a class="reference internal" href="../../../glossary.html#term-OSI"><span class="xref std std-term">OSI</span></a>) as part of its ground truth (backend storage) and exchange format.</p> |
| <div class="figure align-center" id="id7"> |
| <a class="reference internal image-reference" href="../../../_images/osi_in_openpass.png"><img alt="OSI in |op|" src="../../../_images/osi_in_openpass.png" style="width: 514.1999999999999px; height: 131.4px;" /></a> |
| <p class="caption"><span class="caption-text">Interaction between World and consumers of OSI messages.</span><a class="headerlink" href="#id7" title="Permalink to this image">¶</a></p> |
| </div> |
| <p>Thereby, OSI provides data structures for representation of various objects in traffic simulation environments. |
| Note that OSI is primarily developed in a sensor centric view, such as lane markings and object boundaries. |
| Beyond that, <strong>openPASS</strong> holds data for non-sensor centric data, such as metainfo on lanes and roads.</p> |
| <p>As shown, OSI itself depends on <a class="reference internal" href="#prerequisites-protobuf"><span class="std std-ref">Protocol Buffers (protobuf)</span></a>. |
| If not already installed, the library and headers have to be built prior to OSI.</p> |
| <div class="admonition-note-on-versions admonition"> |
| <p class="admonition-title">Note on Versions</p> |
| <p><strong>OpenPASS</strong> supports <strong>integration of custom made or experimental versions</strong> of OSI (see <a class="reference internal" href="30_build_prerequisites.html#building-osi"><span class="std std-ref">Building OSI</span></a>). |
| For example, <cite>Algorithm_FmuWrapper</cite> and the wrapped <cite>OSMP</cite> FMUs use the proposed OSI messages <cite>TrafficUpdate</cite> and <cite>TrafficCommand</cite>, not yet defined in OSI 3.2.0.</p> |
| </div> |
| </div> |
| <div class="section" id="protocol-buffers-protobuf"> |
| <span id="prerequisites-protobuf"></span><h2>Protocol Buffers (protobuf)<a class="headerlink" href="#protocol-buffers-protobuf" title="Permalink to this headline">¶</a></h2> |
| <p><strong>Supported Version (officially supported):</strong> 3.12.2</p> |
| <p><a class="reference internal" href="#prerequisites-osi"><span class="std std-ref">Open Simulation Interface (OSI)</span></a> uses <a class="reference external" href="https://developers.google.com/protocol-buffers">Protocol Buffers</a> for describing and serialization of its datastructures.</p> |
| <div class="admonition-note-on-versions admonition"> |
| <p class="admonition-title">Note on Versions</p> |
| <ul class="simple"> |
| <li><p>So far, no version limitations known (including 2.x).</p></li> |
| <li><p><strong>OpenPASS</strong> lets you integrate your own protobuf libraries if necessary (see <a class="reference internal" href="30_build_prerequisites.html#building-protobuf"><span class="std std-ref">Building Protobuf</span></a>).</p></li> |
| </ul> |
| </div> |
| </div> |
| <div class="section" id="modelon-fmi-library-fmil"> |
| <h2>Modelon FMI Library (FMIL)<a class="headerlink" href="#modelon-fmi-library-fmil" title="Permalink to this headline">¶</a></h2> |
| <p><strong>Supported Version:</strong> 2.0.3</p> |
| <p>For integration of Functional Mock-up Units (FMUs) the <cite>Algorithm_FmuWrapper</cite> uses the <a class="reference external" href="https://github.com/modelon-community/fmi-library">Modelon FMI Library</a>. |
| As there is no binary available, FMIL needs to be build from scratch before <strong>openPASS</strong> can be compiled (see <a class="reference internal" href="30_build_prerequisites.html#building-fmil"><span class="std std-ref">Building FMIL</span></a>).</p> |
| </div> |
| </div> |
| |
| |
| </div> |
| |
| </div> |
| <footer> |
| <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> |
| <a href="30_build_prerequisites.html" class="btn btn-neutral float-right" title="Building Prerequisites" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> |
| <a href="10_quickstart.html" class="btn btn-neutral float-left" title="Quick Start" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> |
| </div> |
| |
| <hr/> |
| |
| <div role="contentinfo"> |
| <p> |
| © Copyright 2021 OpenPASS Working Group. |
| |
| </p> |
| </div> |
| |
| |
| |
| Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a |
| |
| <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> |
| |
| provided by <a href="https://readthedocs.org">Read the Docs</a>. |
| |
| </footer> |
| </div> |
| </div> |
| |
| </section> |
| |
| </div> |
| |
| |
| <script type="text/javascript"> |
| jQuery(function () { |
| SphinxRtdTheme.Navigation.enable(true); |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| </body> |
| </html> |