blob: 9e7b547855c0ddfba7d1c8b0d18b082785beb112 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CMakeAddFortranSubdirectory &mdash; CMake 3.8.2 Documentation</title>
<link rel="stylesheet" href="../_static/cmake.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '3.8.2',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="shortcut icon" href="../_static/cmake-favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="CMakeBackwardCompatibilityCXX" href="CMakeBackwardCompatibilityCXX.html" />
<link rel="prev" title="CheckVariableExists" href="CheckVariableExists.html" />
</head>
<body role="document">
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="CMakeBackwardCompatibilityCXX.html" title="CMakeBackwardCompatibilityCXX"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="CheckVariableExists.html" title="CheckVariableExists"
accesskey="P">previous</a> |</li>
<li>
<img src="../_static/cmake-logo-16.png" alt=""
style="vertical-align: middle; margin-top: -2px" />
</li>
<li>
<a href="https://cmake.org/">CMake</a> &#187;
</li>
<li>
<a href="../index.html">3.8.2 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="../manual/cmake-modules.7.html" accesskey="U">cmake-modules(7)</a> &#187;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="cmakeaddfortransubdirectory">
<span id="module:CMakeAddFortranSubdirectory"></span><h1>CMakeAddFortranSubdirectory<a class="headerlink" href="#cmakeaddfortransubdirectory" title="Permalink to this headline">ΒΆ</a></h1>
<p>Use MinGW gfortran from VS if a fortran compiler is not found.</p>
<p>The &#8216;add_fortran_subdirectory&#8217; function adds a subdirectory to a
project that contains a fortran only sub-project. The module will
check the current compiler and see if it can support fortran. If no
fortran compiler is found and the compiler is MSVC, then this module
will find the MinGW gfortran. It will then use an external project to
build with the MinGW tools. It will also create imported targets for
the libraries created. This will only work if the fortran code is
built into a dll, so BUILD_SHARED_LIBS is turned on in the project.
In addition the CMAKE_GNUtoMS option is set to on, so that the MS .lib
files are created. Usage is as follows:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="n">cmake_add_fortran_subdirectory</span><span class="p">(</span>
<span class="o">&lt;</span><span class="n">subdir</span><span class="o">&gt;</span> <span class="c1"># name of subdirectory</span>
<span class="n">PROJECT</span> <span class="o">&lt;</span><span class="n">project_name</span><span class="o">&gt;</span> <span class="c1"># project name in subdir top CMakeLists.txt</span>
<span class="n">ARCHIVE_DIR</span> <span class="o">&lt;</span><span class="nb">dir</span><span class="o">&gt;</span> <span class="c1"># dir where project places .lib files</span>
<span class="n">RUNTIME_DIR</span> <span class="o">&lt;</span><span class="nb">dir</span><span class="o">&gt;</span> <span class="c1"># dir where project places .dll files</span>
<span class="n">LIBRARIES</span> <span class="o">&lt;</span><span class="n">lib</span><span class="o">&gt;...</span> <span class="c1"># names of library targets to import</span>
<span class="n">LINK_LIBRARIES</span> <span class="c1"># link interface libraries for LIBRARIES</span>
<span class="p">[</span><span class="n">LINK_LIBS</span> <span class="o">&lt;</span><span class="n">lib</span><span class="o">&gt;</span> <span class="o">&lt;</span><span class="n">dep</span><span class="o">&gt;...</span><span class="p">]</span><span class="o">...</span>
<span class="n">CMAKE_COMMAND_LINE</span> <span class="o">...</span> <span class="c1"># extra command line flags to pass to cmake</span>
<span class="n">NO_EXTERNAL_INSTALL</span> <span class="c1"># skip installation of external project</span>
<span class="p">)</span>
</pre></div>
</div>
<p>Relative paths in ARCHIVE_DIR and RUNTIME_DIR are interpreted with
respect to the build directory corresponding to the source directory
in which the function is invoked.</p>
<p>Limitations:</p>
<p>NO_EXTERNAL_INSTALL is required for forward compatibility with a
future version that supports installation of the external project
binaries during &#8220;make install&#8221;.</p>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h4>Previous topic</h4>
<p class="topless"><a href="CheckVariableExists.html"
title="previous chapter">CheckVariableExists</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="CMakeBackwardCompatibilityCXX.html"
title="next chapter">CMakeBackwardCompatibilityCXX</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/module/CMakeAddFortranSubdirectory.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3>Quick search</h3>
<form class="search" action="../search.html" method="get">
<div><input type="text" name="q" /></div>
<div><input type="submit" value="Go" /></div>
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="CMakeBackwardCompatibilityCXX.html" title="CMakeBackwardCompatibilityCXX"
>next</a> |</li>
<li class="right" >
<a href="CheckVariableExists.html" title="CheckVariableExists"
>previous</a> |</li>
<li>
<img src="../_static/cmake-logo-16.png" alt=""
style="vertical-align: middle; margin-top: -2px" />
</li>
<li>
<a href="https://cmake.org/">CMake</a> &#187;
</li>
<li>
<a href="../index.html">3.8.2 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="../manual/cmake-modules.7.html" >cmake-modules(7)</a> &#187;</li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2000-2017 Kitware, Inc. and Contributors.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.5.2.
</div>
</body>
</html>