Browse Source

Math.NET Numerics: 4.9.1 docs update

gh-pages
Christoph Ruegg 6 years ago
parent
commit
1e95c3597c
  1. 44
      Build.html

44
Build.html

@ -65,25 +65,21 @@ manually with the build scripts.</p>
<ul>
<li>.NET Core SDK 3.1.1 (<a href="https://dotnet.microsoft.com/download/dotnet-core/3.1">download</a>)</li>
</ul>
<h2><a name="VisualStudio-or-Xamarin-Studio" class="anchor" href="#VisualStudio-or-Xamarin-Studio">VisualStudio or Xamarin Studio</a></h2>
<p>We clearly separate dependency management from the IDE, you should therefore
<h2><a name="VisualStudio-and-other-IDEs" class="anchor" href="#VisualStudio-and-other-IDEs">VisualStudio and other IDEs</a></h2>
<p>We clearly separate dependency management from the IDE and therefore recommend to
run <code>restore.cmd</code> or <code>restore.sh</code> once after every git checkout in order to restore
the dependencies exactly as defined. Otherwise Visual Studio and other IDEs
may fail to compile or provide correct IntelliSense.</p>
<p>Tests can be run with the usual integrated NUnit test runners or ReSharper.</p>
<h2><a name="Command-Line-Tools" class="anchor" href="#Command-Line-Tools">Command Line Tools</a></h2>
<p>Instead of a compatible IDE you can also build the solutions directly with
the .NET Core SDK, with MsBuild or on Mono with XBuild. You may need to run <code>restore.cmd</code> or
<code>restore.sh</code> before, once after every git checkout in order to restore the dependencies.</p>
the .NET Core SDK build tools. You may need to run <code>restore.cmd</code> or <code>restore.sh</code>
before, once after every git checkout in order to restore the dependencies.</p>
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span>
<span class="l">2: </span>
<span class="l">3: </span>
<span class="l">4: </span>
</pre></td>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">restore</span><span class="o">.</span><span class="i">cmd</span> (<span class="k">or</span> <span class="i">restore</span><span class="o">.</span><span class="i">sh</span>) # <span class="i">restore</span> <span class="i">dependencies</span> (<span class="i">once</span>)
<span class="i">dotnet</span> <span class="i">build</span> <span class="i">MathNet</span><span class="o">.</span><span class="i">Numerics</span><span class="o">.</span><span class="i">sln</span> # <span class="k">with</span> <span class="o">.</span><span class="i">NET</span> <span class="i">Core</span> <span class="i">SDK</span>
<span class="i">msbuild</span> <span class="i">MathNet</span><span class="o">.</span><span class="i">Numerics</span><span class="o">.</span><span class="i">sln</span> # <span class="k">with</span> <span class="i">MsBuild</span>
<span class="i">xbuild</span> <span class="i">MathNet</span><span class="o">.</span><span class="i">Numerics</span><span class="o">.</span><span class="i">sln</span> # <span class="k">with</span> <span class="i">Mono</span>
<td class="snippet"><pre class="fssnip highlighted"><code lang="fsharp"><span class="i">restore</span><span class="o">.</span><span class="i">cmd</span> (<span class="k">or</span> <span class="o">.</span><span class="o">/</span><span class="i">restore</span><span class="o">.</span><span class="i">sh</span>)
<span class="i">dotnet</span> <span class="i">build</span> <span class="i">MathNet</span><span class="o">.</span><span class="i">Numerics</span><span class="o">.</span><span class="i">sln</span>
</code></pre></td>
</tr>
</table>
@ -92,7 +88,7 @@ the .NET Core SDK, with MsBuild or on Mono with XBuild. You may need to run <cod
reference, NuGet and Zip packages is using <a href="https://fsharp.github.io/FAKE/">FAKE</a>.</p>
<p>FAKE itself is not included in the repository but it will download and bootstrap
itself automatically when build.cmd is run the first time. Note that this step
is <em>not</em> required when using Visual Studio or <code>msbuild</code> directly.</p>
is <em>not</em> required when using Visual Studio or the .NET Core SDK directly.</p>
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l"> 1: </span>
<span class="l"> 2: </span>
<span class="l"> 3: </span>
@ -112,10 +108,10 @@ is <em>not</em> required when using Visual Studio or <code>msbuild</code> direct
<span class="i">build</span><span class="o">.</span><span class="i">cmd</span> # <span class="i">normal</span> <span class="i">build</span> <span class="k">and</span> <span class="i">unit</span> <span class="i">tests</span>, <span class="k">when</span> <span class="i">using</span> <span class="i">Windows</span> <span class="i">CMD</span> <span class="i">shell</span><span class="o">.</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">build</span> # <span class="i">normal</span> <span class="i">build</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">build</span> <span class="i">strongname</span> # <span class="i">normal</span> <span class="i">build</span> <span class="k">and</span> <span class="i">also</span> <span class="i">build</span> <span class="i">strong</span> <span class="i">named</span> <span class="i">variant</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">build</span> <span class="i">strongname</span> # <span class="i">normal</span> <span class="i">build</span> <span class="k">and</span> <span class="i">also</span> <span class="i">build</span> <span class="i">strong</span><span class="o">-</span><span class="i">named</span> <span class="i">variant</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">test</span> # <span class="i">normal</span> <span class="i">build</span> (<span class="o">.</span><span class="i">Net</span> <span class="n">4.0</span>), <span class="i">run</span> <span class="i">unit</span> <span class="i">tests</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">test</span> <span class="i">quick</span> # <span class="i">normal</span> <span class="i">build</span> (<span class="o">.</span><span class="i">Net</span> <span class="n">4.0</span>), <span class="i">run</span> <span class="i">unit</span> <span class="i">tests</span> <span class="i">except</span> <span class="i">long</span> <span class="i">running</span> <span class="i">ones</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">test</span> # <span class="i">normal</span> <span class="i">build</span>, <span class="i">run</span> <span class="i">unit</span> <span class="i">tests</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">test</span> <span class="i">quick</span> # <span class="i">normal</span> <span class="i">build</span>, <span class="i">run</span> <span class="i">unit</span> <span class="i">tests</span> <span class="i">except</span> <span class="i">long</span> <span class="i">running</span> <span class="i">ones</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">clean</span> # <span class="i">cleanup</span> <span class="i">build</span> <span class="i">artifacts</span>
<span class="o">.</span><span class="o">/</span><span class="i">build</span><span class="o">.</span><span class="i">sh</span> <span class="i">docs</span> # <span class="i">generate</span> <span class="i">documentation</span>
@ -209,12 +205,18 @@ these packages as well, with the following prefixes:</p>
</ul>
<p>Example: <code>build.sh DataBuild</code></p>
<h2><a name="Intel-MKL-on-Windows" class="anchor" href="#Intel-MKL-on-Windows">Intel MKL on Windows</a></h2>
<p>The build expects that either Intel Parallel Studio 2020 (with the Intel Compiler)
or Intel Math Kernel Library 2020 is installed. If you run into an error with <code>mkl_link_tool.exe</code>
you may need to patch a targets file, see <a href="https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/851578">MKL 2020.1, VS2019 linking bug </a>.</p>
<p>The build is targeting <code>Windows 10 SDK (10.0.17763.0)</code> and the <code>v142</code> platform toolset,
both of which can be installed as individual components in the Visual Studio Installer,
together with the <code>Desktop development with C++</code> workload.</p>
<p>Building the Intel MKL native provider for Windows requires additionally:</p>
<ul>
<li>Either Intel Parallel Studio 2020 or Intel Math Kernel Library 2020 is installed</li>
<li>
Visual Studio 2019, with the following options
<ul>
<li>Desktop development with C++ workload</li>
<li>Windows 10 SDK (10.0.17763.0)</li>
<li>MSVC v142 - VS 2019 C++ x64/x86 build tools</li>
</ul>
</li>
</ul>
<p>The build can then be triggered by calling:</p>
<table class="pre"><tr><td class="lines"><pre class="fssnip"><span class="l">1: </span>
<span class="l">2: </span>
@ -226,6 +228,8 @@ together with the <code>Desktop development with C++</code> workload.</p>
</code></pre></td>
</tr>
</table>
<p>If you run into an error with <code>mkl_link_tool.exe</code> you may need to patch a targets file,
see <a href="https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/851578">MKL 2020.1, VS2019 linking bug </a>.</p>
<p>The build puts the binaries to <code>out/MKL/Windows/x64</code> (and <code>x86</code>), the NuGet package
to <code>out/MKL/NuGet</code> and a Zip archive to <code>out/MKL/Zip</code>. You can directly use the provider from
there by setting <code>Control.NativeProviderPath</code> to the full path pointing to <code>out/MKL/Windows/</code>;

Loading…
Cancel
Save