<!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>Installing 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/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 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="Installing OpenPASS" href="30_install_openpass.html" /> | |
<link rel="prev" title="Getting Started" href="10_getting_started.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"> | |
0.8.0 | |
</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 Guide</span></p> | |
<ul class="current"> | |
<li class="toctree-l1"><a class="reference internal" href="10_getting_started.html">Getting Started</a></li> | |
<li class="toctree-l1 current"><a class="current reference internal" href="#">Installing Prerequisites</a><ul> | |
<li class="toctree-l2"><a class="reference internal" href="#installing-the-build-environment">Installing the Build Environment</a></li> | |
<li class="toctree-l2"><a class="reference internal" href="#installing-the-binary-packages">Installing the Binary Packages</a></li> | |
<li class="toctree-l2"><a class="reference internal" href="#installing-the-source-packages">Installing the Source Packages</a><ul> | |
<li class="toctree-l3"><a class="reference internal" href="#location-of-installed-source-packages">Location Of Installed Source Packages</a></li> | |
<li class="toctree-l3"><a class="reference internal" href="#build-and-install-osi">Build and Install OSI</a></li> | |
<li class="toctree-l3"><a class="reference internal" href="#build-and-install-fmil">Build and Install FMIL</a></li> | |
</ul> | |
</li> | |
</ul> | |
</li> | |
<li class="toctree-l1"><a class="reference internal" href="30_install_openpass.html">Installing OpenPASS</a></li> | |
<li class="toctree-l1"><a class="reference internal" href="50_further_guidance.html">Further Guidance</a></li> | |
<li class="toctree-l1"><a class="reference internal" href="60_conan.html">Building with Conan</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_overview.html">Overview</a></li> | |
<li class="toctree-l1"><a class="reference internal" href="../user_guide/20_tutorials.html">Tutorials</a></li> | |
<li class="toctree-l1"><a class="reference internal" href="../user_guide/30_gui_plugins.html">GUI Plugins</a></li> | |
<li class="toctree-l1"><a class="reference internal" href="../user_guide/40_configs_in_depth.html">Configs in Depth</a></li> | |
<li class="toctree-l1"><a class="reference internal" href="../user_guide/50_outputs_in_depth.html">Outputs in Depth</a></li> | |
<li class="toctree-l1"><a class="reference internal" href="../user_guide/60_scenario_simulation.html">Simulator</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/20_simulator_advanced.html">Simulator</a></li> | |
<li class="toctree-l1"><a class="reference internal" href="../advanced_topics/30_testing.html">EndToEnd Test Framework</a></li> | |
</ul> | |
<p class="caption"><span class="caption-text">Developer Information</span></p> | |
<ul> | |
<li class="toctree-l1"><a class="reference internal" href="../developer_information/10_ide_support.html">IDE Support</a></li> | |
<li class="toctree-l1"><a class="reference internal" href="../developer_information/20_documentation.html">Documentation Concept</a></li> | |
</ul> | |
<p class="caption"><span class="caption-text">Other Information</span></p> | |
<ul> | |
<li class="toctree-l1"><a class="reference internal" href="../other_information/10_external_dependencies.html">External Dependencies</a></li> | |
<li class="toctree-l1"><a class="reference internal" href="../other_information/20_glossary.html">Glossary</a></li> | |
<li class="toctree-l1"><a class="reference internal" href="../other_information/30_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>Installing Prerequisites</li> | |
<li class="wy-breadcrumbs-aside"> | |
<a href="../_sources/installation_guide/20_install_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="installing-prerequisites"> | |
<span id="prerequisites"></span><h1>Installing Prerequisites<a class="headerlink" href="#installing-prerequisites" title="Permalink to this headline">¶</a></h1> | |
<p>Before being able to compile and run <strong>openPASS</strong>, make sure to have all dependencies installed. | |
The third party software dependency of <strong>openPASS</strong> can be divided into:</p> | |
<ul class="simple"> | |
<li><p><strong>Build environment</strong>, which manages third party software and is used to compile and install <strong>openPASS</strong></p></li> | |
<li><p><strong>Binary packages</strong>, which can be easily installed via a package manager of the respective build environment</p></li> | |
<li><p><strong>Source packages</strong>, which need to be built from source code</p></li> | |
</ul> | |
<p>This section gives detailed information about the prerequisites and tested version.</p> | |
<div class="section" id="installing-the-build-environment"> | |
<span id="building-under-windows"></span><h2>Installing the Build Environment<a class="headerlink" href="#installing-the-build-environment" title="Permalink to this headline">¶</a></h2> | |
<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</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</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"><ol class="arabic"> | |
<li><p>MSYS2</p> | |
<p>On Windows, the build environment of choice are <a class="reference internal" href="../other_information/20_glossary.html#term-MSYS2"><span class="xref std std-term">MSYS2</span></a> programming tools. | |
<a class="reference internal" href="../other_information/20_glossary.html#term-MSYS2"><span class="xref std std-term">MSYS2</span></a> is used to install some third-party software on which <strong>openPASS</strong> depends. | |
Also, the unix-like shell simplifies c++ compilation on Windows. | |
For details, see <a class="reference external" href="https://www.msys2.org/">MSYS2 website</a>.</p> | |
</li> | |
<li id="msys2"><p>Download MSYS2</p> | |
<p>The latest 64-bit packages are located at <a class="reference external" href="https://repo.msys2.org/distrib/x86_64/">https://repo.msys2.org/distrib/x86_64/</a>. | |
Download a non-base package, i.e. <a class="reference external" href="https://repo.msys2.org/distrib/x86_64/msys2-x86_64-20200903.exe">msys2-x86_64-20200903.exe</a></p> | |
</li> | |
<li id="msys2-installation"><p>Install MSYS2</p> | |
<p>Run the downloaded executable and adjust suggested settings to your needs (defaults are fine). | |
In the following, it is assumed that MSYS2 is installed under <code class="docutils literal notranslate"><span class="pre">C:\msys64</span></code>.</p> | |
</li> | |
<li><p>Understand the Build Environment</p> | |
<p>MSYS2 provides three different environments, located in the MSYS2 installation directory:</p> | |
<div class="figure align-center" id="fig-msys2-environments"> | |
<img alt="MSYS2 Apps" src="../_images/msys2.png" /> | |
</div> | |
<p>MSYS2 Environments</p> | |
<ul class="simple"> | |
<li><p>MSYS2 MSYS: Common environment, i.e. for package management</p></li> | |
<li><p>MSYS2 MinGW 32-bit: A MinGW 32-bit environment</p></li> | |
<li><p>MSYS2 MinGW 64-bit: A MinGW 64-bit environment</p></li> | |
</ul> | |
<div class="admonition warning"> | |
<p class="admonition-title">Warning</p> | |
<div class="line-block"> | |
<div class="line">MSYS2 MinGW 64-bit is <strong>the</strong> <strong>openPASS</strong> development environment and will be referred to as <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell.</div> | |
</div> | |
</div> | |
</li> | |
</ol> | |
</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"> | |
<span id="building-under-linux"></span><p>On Linux, no special build environment is needed. <strong>OpenPASS</strong> is developed under Debian 64-Bit, | |
which means that developing under a recent Ubuntu distribution will also work. | |
Debian Bullseye or Ubuntu 20.10 is recommended. Debian uses <code class="docutils literal notranslate"><span class="pre">apt</span></code> (or <code class="docutils literal notranslate"><span class="pre">apt-get</span></code>) as package managing system. | |
Details will be given in <a class="reference internal" href="#binary-packages"><span class="std std-ref">Installing the Binary Packages</span></a> and <a class="reference internal" href="#building-prerequisites"><span class="std std-ref">Installing the Source Packages</span></a>.</p> | |
</div></div> | |
</div> | |
<div class="section" id="installing-the-binary-packages"> | |
<span id="binary-packages"></span><h2>Installing the Binary Packages<a class="headerlink" href="#installing-the-binary-packages" title="Permalink to this headline">¶</a></h2> | |
<p>The first set of dependencies we need to install in order to successfully compile <strong>openPASS</strong> are the binary packages. These can be installed via appropiate package manager.</p> | |
<div class="sphinx-tabs docutils container"> | |
<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-1-1-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-1-1-0" name="1-0" role="tab" tabindex="0">Windows (MSYS2)</button><button aria-controls="panel-1-1-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-1-1-1" name="1-1" role="tab" tabindex="-1">Linux (Debian Bullseye)</button></div><div aria-labelledby="tab-1-1-0" class="sphinx-tabs-panel" id="panel-1-1-0" name="1-0" role="tabpanel" tabindex="0"><ol class="arabic"> | |
<li><p>Open <code class="docutils literal notranslate"><span class="pre">MSYS2</span> <span class="pre">MSYS</span></code> and execute the following package manager <code class="docutils literal notranslate"><span class="pre">pacman</span></code> commands to update the package repository and upgrade system packages:</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pacman</span> <span class="o">-</span><span class="n">Syuu</span> | |
</pre></div> | |
</div> | |
<p>If the upgrade requires a restart of MSYS2, resume the upgrade by re-opening the shell and call:</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pacman</span> <span class="o">-</span><span class="n">Suu</span> | |
</pre></div> | |
</div> | |
</li> | |
<li><p>Required packages (can be specified in single command line if desired):</p> | |
<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># for simulator</span> | |
pacman -S mingw-w64-x86_64-boost <span class="c1">#Tested with 1.75.0-2</span> | |
pacman -S mingw-w64-x86_64-ccache <span class="c1">#Tested with 3.7.9-1</span> | |
pacman -S mingw-w64-x86_64-cmake <span class="c1">#Tested with 3.19.2-1</span> | |
pacman -S mingw-w64-x86_64-doxygen <span class="c1">#Tested with 1.8.20-1</span> | |
pacman -S mingw-w64-x86_64-gcc <span class="c1">#Tested with 10.2.0-6</span> | |
pacman -S mingw-w64-x86_64-gdb <span class="c1">#Tested with 10.1-2</span> | |
pacman -S mingw-w64-x86_64-graphviz <span class="c1">#Tested with 2.44.1-3</span> | |
pacman -S mingw-w64-x86_64-gtest <span class="c1">#Tested with 1.11.0-4</span> | |
pacman -S mingw-w64-x86_64-protobuf <span class="c1">#Tested with 3.12.4-1</span> | |
pacman -S mingw-w64-x86_64-qt5 <span class="c1">#Tested with 5.15.2-5</span> | |
pacman -S make <span class="c1">#Tested with 4.3-1</span> | |
<span class="c1"># for documentation</span> | |
pacman -S mingw-w64-x86_64-python <span class="c1">#Tested with 3.9.6.2</span> | |
pacman -S mingw-w64-x86_64-python-pip <span class="c1">#Tested with 21.1.3-2</span> | |
pacman -S mingw-w64-x86_64-python-lxml <span class="c1">#Tested with 4.6.2-2</span> | |
<span class="c1"># get necessary latex style (assuming default paths for MSYS2)</span> | |
wget -P /mingw64/share/texmf-dist/tex/latex/anyfontsize <span class="se">\</span> | |
http://mirrors.ctan.org/macros/latex/contrib/anyfontsize/anyfontsize.sty | |
<span class="c1"># fonts (picks up anyfontsize) and equation rendering in the documentation</span> | |
pacman -S mingw-w64-x86_64-zziplib <span class="c1">#Tested with 0.13.72-3</span> | |
pacman -S mingw-w64-x86_64-texlive-bin <span class="c1">#Tested with 2021.20210424-5</span> | |
pacman -S mingw-w64-x86_64-texlive-core <span class="c1">#Tested with 2021.20210519-2</span> | |
pacman -S mingw-w64-x86_64-texlive-font-utils <span class="c1">#Tested with 2021.20210519-1</span> | |
<span class="c1"># for sphinx/exhale</span> | |
pacman -S libxslt-devel | |
<span class="c1"># additional python packages for documentation</span> | |
pip3 install sphinx sphinx-rtd-theme sphinx-tabs breathe exhale sphinxcontrib-spelling | |
</pre></div> | |
</div> | |
<div class="admonition-versions admonition"> | |
<p class="admonition-title">Versions</p> | |
<div class="line-block"> | |
<div class="line">MSYS2 provides rolling release versions, so some packages might be too “up-to-date”.</div> | |
<div class="line">Tested packages - ate time of writing - have been listed above as comment.</div> | |
<div class="line">If in doubt, download the package in the right version from the <a class="reference external" href="http://repo.msys2.org/mingw/x86_64/">MSYS2 package repository</a>.</div> | |
<div class="line">Install with <code class="docutils literal notranslate"><span class="pre">pacman</span> <span class="pre">-U</span> <span class="pre"><package-filename></span></code></div> | |
</div> | |
</div> | |
</li> | |
<li><p>Optional Packages</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pacman</span> <span class="o">-</span><span class="n">S</span> <span class="n">git</span> | |
<span class="n">pacman</span> <span class="o">-</span><span class="n">S</span> <span class="n">diffutils</span> | |
<span class="n">pacman</span> <span class="o">-</span><span class="n">S</span> <span class="n">patch</span> | |
<span class="n">pacman</span> <span class="o">-</span><span class="n">S</span> <span class="n">dos2unix</span> | |
<span class="n">pacman</span> <span class="o">-</span><span class="n">S</span> <span class="n">mingw</span><span class="o">-</span><span class="n">w64</span><span class="o">-</span><span class="n">x86_64</span><span class="o">-</span><span class="n">ag</span> | |
<span class="n">pacman</span> <span class="o">-</span><span class="n">S</span> <span class="n">mingw</span><span class="o">-</span><span class="n">w64</span><span class="o">-</span><span class="n">x86_64</span><span class="o">-</span><span class="n">qt5</span><span class="o">-</span><span class="n">debug</span> | |
<span class="n">pacman</span> <span class="o">-</span><span class="n">S</span> <span class="n">zlib</span><span class="o">-</span><span class="n">devel</span> | |
</pre></div> | |
</div> | |
</li> | |
</ol> | |
<div class="admonition-git-ssh admonition"> | |
<p class="admonition-title">GIT/SSH</p> | |
<p>The <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell does not access an already existing git installation or available SSH keys. | |
Make sure, to update/copy your configuration and credentials within the <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell before working with git.</p> | |
</div> | |
</div><div aria-labelledby="tab-1-1-1" class="sphinx-tabs-panel" hidden="true" id="panel-1-1-1" name="1-1" role="tabpanel" tabindex="0"><ol class="arabic"> | |
<li><p>Update the package database on the system</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">apt</span> <span class="n">update</span> | |
</pre></div> | |
</div> | |
</li> | |
<li><p>Upgrade existing software to latest version</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">apt</span> <span class="n">upgrade</span> | |
</pre></div> | |
</div> | |
</li> | |
<li><p>Install required binary packages</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># for simulator</span> | |
<span class="n">apt</span> <span class="n">install</span> <span class="n">ccache</span> | |
<span class="n">apt</span> <span class="n">install</span> <span class="n">cmake</span> | |
<span class="n">apt</span> <span class="n">install</span> <span class="n">doxygen</span> | |
<span class="n">apt</span> <span class="n">install</span> <span class="n">googletest</span> | |
<span class="n">apt</span> <span class="n">install</span> <span class="n">gcc</span> | |
<span class="n">apt</span> <span class="n">install</span> <span class="n">g</span><span class="o">++</span> | |
<span class="n">apt</span> <span class="n">install</span> <span class="n">graphviz</span> | |
<span class="n">apt</span> <span class="n">install</span> <span class="n">libprotobuf</span><span class="o">-</span><span class="n">dev</span> | |
<span class="n">apt</span> <span class="n">install</span> <span class="n">protobuf</span><span class="o">-</span><span class="n">compiler</span> <span class="c1"># when building osi</span> | |
<span class="n">apt</span> <span class="n">install</span> <span class="n">qt5</span><span class="o">-</span><span class="n">default</span> | |
<span class="n">apt</span> <span class="n">install</span> <span class="n">zlib1g</span><span class="o">-</span><span class="n">dev</span> | |
<span class="c1"># for documentation</span> | |
<span class="n">sudo</span> <span class="n">apt</span> <span class="n">install</span> <span class="n">doxygen</span> <span class="n">python3</span> <span class="n">python3</span><span class="o">-</span><span class="n">pip</span> <span class="n">libenchant</span><span class="o">-</span><span class="mi">2</span><span class="o">-</span><span class="mi">2</span> <span class="n">dvipng</span> | |
<span class="n">pip3</span> <span class="n">install</span> <span class="n">sphinx</span> <span class="n">sphinx</span><span class="o">-</span><span class="n">rtd</span><span class="o">-</span><span class="n">theme</span> <span class="n">sphinx</span><span class="o">-</span><span class="n">tabs</span> <span class="n">breathe</span> <span class="n">exhale</span> <span class="n">sphinxcontrib</span><span class="o">-</span><span class="n">spelling</span> | |
</pre></div> | |
</div> | |
<p>Under Linux, it is deliberate that the googletest package only installs the header files to the system, | |
but not the static and dynamic libraries. The missing libraries can be build and installed to <code class="docutils literal notranslate"><span class="pre">/usr/lib</span></code> via</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">usr</span><span class="o">/</span><span class="n">src</span><span class="o">/</span><span class="n">googletest</span> | |
<span class="n">cmake</span> <span class="o">.</span> | |
<span class="n">make</span> | |
<span class="n">make</span> <span class="n">install</span> | |
</pre></div> | |
</div> | |
</li> | |
</ol> | |
</div></div> | |
<p><strong>EndToEnd Test Framework</strong></p> | |
<p>If the <a class="reference internal" href="../advanced_topics/30_testing.html#testing-endtoend"><span class="std std-ref">EndToEnd Test Framework</span></a> shall be used, additional requirements have to be considered.</p> | |
<p>The test framework is based on Python and some additional Python modules. | |
Installation of the required modules can be accomplished using <code class="docutils literal notranslate"><span class="pre">pip</span></code>. | |
Please refer to the file <code class="docutils literal notranslate"><span class="pre">requirements.txt</span></code> located in <code class="docutils literal notranslate"><span class="pre">sim/tests/endToEndTests/pyOpenPASS</span></code> for a list of dependencies.</p> | |
<p>The requirements file can be directly passed to <code class="docutils literal notranslate"><span class="pre">pip</span></code>:</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="o">-</span><span class="n">r</span> <span class="n">requirements</span><span class="o">.</span><span class="n">txt</span> | |
</pre></div> | |
</div> | |
<p>(executed from <code class="docutils literal notranslate"><span class="pre">sim/src/tests/endToEndTests/pyOpenPASS</span></code>)</p> | |
<div class="admonition warning"> | |
<p class="admonition-title">Warning</p> | |
<p><img alt="win_only" src="../_images/win_only.png" /> | |
<code class="docutils literal notranslate"><span class="pre">pip</span> <span class="pre">install</span></code> will try to fetch precompiled packages by default. | |
If it is unable to locate a binary package for the current environment, packages will be compiled from source. | |
This step fails for the <code class="docutils literal notranslate"><span class="pre">numpy</span></code> package when being built from the MSYS2 environment. | |
Thus, it is recommended to set up a native Windows Python environment and perform the installation there. | |
To force the usage of a specific Python environment, the variable <code class="docutils literal notranslate"><span class="pre">Python3_EXECUTABLE</span></code> can be set to the indended Python interpreter executable during cmake configuration (see <a class="reference internal" href="30_install_openpass.html#download-and-install-openpass"><span class="std std-ref">Installing OpenPASS</span></a>).</p> | |
</div> | |
<p>Please refer to <a class="reference internal" href="../advanced_topics/30_testing.html#testing-endtoend"><span class="std std-ref">EndToEnd Test Framework</span></a> for more details for using the framework.</p> | |
</div> | |
<div class="section" id="installing-the-source-packages"> | |
<span id="building-prerequisites"></span><h2>Installing the Source Packages<a class="headerlink" href="#installing-the-source-packages" title="Permalink to this headline">¶</a></h2> | |
<p>This section describes how to compile prerequisites of <strong>openPASS</strong> using source packages.</p> | |
<div class="admonition note"> | |
<p class="admonition-title">Note</p> | |
<p>If you are unfamiliar to <code class="docutils literal notranslate"><span class="pre">CMake</span></code> or working within a <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell, Section <a class="reference internal" href="further_guidance/10_cmake.html#cmake"><span class="std std-ref">CMake Variables and Options</span></a> and <a class="reference internal" href="#msys2"><span class="std std-ref">MSYS2</span></a> might give you a short introduction on these topics in the scope of building <strong>openPASS</strong> itself.</p> | |
</div> | |
<div class="section" id="location-of-installed-source-packages"> | |
<h3>Location Of Installed Source Packages<a class="headerlink" href="#location-of-installed-source-packages" title="Permalink to this headline">¶</a></h3> | |
<p>The goal of this section is to download necessary source packages and install | |
them into a suitable directory. This directory will later on be copied into the <strong>openPASS</strong> repository in order to resolve third party dependency. | |
The following directory tree shows the folder structure, which will be created by following the recommendations of this guide.</p> | |
<div class="sphinx-tabs docutils container"> | |
<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-2-2-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-2-2-0" name="2-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-2-2-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-2-2-1" name="2-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-2-2-0" class="sphinx-tabs-panel" id="panel-2-2-0" name="2-0" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span>C:\OpenPASS\thirdParty | |
├── FMILibrary | |
│ ├── include | |
│ └── lib | |
└── osi | |
├── include | |
└── lib | |
</pre></div> | |
</div> | |
<p>In the folder structure above:</p> | |
<ul class="simple"> | |
<li><p><code class="docutils literal notranslate"><span class="pre">C:\OpenPASS\thirdParty</span></code> refers to a temporary directory used to built the prerequisites from source, <strong>not</strong> the <code class="docutils literal notranslate"><span class="pre">simopenpass</span></code> repository</p></li> | |
<li><p><code class="docutils literal notranslate"><span class="pre">FMILibrary</span></code> is the install directory of the <code class="docutils literal notranslate"><span class="pre">Functional</span> <span class="pre">Mock-up</span> <span class="pre">Interface</span> <span class="pre">(FMI)</span></code> when build from source</p></li> | |
<li><p><code class="docutils literal notranslate"><span class="pre">osi</span></code> is the install directory of the <code class="docutils literal notranslate"><span class="pre">Open</span> <span class="pre">Simulation</span> <span class="pre">Interface</span> <span class="pre">(OSI)</span></code> when build from source.</p></li> | |
</ul> | |
</div><div aria-labelledby="tab-2-2-1" class="sphinx-tabs-panel" hidden="true" id="panel-2-2-1" name="2-1" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span>~/OpenPASS/thirdParty | |
├── FMILibrary | |
│ ├── include | |
│ └── lib | |
└── osi | |
├── include | |
└── lib | |
</pre></div> | |
</div> | |
<p>In the folder structure above:</p> | |
<ul class="simple"> | |
<li><p><code class="docutils literal notranslate"><span class="pre">~/OpenPASS/thirdParty</span></code> refers to a temporary directory used to built the prerequisites from source, <strong>not</strong> the <code class="docutils literal notranslate"><span class="pre">simopenpass</span></code> repository</p></li> | |
<li><p><code class="docutils literal notranslate"><span class="pre">FMILibrary</span></code> is the install directory of the <code class="docutils literal notranslate"><span class="pre">Functional</span> <span class="pre">Mock-up</span> <span class="pre">Interface</span> <span class="pre">(FMI)</span></code> when build from source</p></li> | |
<li><p><code class="docutils literal notranslate"><span class="pre">osi</span></code> is the install directory of the <code class="docutils literal notranslate"><span class="pre">Open</span> <span class="pre">Simulation</span> <span class="pre">Interface</span> <span class="pre">(OSI)</span></code> when build from source.</p></li> | |
</ul> | |
</div></div> | |
<p>On the basis of this structure, we will explain further steps.</p> | |
</div> | |
<div class="section" id="build-and-install-osi"> | |
<span id="building-osi"></span><h3>Build and Install OSI<a class="headerlink" href="#build-and-install-osi" title="Permalink to this headline">¶</a></h3> | |
<p>As can be looked up in <a class="reference internal" href="../other_information/10_external_dependencies.html#prerequisites-osi"><span class="std std-ref">Open Simulation Interface (OSI)</span></a>, the core component <code class="docutils literal notranslate"><span class="pre">World_OSI</span></code> uses <a class="reference internal" href="../other_information/20_glossary.html#term-OSI"><span class="xref std std-term">OSI</span></a> as backend storage. | |
OSI itself uses <code class="docutils literal notranslate"><span class="pre">protobuf</span></code> to describe data structures in a platform independent way by means of <cite>*.proto</cite> files. | |
When building OSI, these files are converted into C++ headers and sources, using the protobuf compiler <code class="docutils literal notranslate"><span class="pre">protoc</span></code>. | |
Finally, the sources are then compiled into a library. | |
<strong>OpenPASS</strong> finally uses the library and the generated headers to interface the library.</p> | |
<ol class="arabic"> | |
<li><p>Open and create directory structure</p> | |
<div class="sphinx-tabs docutils container"> | |
<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-3-3-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-3-3-0" name="3-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-3-3-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-3-3-1" name="3-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-3-3-0" class="sphinx-tabs-panel" id="panel-3-3-0" name="3-0" role="tabpanel" tabindex="0"><p>Start <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">C</span><span class="o">/</span> | |
<span class="n">mkdir</span> <span class="o">-</span><span class="n">p</span> <span class="n">OpenPASS</span><span class="o">/</span><span class="n">thirdParty</span><span class="o">/</span><span class="n">sources</span> | |
</pre></div> | |
</div> | |
</div><div aria-labelledby="tab-3-3-1" class="sphinx-tabs-panel" hidden="true" id="panel-3-3-1" name="3-1" role="tabpanel" tabindex="0"><p>Start <code class="docutils literal notranslate"><span class="pre">Bash</span></code> shell</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">~</span> | |
<span class="n">mkdir</span> <span class="o">-</span><span class="n">p</span> <span class="n">OpenPASS</span><span class="o">/</span><span class="n">thirdParty</span><span class="o">/</span><span class="n">sources</span> | |
</pre></div> | |
</div> | |
</div></div> | |
</li> | |
<li><p>Download release 3.2.0 from <a class="reference external" href="https://github.com/OpenSimulationInterface/open-simulation-interface">https://github.com/OpenSimulationInterface/open-simulation-interface</a></p></li> | |
<li><p>Extract</p> | |
<ul class="simple"> | |
<li><p>for Windows to <code class="docutils literal notranslate"><span class="pre">C:\OpenPASS\thirdParty\sources\open-simulation-interface-3.2.0</span></code></p></li> | |
<li><p>for Linux to <code class="docutils literal notranslate"><span class="pre">~/OpenPASS/thirdParty/sources/open-simulation-interface-3.2.0</span></code></p></li> | |
</ul> | |
</li> | |
<li><p>Navigate to the extracted folder</p> | |
<div class="sphinx-tabs docutils container"> | |
<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-4-4-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-4-4-0" name="4-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-4-4-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-4-4-1" name="4-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-4-4-0" class="sphinx-tabs-panel" id="panel-4-4-0" name="4-0" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">C</span><span class="o">/</span><span class="n">OpenPASS</span><span class="o">/</span><span class="n">thirdParty</span><span class="o">/</span><span class="n">sources</span><span class="o">/</span><span class="nb">open</span><span class="o">-</span><span class="n">simulation</span><span class="o">-</span><span class="n">interface</span><span class="o">-</span><span class="mf">3.2</span><span class="o">.</span><span class="mi">0</span> | |
</pre></div> | |
</div> | |
</div><div aria-labelledby="tab-4-4-1" class="sphinx-tabs-panel" hidden="true" id="panel-4-4-1" name="4-1" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">~/</span><span class="n">OpenPASS</span><span class="o">/</span><span class="n">thirdParty</span><span class="o">/</span><span class="n">sources</span><span class="o">/</span><span class="nb">open</span><span class="o">-</span><span class="n">simulation</span><span class="o">-</span><span class="n">interface</span><span class="o">-</span><span class="mf">3.2</span><span class="o">.</span><span class="mi">0</span> | |
</pre></div> | |
</div> | |
</div></div> | |
</li> | |
<li><p>Optional: Enable Arenas</p> | |
<p>For better performance, <strong>openPASS</strong> supports protobuf Arenas allocation (<a class="reference external" href="https://developers.google.com/protocol-buffers/docs/reference/arenas">https://developers.google.com/protocol-buffers/docs/reference/arenas</a>). | |
To use this feature, OSI and <strong>openPASS</strong> needs to be compiled with Arenas support. | |
See <a class="reference internal" href="further_guidance/10_cmake.html#cmake-protobuf-arenas"><span class="std std-ref">WITH_EXTENDED_OSI</span></a> how this feature is enabled in <strong>openPASS</strong>.</p> | |
<p>To enable Arenas support for OSI, the line <code class="docutils literal notranslate"><span class="pre">option</span> <span class="pre">cc_enable_arenas</span> <span class="pre">=</span> <span class="pre">true;</span></code> needs to be added <strong>manually</strong> to all OSI proto files before compilation.</p> | |
<p>This can be achieved in two ways. Either the line <code class="docutils literal notranslate"><span class="pre">option</span> <span class="pre">cc_enable_arenas</span> <span class="pre">=</span> <span class="pre">true;</span></code> gets added manually <strong>after the second line</strong> of each PROTO file</p> | |
<ul class="simple"> | |
<li><p>for Windows in <code class="docutils literal notranslate"><span class="pre">C:\OpenPASS\thirdParty\sources\open-simulation-interface</span></code></p></li> | |
<li><p>for Linux in <code class="docutils literal notranslate"><span class="pre">~/OpenPASS/thirdParty/sources/open-simulation-interface</span></code></p></li> | |
</ul> | |
<p>by using a text editor or one makes use of the stream editor in the shell:</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">find</span> <span class="o">.</span> <span class="o">-</span><span class="n">maxdepth</span> <span class="mi">1</span> <span class="o">-</span><span class="n">name</span> <span class="s1">'*.proto'</span> <span class="o">-</span><span class="n">exec</span> <span class="n">sed</span> <span class="o">-</span><span class="n">i</span> <span class="s1">'2i option cc_enable_arenas = true;'</span> <span class="p">{}</span> \<span class="p">;</span> | |
</pre></div> | |
</div> | |
<div class="admonition warning"> | |
<p class="admonition-title">Warning</p> | |
<p>The first line of each OSI proto file specifies the protobuf syntax used. | |
If Arenas support is added before the syntax specification, errors occur.</p> | |
</div> | |
</li> | |
<li><p>Create build directory</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mkdir</span> <span class="n">build</span> | |
<span class="n">cd</span> <span class="n">build</span> | |
</pre></div> | |
</div> | |
</li> | |
<li><p>Run Cmake</p> | |
<div class="sphinx-tabs docutils container"> | |
<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-5-5-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-5-5-0" name="5-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-5-5-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-5-5-1" name="5-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-5-5-0" class="sphinx-tabs-panel" id="panel-5-5-0" name="5-0" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cmake</span> <span class="o">-</span><span class="n">G</span> <span class="s2">"MSYS Makefiles"</span> \ | |
<span class="o">-</span><span class="n">DCMAKE_BUILD_TYPE</span><span class="o">=</span><span class="n">Release</span> \ | |
<span class="o">-</span><span class="n">DCMAKE_INSTALL_PREFIX</span><span class="o">=</span><span class="n">C</span><span class="p">:</span><span class="o">/</span><span class="n">OpenPASS</span><span class="o">/</span><span class="n">thirdParty</span><span class="o">/</span><span class="n">osi</span> \ | |
<span class="o">..</span> | |
</pre></div> | |
</div> | |
</div><div aria-labelledby="tab-5-5-1" class="sphinx-tabs-panel" hidden="true" id="panel-5-5-1" name="5-1" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cmake</span> <span class="o">-</span><span class="n">DCMAKE_BUILD_TYPE</span><span class="o">=</span><span class="n">Release</span> \ | |
<span class="o">-</span><span class="n">DCMAKE_INSTALL_PREFIX</span><span class="o">=~/</span><span class="n">OpenPASS</span><span class="o">/</span><span class="n">thirdParty</span><span class="o">/</span><span class="n">osi</span> \ | |
<span class="o">..</span> | |
</pre></div> | |
</div> | |
</div></div> | |
</li> | |
<li><p>Compile</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">make</span> <span class="o">-</span><span class="n">j3</span> | |
</pre></div> | |
</div> | |
<div class="admonition warning"> | |
<p class="admonition-title">Warning</p> | |
<p>If <code class="docutils literal notranslate"><span class="pre">protobuf</span></code> compiler complains, do</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">protoc</span> <span class="o">--</span><span class="n">version</span> | |
</pre></div> | |
</div> | |
<p>and check if correct protobuf version is used.</p> | |
</div> | |
</li> | |
<li><p>Install</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">make</span> <span class="n">install</span> | |
</pre></div> | |
</div> | |
<div class="admonition-documentation admonition"> | |
<p class="admonition-title">Documentation</p> | |
<p>The OSI class documentation is part of the source code and can be compiled using Doxygen. | |
Instructions are located in the OSI <code class="docutils literal notranslate"><span class="pre">Readme.md</span></code>. A pre-compiled version is located <a class="reference external" href="https://opensimulationinterface.github.io/open-simulation-interface/index.html">here</a>.</p> | |
<p>So far, the documentation does not include the extensions from the openpass-trafficAgents branch.</p> | |
</div> | |
</li> | |
</ol> | |
</div> | |
<div class="section" id="build-and-install-fmil"> | |
<span id="building-fmil"></span><h3>Build and Install FMIL<a class="headerlink" href="#build-and-install-fmil" title="Permalink to this headline">¶</a></h3> | |
<ol class="arabic"> | |
<li><p>Download release 2.0.3 from <a class="reference external" href="https://github.com/modelon-community/fmi-library">https://github.com/modelon-community/fmi-library</a></p></li> | |
<li><p>Extract</p> | |
<ul class="simple"> | |
<li><p>for Windows to <code class="docutils literal notranslate"><span class="pre">C:\OpenPASS\thirdParty\sources\fmi-library-2.0.3</span></code></p></li> | |
<li><p>for Linux to <code class="docutils literal notranslate"><span class="pre">~/OpenPASS/thirdParty/sources/fmi-library-2.0.3</span></code></p></li> | |
</ul> | |
</li> | |
<li><p>Navigate to the extracted folder</p> | |
<div class="sphinx-tabs docutils container"> | |
<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-6-6-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-6-6-0" name="6-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-6-6-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-6-6-1" name="6-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-6-6-0" class="sphinx-tabs-panel" id="panel-6-6-0" name="6-0" role="tabpanel" tabindex="0"><p>Start <code class="docutils literal notranslate"><span class="pre">MinGW</span> <span class="pre">64-bit</span></code> shell</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">/</span><span class="n">C</span><span class="o">/</span><span class="n">OpenPASS</span><span class="o">/</span><span class="n">thirdParty</span><span class="o">/</span><span class="n">sources</span><span class="o">/</span><span class="n">fmi</span><span class="o">-</span><span class="n">library</span><span class="o">-</span><span class="mf">2.0</span><span class="o">.</span><span class="mi">3</span> | |
</pre></div> | |
</div> | |
</div><div aria-labelledby="tab-6-6-1" class="sphinx-tabs-panel" hidden="true" id="panel-6-6-1" name="6-1" role="tabpanel" tabindex="0"><p>Start <code class="docutils literal notranslate"><span class="pre">Bash</span></code> shell</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">~/</span><span class="n">OpenPASS</span><span class="o">/</span><span class="n">thirdParty</span><span class="o">/</span><span class="n">sources</span><span class="o">/</span><span class="n">fmi</span><span class="o">-</span><span class="n">library</span><span class="o">-</span><span class="mf">2.0</span><span class="o">.</span><span class="mi">3</span> | |
</pre></div> | |
</div> | |
</div></div> | |
</li> | |
<li><p>Create build directory</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">mkdir</span> <span class="n">build</span> | |
<span class="n">cd</span> <span class="n">build</span> | |
</pre></div> | |
</div> | |
</li> | |
<li><p>Run Cmake</p> | |
<div class="sphinx-tabs docutils container"> | |
<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-7-7-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-7-7-0" name="7-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-7-7-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-7-7-1" name="7-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-7-7-0" class="sphinx-tabs-panel" id="panel-7-7-0" name="7-0" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cmake</span> <span class="o">-</span><span class="n">G</span> <span class="s2">"MSYS Makefiles"</span> \ | |
<span class="o">-</span><span class="n">DFMILIB_INSTALL_PREFIX</span><span class="o">=</span><span class="n">C</span><span class="p">:</span><span class="o">/</span><span class="n">OpenPASS</span><span class="o">/</span><span class="n">thirdParty</span><span class="o">/</span><span class="n">FMILibrary</span> \ | |
<span class="o">-</span><span class="n">DCMAKE_BUILD_TYPE</span><span class="o">=</span><span class="n">Release</span> \ | |
<span class="o">-</span><span class="n">DFMILIB_BUILD_STATIC_LIB</span><span class="o">=</span><span class="n">OFF</span> \ | |
<span class="o">-</span><span class="n">DFMILIB_BUILD_SHARED_LIB</span><span class="o">=</span><span class="n">ON</span> \ | |
<span class="o">..</span> | |
</pre></div> | |
</div> | |
</div><div aria-labelledby="tab-7-7-1" class="sphinx-tabs-panel" hidden="true" id="panel-7-7-1" name="7-1" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cmake</span> <span class="o">-</span><span class="n">DFMILIB_INSTALL_PREFIX</span><span class="o">=~/</span><span class="n">OpenPASS</span><span class="o">/</span><span class="n">thirdParty</span><span class="o">/</span><span class="n">FMILibrary</span> \ | |
<span class="o">-</span><span class="n">DCMAKE_BUILD_TYPE</span><span class="o">=</span><span class="n">Release</span> \ | |
<span class="o">-</span><span class="n">DFMILIB_BUILD_STATIC_LIB</span><span class="o">=</span><span class="n">OFF</span> \ | |
<span class="o">-</span><span class="n">DFMILIB_BUILD_SHARED_LIB</span><span class="o">=</span><span class="n">ON</span> \ | |
<span class="o">..</span> | |
</pre></div> | |
</div> | |
</div></div> | |
</li> | |
<li><p>Leave build directory</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="o">..</span> | |
</pre></div> | |
</div> | |
</li> | |
<li><p>Apply Patch</p> | |
<p>As FMIL and the internally used <a class="reference external" href="https://github.com/modelica-tools/FMUComplianceChecker">FMU Compliance Checker</a> has issues with loading and private entry points, the following patch needs to be applied:</p> | |
<ul class="simple"> | |
<li><p><a class="reference download internal" download="" href="../_downloads/d1dbc0ee423132666374fa73f6c0f165/fmi-library-2.0.3-fixes.patch"><code class="xref download docutils literal notranslate"><span class="pre">Windows/Linux</span> <span class="pre">Patch</span></code></a></p></li> | |
</ul> | |
<div class="sphinx-tabs docutils container"> | |
<div aria-label="Tabbed content" class="closeable" role="tablist"><button aria-controls="panel-8-8-0" aria-selected="true" class="sphinx-tabs-tab" id="tab-8-8-0" name="8-0" role="tab" tabindex="0">Windows</button><button aria-controls="panel-8-8-1" aria-selected="false" class="sphinx-tabs-tab" id="tab-8-8-1" name="8-1" role="tab" tabindex="-1">Linux</button></div><div aria-labelledby="tab-8-8-0" class="sphinx-tabs-panel" id="panel-8-8-0" name="8-0" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">patch</span> <span class="o">-</span><span class="n">l</span> <span class="o">-</span><span class="n">p1</span> <span class="s2">"<path/to>/fmi-library-2.0.3-fixes.patch"</span> | |
</pre></div> | |
</div> | |
</div><div aria-labelledby="tab-8-8-1" class="sphinx-tabs-panel" hidden="true" id="panel-8-8-1" name="8-1" role="tabpanel" tabindex="0"><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">dos2unix</span> <span class="n">src</span><span class="o">/</span><span class="n">Import</span><span class="o">/</span><span class="n">src</span><span class="o">/</span><span class="n">FMI1</span><span class="o">/</span><span class="n">fmi1_import_capi</span><span class="o">.</span><span class="n">c</span> <span class="n">src</span><span class="o">/</span><span class="n">Import</span><span class="o">/</span><span class="n">src</span><span class="o">/</span><span class="n">FMI2</span><span class="o">/</span><span class="n">fmi2_import_capi</span><span class="o">.</span><span class="n">c</span> <span class="n">src</span><span class="o">/</span><span class="n">Util</span><span class="o">/</span><span class="n">include</span><span class="o">/</span><span class="n">JM</span><span class="o">/</span><span class="n">jm_portability</span><span class="o">.</span><span class="n">h</span> | |
<span class="n">patch</span> <span class="o">-</span><span class="n">l</span> <span class="o">-</span><span class="n">p1</span> <span class="s2">"<path/to>/fmi-library-2.0.3-fixes.patch"</span> | |
</pre></div> | |
</div> | |
</div></div> | |
</li> | |
<li><p>Enter build directory</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">build</span> | |
</pre></div> | |
</div> | |
</li> | |
<li><p>Compile</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">make</span> <span class="o">-</span><span class="n">j3</span> | |
</pre></div> | |
</div> | |
</li> | |
<li><p>Install</p> | |
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">make</span> <span class="n">install</span> | |
</pre></div> | |
</div> | |
</li> | |
</ol> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<footer> | |
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> | |
<a href="30_install_openpass.html" class="btn btn-neutral float-right" title="Installing OpenPASS" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> | |
<a href="10_getting_started.html" class="btn btn-neutral float-left" title="Getting Started" 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> |