| |
| |
| <!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>Cmake Build Environment — 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 under Windows" href="50_windows.html" /> |
| <link rel="prev" title="Building Prerequisites" href="30_build_prerequisites.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"><a class="reference internal" href="20_prerequisites.html">Prerequisites</a></li> |
| <li class="toctree-l2"><a class="reference internal" href="30_build_prerequisites.html">Building Prerequisites</a></li> |
| <li class="toctree-l2 current"><a class="current reference internal" href="#">Cmake Build Environment</a><ul> |
| <li class="toctree-l3"><a class="reference internal" href="#generator-windows-only">Generator (Windows only)</a></li> |
| <li class="toctree-l3"><a class="reference internal" href="#cmake-variables">Cmake Variables</a><ul> |
| <li class="toctree-l4"><a class="reference internal" href="#cmake-prefix-path">CMAKE_PREFIX_PATH</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#cmake-install-prefix">CMAKE_INSTALL_PREFIX</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#cmake-with-debug-postix">CMAKE_WITH_DEBUG_POSTIX</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#cmake-build-type">CMAKE_BUILD_TYPE</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#cmake-c-compiler">CMAKE_C_COMPILER</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#cmake-cxx-compiler">CMAKE_CXX_COMPILER</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#cmake-object-path-max">CMAKE_OBJECT_PATH_MAX</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l3"><a class="reference internal" href="#openpass-variables">OpenPASS Variables</a><ul> |
| <li class="toctree-l4"><a class="reference internal" href="#use-ccache">USE_CCACHE</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#with-simcore">WITH_SIMCORE</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#with-doc">WITH_DOC</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#with-api-doc">WITH_API_DOC</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#with-coverage">WITH_COVERAGE</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#with-gui">WITH_GUI</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#with-tests">WITH_TESTS</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#with-mingw-boost-1-72-fix">WITH_MINGW_BOOST_1_72_FIX</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#openpass-adjust-output">OPENPASS_ADJUST_OUTPUT</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#with-extended-osi">WITH_EXTENDED_OSI</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#with-protobuf-arena">WITH_PROTOBUF_ARENA</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#install-system-runtime-deps">INSTALL_SYSTEM_RUNTIME_DEPS</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#install-extra-runtime-deps">INSTALL_EXTRA_RUNTIME_DEPS</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l3"><a class="reference internal" href="#make-targets-commands">Make Targets/Commands</a><ul> |
| <li class="toctree-l4"><a class="reference internal" href="#build-and-install">Build and Install</a></li> |
| <li class="toctree-l4"><a class="reference internal" href="#executing-tests">Executing Tests</a></li> |
| </ul> |
| </li> |
| </ul> |
| </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>Cmake Build Environment</li> |
| |
| |
| <li class="wy-breadcrumbs-aside"> |
| |
| |
| <a href="../../../_sources/installation_guide/sim_installation_guide/installation/40_cmake.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="cmake-build-environment"> |
| <span id="cmake"></span><h1>Cmake Build Environment<a class="headerlink" href="#cmake-build-environment" title="Permalink to this headline">¶</a></h1> |
| <p><strong>OpenPASS</strong> uses Cmake as default cross-platform build environment. |
| This section describes the available variables and options. |
| If available, recommended options are shown in bold.</p> |
| <p>The first part of this section approaches Cmake from the <em>command line perspective</em>. |
| Adjustments for the corresponding IDEs will follow shortly.</p> |
| <p>The result of a proper Cmake call is a Makefile, which acts as base for the actual build using <code class="docutils literal notranslate"><span class="pre">make</span></code> or, under Windows, <code class="docutils literal notranslate"><span class="pre">mingw32-make</span></code> (c.f. <a class="reference internal" href="50_windows.html#msys2"><span class="std std-ref">MSYS2</span></a>). |
| Hence, the second part of this section describes best practices around the make commands.</p> |
| <div class="admonition-see-also admonition"> |
| <p class="admonition-title">See also</p> |
| <p>Cmake Documentation: <a class="reference external" href="https://cmake.org/cmake/help/latest/index.html">https://cmake.org/cmake/help/latest/index.html</a></p> |
| </div> |
| <div class="section" id="generator-windows-only"> |
| <h2>Generator (Windows only)<a class="headerlink" href="#generator-windows-only" title="Permalink to this headline">¶</a></h2> |
| <p>To generate MinGW compatible makefiles use <code class="docutils literal notranslate"><span class="pre">-G</span> <span class="pre">"MinGW</span> <span class="pre">Makefiles"</span></code> (c.f. <a class="reference internal" href="50_windows.html#msys2"><span class="std std-ref">MSYS2</span></a>).</p> |
| </div> |
| <div class="section" id="cmake-variables"> |
| <h2>Cmake Variables<a class="headerlink" href="#cmake-variables" title="Permalink to this headline">¶</a></h2> |
| <div class="section" id="cmake-prefix-path"> |
| <span id="id1"></span><h3>CMAKE_PREFIX_PATH<a class="headerlink" href="#cmake-prefix-path" title="Permalink to this headline">¶</a></h3> |
| <p>This command makes the prerequisite available to <strong>openPASS</strong> as semicolon-separated list of directories, specifying installation prefixes to be searched by cmake. |
| Please refer to <a class="reference internal" href="20_prerequisites.html#prerequisites"><span class="std std-ref">Prerequisites</span></a> for the list of mandatory packages and libraries. |
| Cmake will issue an error, if one prerequisite is missing.</p> |
| <p>Generally, cmake recognizes installed libraries (e.g. googletest) on its own. |
| By setting an explicit <code class="docutils literal notranslate"><span class="pre">CMAKE_PREFIX_PATH</span></code> for a library, it is possible to override the system libraries. |
| Use this, when an exact library version, or a customized library shall be used instead.</p> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>In the following example, non-standard libraries are assumed to be in the folder <code class="docutils literal notranslate"><span class="pre">deps/thirdParty</span></code>.</p> |
| </div> |
| <p><strong>Example</strong> (system libraries <strong>not</strong> set):</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</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"><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>cmake -G <span class="s2">"MinGW Makefiles"</span> |
| -D <span class="nv">CMAKE_PREFIX_PATH</span><span class="o">=</span><span class="s2">"\</span> |
| <span class="s2"> /mingw64/bin;\</span> |
| <span class="s2"> </span><span class="nv">$PWD</span><span class="s2">/../deps/thirdParty/win64/FMILibrary;\</span> |
| <span class="s2"> </span><span class="nv">$PWD</span><span class="s2">/../deps/thirdParty/win64/osi;\</span> |
| <span class="s2"> -D <other variables>\</span> |
| <span class="s2"> ..</span> |
| </pre></div> |
| </div> |
| </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>cmake -D <span class="nv">CMAKE_PREFIX_PATH</span><span class="o">=</span><span class="se">\</span> |
| <span class="nv">$PWD</span>/../deps/thirdParty/linux64/FMILibrary<span class="se">\;\</span> |
| <span class="nv">$PWD</span>/../deps/thirdParty/linux64/osi<span class="se">\;\</span> |
| -D <other variables> <span class="se">\</span> |
| .. |
| </pre></div> |
| </div> |
| <div class="admonition warning"> |
| <p class="admonition-title">Warning</p> |
| <p>The semicolon <code class="docutils literal notranslate"><span class="pre">;</span></code> needs to be escaped (<code class="docutils literal notranslate"><span class="pre">\;</span></code>) unless the string is quoted.</p> |
| </div> |
| </div></div> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>Please also read through ref:<cite>openpass_variables</cite> for further useful hints, e.g. why explicitly setting the MinGW path might be a necessary in some situations.</p> |
| </div> |
| </div> |
| <div class="section" id="cmake-install-prefix"> |
| <h3>CMAKE_INSTALL_PREFIX<a class="headerlink" href="#cmake-install-prefix" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Install directory used by install, when invoking <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code></p></li> |
| <li><p>Recommendation: <code class="docutils literal notranslate"><span class="pre">/OpenPASS/bin/core</span></code> (Linux) | <code class="docutils literal notranslate"><span class="pre">C:/OpenPASS/bin/core</span></code> (Windows)</p></li> |
| </ul> |
| </div> |
| <div class="section" id="cmake-with-debug-postix"> |
| <h3>CMAKE_WITH_DEBUG_POSTIX<a class="headerlink" href="#cmake-with-debug-postix" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Used only in conjunction with <em>Visual Studio Debug Builds</em> (MSVC), as it distinguishes release/debug DLLs by a postfix <code class="docutils literal notranslate"><span class="pre">d</span></code>.</p></li> |
| <li><p>Options: <strong>OFF</strong> | ON</p></li> |
| </ul> |
| </div> |
| <div class="section" id="cmake-build-type"> |
| <h3>CMAKE_BUILD_TYPE<a class="headerlink" href="#cmake-build-type" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Specifies the build type on single-configuration generators.</p></li> |
| <li><p>Typical: Release | Debug</p></li> |
| <li><p>See: <a class="reference external" href="https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html">https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html</a></p></li> |
| </ul> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>IDEs, as Qt Creator, might set this variable base on the current build type on their own.</p> |
| </div> |
| </div> |
| <div class="section" id="cmake-c-compiler"> |
| <h3>CMAKE_C_COMPILER<a class="headerlink" href="#cmake-c-compiler" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Options: <strong>gcc-10</strong> | gcc-9 | gcc-8</p></li> |
| <li><p>See: <a class="reference external" href="https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html">https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html</a></p></li> |
| </ul> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>IDEs, as Qt Creator, might set this variable via <em>kit</em> settings.</p> |
| </div> |
| </div> |
| <div class="section" id="cmake-cxx-compiler"> |
| <h3>CMAKE_CXX_COMPILER<a class="headerlink" href="#cmake-cxx-compiler" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Options: <strong>g++-10</strong> | g++-9 | g++-8</p></li> |
| <li><p>See: <a class="reference external" href="https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html">https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER.html</a></p></li> |
| </ul> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>IDEs, as Qt Creator, might set this variable via <em>kit</em> settings.</p> |
| </div> |
| </div> |
| <div class="section" id="cmake-object-path-max"> |
| <h3>CMAKE_OBJECT_PATH_MAX<a class="headerlink" href="#cmake-object-path-max" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Under windows, errors from too long paths could be prevented by setting this value to 255 (maximum).</p></li> |
| <li><p>See: <a class="reference external" href="https://cmake.org/cmake/help/latest/variable/CMAKE_OBJECT_PATH_MAX.html">https://cmake.org/cmake/help/latest/variable/CMAKE_OBJECT_PATH_MAX.html</a></p></li> |
| </ul> |
| </div> |
| </div> |
| <div class="section" id="openpass-variables"> |
| <span id="cmake-openpass-variables"></span><h2>OpenPASS Variables<a class="headerlink" href="#openpass-variables" title="Permalink to this headline">¶</a></h2> |
| <div class="section" id="use-ccache"> |
| <h3>USE_CCACHE<a class="headerlink" href="#use-ccache" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Activates ccache (see <a class="reference internal" href="20_prerequisites.html#prerequisites-ccache"><span class="std std-ref">Ccache</span></a>)</p></li> |
| <li><p>Options: <strong>ON</strong> | OFF</p></li> |
| </ul> |
| </div> |
| <div class="section" id="with-simcore"> |
| <h3>WITH_SIMCORE<a class="headerlink" href="#with-simcore" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Build OSI based scenario simulation, also know as openPASS core (slave).</p></li> |
| <li><p>Options: OFF | <strong>ON</strong></p></li> |
| </ul> |
| </div> |
| <div class="section" id="with-doc"> |
| <h3>WITH_DOC<a class="headerlink" href="#with-doc" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Build sphinx based documentation</p></li> |
| <li><p>Options: OFF | <strong>ON</strong></p></li> |
| </ul> |
| </div> |
| <div class="section" id="with-api-doc"> |
| <h3>WITH_API_DOC<a class="headerlink" href="#with-api-doc" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Build sphinx based developer documentation</p></li> |
| <li><p>Options: <strong>OFF</strong> | ON</p></li> |
| </ul> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>Automatically activates <code class="docutils literal notranslate"><span class="pre">WITH_DOC</span></code> if ON</p> |
| </div> |
| <div class="admonition warning"> |
| <p class="admonition-title">Warning</p> |
| <p>Building the API doc takes pretty long.</p> |
| </div> |
| </div> |
| <div class="section" id="with-coverage"> |
| <h3>WITH_COVERAGE<a class="headerlink" href="#with-coverage" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Add test targets for code coverage analysis (lcov) and HTML report generation (genhtml)</p></li> |
| <li><p>Options: <strong>OFF</strong> | ON</p></li> |
| <li><p>Use <code class="docutils literal notranslate"><span class="pre">COVERAGE_EXCLUDE</span></code> to remove folders from the analysis</p></li> |
| </ul> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>The generated files are placed next to the test executable. |
| Each test will be built without optimization, which will increase the testing run-time.</p> |
| </div> |
| </div> |
| <div class="section" id="with-gui"> |
| <h3>WITH_GUI<a class="headerlink" href="#with-gui" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Activates the additional build of the GUI provided with <strong>OpenPASS</strong> (open source).</p></li> |
| <li><p>Options: <strong>OFF</strong> | ON</p></li> |
| </ul> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>Please refer to <a class="reference internal" href="../../../user_guide/10_gui_user_guide.html#gui-user-guide"><span class="std std-ref">GUI User Guide</span></a> for information on the GUI.</p> |
| </div> |
| </div> |
| <div class="section" id="with-tests"> |
| <h3>WITH_TESTS<a class="headerlink" href="#with-tests" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Build unit tests</p></li> |
| <li><p>Options: OFF | <strong>ON</strong></p></li> |
| </ul> |
| </div> |
| <div class="section" id="with-mingw-boost-1-72-fix"> |
| <h3>WITH_MINGW_BOOST_1_72_FIX<a class="headerlink" href="#with-mingw-boost-1-72-fix" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Options: <strong>OFF</strong> | ON</p></li> |
| <li><p>This enables a fix for detection within the MinGW environment, necessary when using the (for compatibility reasons supported) boost version 1.72.</p></li> |
| <li><p>See: <a class="reference external" href="https://github.com/boostorg/boost_install/issues/33">https://github.com/boostorg/boost_install/issues/33</a>.</p></li> |
| </ul> |
| </div> |
| <div class="section" id="openpass-adjust-output"> |
| <h3>OPENPASS_ADJUST_OUTPUT<a class="headerlink" href="#openpass-adjust-output" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Adjusts if builds are executed in the (Cmake default) folder <code class="docutils literal notranslate"><span class="pre">build</span></code> or directly in the specified install directory. |
| Latter mimics the former qmake behavior let you skip the call <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code>.</p></li> |
| <li><p>Options: <strong>OFF</strong> | ON</p></li> |
| </ul> |
| <div class="admonition warning"> |
| <p class="admonition-title">Warning</p> |
| <p>When skipping <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code>, dependencies are not copied into the output folder, which could cause crashes due to missing or outdated libraries.</p> |
| </div> |
| </div> |
| <div class="section" id="with-extended-osi"> |
| <span id="cmake-protobuf-arenas"></span><h3>WITH_EXTENDED_OSI<a class="headerlink" href="#with-extended-osi" title="Permalink to this headline">¶</a></h3> |
| <ul> |
| <li><p>When set, assumes that extended version of OSI is available, by enabling the <code class="docutils literal notranslate"><span class="pre">USE_EXTENDED_OSI</span></code> preprocessor variable.</p></li> |
| <li><p>This variable can be used to enable e.g. customized OSI features:</p> |
| <blockquote> |
| <div><div class="highlight-c++ notranslate"><div class="highlight"><pre><span></span><span class="cp">#ifdef USE_EXTENDED OSI</span> |
| <span class="cp">#include</span> <span class="cpf">"osi3/osi_<custom_message>.pb.h"</span><span class="cp"></span> |
| <span class="cp">#endif</span> |
| </pre></div> |
| </div> |
| </div></blockquote> |
| </li> |
| <li><p>Options: <strong>OFF</strong> | ON</p></li> |
| </ul> |
| </div> |
| <div class="section" id="with-protobuf-arena"> |
| <h3>WITH_PROTOBUF_ARENA<a class="headerlink" href="#with-protobuf-arena" title="Permalink to this headline">¶</a></h3> |
| <ul> |
| <li><div class="line-block"> |
| <div class="line"><em>Arena allocation is a C++-only feature that helps you optimize your memory usage and improve performance when working with protocol buffers.</em></div> |
| <div class="line">(from <a class="reference external" href="https://developers.google.com/protocol-buffers/docs/reference/arenas">https://developers.google.com/protocol-buffers/docs/reference/arenas</a>)</div> |
| </div> |
| </li> |
| <li><p>Options: <strong>ON</strong> | OFF</p></li> |
| </ul> |
| <div class="admonition note"> |
| <p class="admonition-title">Note</p> |
| <p>This feature is only available, if protobuf related libraries are also compiled with arenas (see <a class="reference internal" href="30_build_prerequisites.html#building-osi"><span class="std std-ref">Building OSI</span></a>). |
| Fortunately, the implementation falls back to regular allocation if not, which simply results in less performance.</p> |
| </div> |
| </div> |
| <div class="section" id="install-system-runtime-deps"> |
| <h3>INSTALL_SYSTEM_RUNTIME_DEPS<a class="headerlink" href="#install-system-runtime-deps" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Copy detected system runtime dependencies to install directory (i.e. MinGW system libraries)</p></li> |
| <li><p>Options: ON | <strong>OFF</strong></p></li> |
| </ul> |
| <div class="admonition warning"> |
| <p class="admonition-title">Warning</p> |
| <p>Under windows, automatic resolution might fail if other MinGW instances are installed. |
| As several programs use MinGW under the hood, it is recommended to set the used MinGW path in the CMAKE_PREFIX_PATH explicitly:</p> |
| <blockquote> |
| <div><div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="nv">CMAKE_PREFIX_PATH</span> <span class="o">=</span> mingw64/bin<span class="p">;</span><span class="se">\.</span>.. |
| </pre></div> |
| </div> |
| </div></blockquote> |
| </div> |
| </div> |
| <div class="section" id="install-extra-runtime-deps"> |
| <h3>INSTALL_EXTRA_RUNTIME_DEPS<a class="headerlink" href="#install-extra-runtime-deps" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>Copy detected third party runtime dependencies to install directory (i.e. required shared libraries found in specified CMAKE_PREFIX_PATH)</p></li> |
| <li><p>Options: ON | <strong>OFF</strong></p></li> |
| </ul> |
| </div> |
| </div> |
| <div class="section" id="make-targets-commands"> |
| <h2>Make Targets/Commands<a class="headerlink" href="#make-targets-commands" title="Permalink to this headline">¶</a></h2> |
| <p><strong>OpenPASS</strong> defines build targets by major modules or components, such as <code class="docutils literal notranslate"><span class="pre">OpenPassSlave</span></code> or <code class="docutils literal notranslate"><span class="pre">Algorithm_FmuWrapper</span></code>. |
| After calling Cmake, simply build <strong>openPASS</strong> by calling <code class="docutils literal notranslate"><span class="pre">make</span></code>.</p> |
| <div class="admonition-see-also admonition"> |
| <p class="admonition-title">See also</p> |
| <p><a class="reference external" href="https://www.tutorialspoint.com/unix_commands/make.htm">https://www.tutorialspoint.com/unix_commands/make.htm</a></p> |
| </div> |
| <div class="section" id="build-and-install"> |
| <h3>Build and Install<a class="headerlink" href="#build-and-install" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p><code class="docutils literal notranslate"><span class="pre">make</span></code></p></li> |
| <li><p><code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">install</span></code></p> |
| </li> |
| <li><p><code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre"><target></span></code>: Build a single target</p></li> |
| </ul> |
| </div> |
| <div class="section" id="executing-tests"> |
| <h3>Executing Tests<a class="headerlink" href="#executing-tests" title="Permalink to this headline">¶</a></h3> |
| <ul class="simple"> |
| <li><p>All tests: <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span> <span class="pre">ARGS="--output-on-failure</span> <span class="pre">-j3"</span></code></p></li> |
| <li><p>Single test: <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">test</span> <span class="pre">OpenPassSlave_Tests</span> <span class="pre">ARGS="--output-on-failure</span> <span class="pre">-j3"</span></code></p></li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| |
| |
| </div> |
| |
| </div> |
| <footer> |
| <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> |
| <a href="50_windows.html" class="btn btn-neutral float-right" title="Building under Windows" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> |
| <a href="30_build_prerequisites.html" class="btn btn-neutral float-left" title="Building Prerequisites" 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> |