mirror of
https://github.com/HDFGroup/hdf5.git
synced 2026-10-10 23:44:00 +03:00
721 lines
60 KiB
HTML
721 lines
60 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.13.2"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>HDF5: Building with CMake Presets</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="cookie.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() { init_search(); });
|
|
/* @license-end */
|
|
</script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="hdf5doxy.css" rel="stylesheet" type="text/css"/>
|
|
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
|
|
<link href="hdf5doxy.css" rel="stylesheet" type="text/css">
|
|
<script type="text/javascript" src="hdf5_navtree_hacks.js"></script>
|
|
<div style="background:#FFDDDD;font-size:120%;text-align:center;margin:0;padding:5px">Help us improve by taking our short survey: <a href="https://www.hdfgroup.org/website-survey/">https://www.hdfgroup.org/website-survey/</a></div>
|
|
<!-- ... other metadata & script includes ... -->
|
|
<script type="text/javascript" src="doxygen-awesome-tabs.js"></script>
|
|
<script type="text/javascript">
|
|
DoxygenAwesomeTabs.init()
|
|
</script>
|
|
<!-- Google tag (gtag.js) -->
|
|
<script async src="https://www.googletagmanager.com/gtag/js?id=G-57FMZK4S7X"></script>
|
|
<script>
|
|
window.dataLayer = window.dataLayer || [];
|
|
function gtag(){dataLayer.push(arguments);}
|
|
gtag('js', new Date());
|
|
gtag('config', 'G-57FMZK4S7X');
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectlogo"><img alt="Logo" src="HDFG-logo.png"/></td>
|
|
<td id="projectalign">
|
|
<div id="projectname">HDF5<span id="projectnumber"> Last Updated on 2025-10-13</span>
|
|
</div>
|
|
<div id="projectbrief">The HDF5 Field Guide</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.13.2 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() { codefold.init(0); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="navrow1" class="tabs">
|
|
<ul class="tablist">
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="_getting_started.html"><span>Getting started</span></a></li>
|
|
<li><a href="_u_g.html"><span>User Guide</span></a></li>
|
|
<li><a href="_r_m.html"><span>Reference Manual</span></a></li>
|
|
<li><a href="_cookbook.html"><span>Cookbook</span></a></li>
|
|
<li><a href="_t_n.html"><span>Technical Notes</span></a></li>
|
|
<li><a href="_r_f_c.html"><span>RFCs</span></a></li>
|
|
<li><a href="_s_p_e_c.html"><span>Specifications</span></a></li>
|
|
<li><a href="_g_l_s.html"><span>Glossary</span></a></li>
|
|
<li><a href="_f_t_s.html"><span>Full-Text Search</span></a></li>
|
|
<li><a href="_about.html"><span>About</span></a></li>
|
|
<li>
|
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
|
<span class="left">
|
|
<span id="MSearchSelect" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()"> </span>
|
|
<input type="text" id="MSearchField" value="" placeholder="Search" accesskey="S"
|
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
|
</span><span class="right">
|
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
|
|
</span>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function(){initNavTree('cmake-presets.html',''); initResizable(true); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div><div class="header">
|
|
<div class="headertitle"><div class="title">Building with CMake Presets</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="textblock"><p>Navigate back: <a class="el" href="index.html">Main</a> / <a class="el" href="_cookbook.html">Cookbook</a> </p><hr />
|
|
<h1><a class="anchor" id="sec_cmake_presets_build"></a>
|
|
Building HDF5 with CMake</h1>
|
|
<dl class="section user"><dt>Problem</dt><dd>You want to build HDF5 with CMake, but there are so many options to consider.</dd></dl>
|
|
<dl class="section user"><dt>Solution</dt><dd>CMake introduced presets in version 3.19. HDF Group provides a <a href="https://github.com/HDFGroup/hdf5/blob/develop/CMakePresets.json"><code>CMakePresets.json</code></a>, requiring CMake 3.26, that will build HDF5 with the options for building a typical shared library with the common languages for a platform. The features include building the tools, examples, plugins, and the shared and static libraries.</dd></dl>
|
|
<dl class="section user"><dt>Discussion</dt><dd>The <a href="https://github.com/HDFGroup/hdf5/blob/develop/CMakePresets.json"><code>CMakePresets.json</code></a> file is located in the root directory of the HDF5 source. It is from here you will execute the cmake command to build HDF5. The following example shows how to build HDF5 with the <a href="https://github.com/HDFGroup/hdf5/blob/develop/CMakePresets.json"><code>CMakePresets.json</code></a> file: <ul>
|
|
<li>change directory to the <a class="el" href="namespacehdf5.html">hdf5</a> source folder </li>
|
|
<li>execute <code>cmake –workflow –preset ci-StdShar-<compiler-type> –fresh</code><br />
|
|
where "<compiler-type>" is GNUC or MSVC or Clang</li>
|
|
</ul>
|
|
The above example will create a "build" folder in the source parent directory, which will contain the results of the build, including installation package files.</dd></dl>
|
|
<p>The CMakePresets.json files created by HDF Group are intended to be used with the Ninja build system, which may need to be installed separately on some platforms.</p>
|
|
<dl class="section user"><dt>See Also</dt><dd>See CMake documentation for details on presets: <ul>
|
|
<li><a href="https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html">https://cmake.org/cmake/help/latest/manual/cmake-presets.7.html</a></li>
|
|
</ul>
|
|
</dd></dl>
|
|
<h2><a class="anchor" id="subsec_cmake_presets_build_static"></a>
|
|
CMake Presets Use Case: Static Library and Tools</h2>
|
|
<dl class="section user"><dt>Problem</dt><dd>I want to build the HDF5 library statically and include the tools.</dd></dl>
|
|
<dl class="section user"><dt>Solution</dt><dd>Static libraries can be built with zlib and libaec - but cannot be built with plugins or Java.</dd></dl>
|
|
<p>Create a CMakeUserPresets.json file with the following content: </p><div class="fragment"><div class="line">{</div>
|
|
<div class="line"> <span class="stringliteral">"version"</span>: 6,</div>
|
|
<div class="line"> <span class="stringliteral">"cmakeMinimumRequired"</span>: {</div>
|
|
<div class="line"> <span class="stringliteral">"major"</span>: 3,</div>
|
|
<div class="line"> <span class="stringliteral">"minor"</span>: 25,</div>
|
|
<div class="line"> <span class="stringliteral">"patch"</span>: 0</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> <span class="stringliteral">"configurePresets"</span>: [</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"hidden"</span>: <span class="keyword">true</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"Build HDF5 with static library and tools"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [<span class="stringliteral">"ci-base"</span>, <span class="stringliteral">"ci-CompressionVars"</span>, <span class="stringliteral">"ci-StdExamples"</span>],</div>
|
|
<div class="line"> <span class="stringliteral">"cacheVariables"</span>: {</div>
|
|
<div class="line"> <span class="stringliteral">"HDF_PACKAGE_NAMESPACE"</span>: {<span class="stringliteral">"type"</span>: <span class="stringliteral">"STRING"</span>, <span class="stringliteral">"value"</span>: <span class="stringliteral">"hdf5::"</span>},</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_BUILD_SHARED_LIBS"</span>: <span class="stringliteral">"OFF"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_BUILD_TOOLS"</span>: <span class="stringliteral">"ON"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_ENABLE_ZLIB_SUPPORT"</span>: <span class="stringliteral">"ON"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_ENABLE_LIBAEC"</span>: <span class="stringliteral">"ON"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_ENABLE_PLUGIN_SUPPORT"</span>: <span class="stringliteral">"OFF"</span></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-MSVC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"MSVC Standard Config for x64 (Release)"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-MSVC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"ci-CPP"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"my-Static-Tools"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"Clang Standard Config for x64 (Release)"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"ci-CPP"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"ci-Fortran"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"my-Static-Tools"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"GNUC Standard Config for x64 (Release)"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"ci-CPP"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"ci-Fortran"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"my-Static-Tools"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-macos-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"GNUC Standard Config for macos (Release)"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-macos-Release-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"ci-CPP"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"my-Static-Tools"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> ],</div>
|
|
<div class="line"> <span class="stringliteral">"buildPresets"</span>: [</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-MSVC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"MSVC Standard Build for x64 (Release)"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-Static-Tools-MSVC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-MSVC"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"Clang Standard Build for x64 (Release)"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-Static-Tools-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-Clang"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"GNUC Standard Build for x64 (Release)"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-Static-Tools-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-GNUC"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-macos-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"GNUC Standard Build for macos (Release)"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-Static-Tools-macos-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"verbose"</span>: <span class="keyword">true</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-macos-Release-GNUC"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> ],</div>
|
|
<div class="line"> <span class="stringliteral">"testPresets"</span>: [</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-MSVC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-Static-Tools-MSVC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-MSVC"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-Static-Tools-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-Clang"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-Static-Tools-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-GNUC"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-macos-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-Static-Tools-macos-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-macos-Release-GNUC"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> ],</div>
|
|
<div class="line"> <span class="stringliteral">"packagePresets"</span>: [</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-MSVC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-Static-Tools-MSVC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: <span class="stringliteral">"ci-x64-Release-MSVC"</span></div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-Static-Tools-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: <span class="stringliteral">"ci-x64-Release-Clang"</span></div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-Static-Tools-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: <span class="stringliteral">"ci-x64-Release-GNUC"</span></div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-macos-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-Static-Tools-macos-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: <span class="stringliteral">"ci-macos-Release-GNUC"</span></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> ],</div>
|
|
<div class="line"> <span class="stringliteral">"workflowPresets"</span>: [</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-MSVC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"steps"</span>: [</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"configure"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-MSVC"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"build"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-MSVC"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"test"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-MSVC"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"package"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-MSVC"</span>}</div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-StdShar-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"steps"</span>: [</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"configure"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-Clang"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"build"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-Clang"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"test"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-Clang"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"package"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-Clang"</span>}</div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-StdShar-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"steps"</span>: [</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"configure"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-GNUC"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"build"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-GNUC"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"test"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-GNUC"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"package"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-GNUC"</span>}</div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-macos-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"steps"</span>: [</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"configure"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-macos-GNUC"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"build"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-macos-GNUC"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"test"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-macos-GNUC"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"package"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-Static-Tools-macos-GNUC"</span>}</div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> ]</div>
|
|
<div class="line">}</div>
|
|
</div><!-- fragment --><dl class="section user"><dt>Discussion</dt><dd>The above example shows how to build HDF5 with a static library and tools. The CMakeUserPresets.json file is located in the root directory of the HDF5 source. It is from here you execute: <ul>
|
|
<li><code>cmake –workflow –preset my-Static-Tools-<compiler-type> –fresh</code><br />
|
|
where "<compiler-type>" is GNUC or MSVC or Clang or macos-GNUC</li>
|
|
</ul>
|
|
If you don't need cross-compiler or cross-platform support, you can remove the compiler-specific presets and use the "my-Static-Tools" preset directly.</dd></dl>
|
|
<dl class="section user"><dt>See Also</dt><dd><a class="el" href="#subsec_cmake_presets_files_json_details">Default CMakePresets.json Settings</a> for details on the default settings for the StdShar presets.</dd></dl>
|
|
<h2><a class="anchor" id="subsec_cmake_presets_build_s3"></a>
|
|
CMake Presets Use Case: S3 on linux</h2>
|
|
<dl class="section user"><dt>Problem</dt><dd>I want to build the HDF5 library with the ros3 vfd.</dd></dl>
|
|
<dl class="section user"><dt>Solution</dt><dd>Create a CMakeUserPresets.json file with the following content: <div class="fragment"><div class="line">{</div>
|
|
<div class="line"> <span class="stringliteral">"version"</span>: 6,</div>
|
|
<div class="line"> <span class="stringliteral">"cmakeMinimumRequired"</span>: {</div>
|
|
<div class="line"> <span class="stringliteral">"major"</span>: 3,</div>
|
|
<div class="line"> <span class="stringliteral">"minor"</span>: 25,</div>
|
|
<div class="line"> <span class="stringliteral">"patch"</span>: 0</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> <span class="stringliteral">"configurePresets"</span>: [</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"hidden"</span>: <span class="keyword">true</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"Build HDF5 with library and tools for S3"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [<span class="stringliteral">"ci-base"</span>, <span class="stringliteral">"ci-S3"</span>, <span class="stringliteral">"ci-CompressionVars"</span>, <span class="stringliteral">"ci-StdExamples"</span>, <span class="stringliteral">"ci-StdPlugins"</span>],</div>
|
|
<div class="line"> <span class="stringliteral">"cacheVariables"</span>: {</div>
|
|
<div class="line"> <span class="stringliteral">"HDF_PACKAGE_NAMESPACE"</span>: {<span class="stringliteral">"type"</span>: <span class="stringliteral">"STRING"</span>, <span class="stringliteral">"value"</span>: <span class="stringliteral">"hdf5::"</span>},</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_BUILD_SHARED_LIBS"</span>: <span class="stringliteral">"ON"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_BUILD_TOOLS"</span>: <span class="stringliteral">"ON"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_ENABLE_ZLIB_SUPPORT"</span>: <span class="stringliteral">"ON"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_ENABLE_LIBAEC"</span>: <span class="stringliteral">"ON"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_ENABLE_PLUGIN_SUPPORT"</span>: <span class="stringliteral">"ON"</span></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"Clang Standard Config for x64 (Release)"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"ci-CPP"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"ci-Fortran"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"my-linux-S3"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"GNUC Standard Config for x64 (Release)"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"ci-CPP"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"ci-Fortran"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"my-linux-S3"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> ],</div>
|
|
<div class="line"> <span class="stringliteral">"buildPresets"</span>: [</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"Clang Standard Build for x64 (Release)"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-linux-S3-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-Clang"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"GNUC Standard Build for x64 (Release)"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-linux-S3-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-GNUC"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> ],</div>
|
|
<div class="line"> <span class="stringliteral">"testPresets"</span>: [</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-linux-S3-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-Clang"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-linux-S3-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-GNUC"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> ],</div>
|
|
<div class="line"> <span class="stringliteral">"packagePresets"</span>: [</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-linux-S3-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: <span class="stringliteral">"ci-x64-Release-Clang"</span></div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-linux-S3-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: <span class="stringliteral">"ci-x64-Release-GNUC"</span></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> ],</div>
|
|
<div class="line"> <span class="stringliteral">"workflowPresets"</span>: [</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-Clang"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"steps"</span>: [</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"configure"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-Clang"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"build"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-Clang"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"test"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-Clang"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"package"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-Clang"</span>}</div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"steps"</span>: [</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"configure"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-GNUC"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"build"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-GNUC"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"test"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-GNUC"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"package"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-S3-GNUC"</span>}</div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> ]</div>
|
|
<div class="line">}</div>
|
|
</div><!-- fragment --></dd></dl>
|
|
<dl class="section user"><dt>Discussion</dt><dd>The above example shows how to build HDF5 with a static library and tools. The CMakeUserPresets.json file is located in the root directory of the HDF5 source. It is from here you execute: <ul>
|
|
<li><code>cmake –workflow –preset my-S3-<compiler-type> –fresh</code><br />
|
|
where "<compiler-type>" is GNUC or Clang or macos-GNUC</li>
|
|
</ul>
|
|
If you don't need cross-compiler support, you can remove the compiler-specific presets and use the "my-linux-S3" preset directly.</dd></dl>
|
|
<dl class="section user"><dt>See Also</dt><dd><a class="el" href="#subsec_cmake_presets_files_json_details">Default CMakePresets.json Settings</a> for details on the default settings for the StdShar presets.</dd></dl>
|
|
<h2><a class="anchor" id="subsec_cmake_presets_build_par"></a>
|
|
CMake Presets Use Case: Parallel Library</h2>
|
|
<dl class="section user"><dt>Problem</dt><dd>I want to build the HDF5 library with a parallel compiler.</dd></dl>
|
|
<dl class="section user"><dt>Solution</dt><dd>Create a CMakeUserPresets.json file with the following content: <div class="fragment"><div class="line">{</div>
|
|
<div class="line"> <span class="stringliteral">"version"</span>: 6,</div>
|
|
<div class="line"> <span class="stringliteral">"cmakeMinimumRequired"</span>: {</div>
|
|
<div class="line"> <span class="stringliteral">"major"</span>: 3,</div>
|
|
<div class="line"> <span class="stringliteral">"minor"</span>: 25,</div>
|
|
<div class="line"> <span class="stringliteral">"patch"</span>: 0</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> <span class="stringliteral">"configurePresets"</span>: [</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-par"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"hidden"</span>: <span class="keyword">true</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"Build HDF5 with library and tools using parallel compiler"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [<span class="stringliteral">"ci-base"</span>, <span class="stringliteral">"ci-CompressionVars"</span>, <span class="stringliteral">"ci-StdExamples"</span>],</div>
|
|
<div class="line"> <span class="stringliteral">"environment"</span>: {</div>
|
|
<div class="line"> <span class="stringliteral">"CC"</span>: <span class="stringliteral">"mpicc"</span></div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> <span class="stringliteral">"cacheVariables"</span>: {</div>
|
|
<div class="line"> <span class="stringliteral">"HDF_PACKAGE_NAMESPACE"</span>: {<span class="stringliteral">"type"</span>: <span class="stringliteral">"STRING"</span>, <span class="stringliteral">"value"</span>: <span class="stringliteral">"hdf5::"</span>},</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_BUILD_SHARED_LIBS"</span>: <span class="stringliteral">"ON"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_BUILD_TOOLS"</span>: <span class="stringliteral">"ON"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"MPIEXEC_NUMPROC_FLAG"</span>: <span class="stringliteral">"-n"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"MPIEXEC_MAX_NUMPROCS"</span>: <span class="stringliteral">"2"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_ENABLE_PARALLEL"</span>: <span class="stringliteral">"ON"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_ENABLE_SUBFILING_VFD"</span>: <span class="stringliteral">"OFF"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_ENABLE_ZLIB_SUPPORT"</span>: <span class="stringliteral">"ON"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_ENABLE_LIBAEC"</span>: <span class="stringliteral">"ON"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"HDF5_ENABLE_PLUGIN_SUPPORT"</span>: <span class="stringliteral">"OFF"</span></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-par-mpich"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"mpich Standard Config for x64 (Release)"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-GNUC"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"my-linux-par"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> ],</div>
|
|
<div class="line"> <span class="stringliteral">"buildPresets"</span>: [</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-par-mpich"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"description"</span>: <span class="stringliteral">"mpich Standard Build for x64 (Release)"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-linux-par-mpich"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-GNUC"</span></div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> ],</div>
|
|
<div class="line"> <span class="stringliteral">"testPresets"</span>: [</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-serial-mpich"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-linux-par-mpich"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-GNUC"</span></div>
|
|
<div class="line"> ],</div>
|
|
<div class="line"> <span class="stringliteral">"filter"</span>: {</div>
|
|
<div class="line"> <span class="stringliteral">"exclude"</span>: {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"MPI_TEST"</span></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> },</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-par-mpich"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-linux-par-mpich"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: [</div>
|
|
<div class="line"> <span class="stringliteral">"ci-x64-Release-GNUC"</span></div>
|
|
<div class="line"> ],</div>
|
|
<div class="line"> <span class="stringliteral">"filter"</span>: {</div>
|
|
<div class="line"> <span class="stringliteral">"include"</span>: {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"MPI_TEST"</span></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> ],</div>
|
|
<div class="line"> <span class="stringliteral">"packagePresets"</span>: [</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-par-mpich"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"configurePreset"</span>: <span class="stringliteral">"my-linux-par-mpich"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"inherits"</span>: <span class="stringliteral">"ci-x64-Release-GNUC"</span></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> ],</div>
|
|
<div class="line"> <span class="stringliteral">"workflowPresets"</span>: [</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-par-mpich"</span>,</div>
|
|
<div class="line"> <span class="stringliteral">"steps"</span>: [</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"configure"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-par-mpich"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"build"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-par-mpich"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"test"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-serial-mpich"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"test"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-par-mpich"</span>},</div>
|
|
<div class="line"> {<span class="stringliteral">"type"</span>: <span class="stringliteral">"package"</span>, <span class="stringliteral">"name"</span>: <span class="stringliteral">"my-linux-par-mpich"</span>}</div>
|
|
<div class="line"> ]</div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> ]</div>
|
|
<div class="line">}</div>
|
|
</div><!-- fragment --></dd></dl>
|
|
<dl class="section user"><dt>Discussion</dt><dd>The above example shows how to build HDF5 with a parallel compiler. The CMakeUserPresets.json file is located in the root directory of the HDF5 source. It is from here you execute: <ul>
|
|
<li><code>cmake –workflow –preset my-linux-par-GNUC –fresh</code></li>
|
|
</ul>
|
|
</dd></dl>
|
|
<dl class="section user"><dt>See Also</dt><dd><a class="el" href="#subsec_cmake_presets_files_json_details">Default CMakePresets.json Settings</a> for details on the default settings for the StdShar presets.</dd></dl>
|
|
<h1><a class="anchor" id="sec_cmake_presets_files"></a>
|
|
CMake Presets</h1>
|
|
<p>Presets are a way to store a set of CMake cache variables in a file. This allows you to save and load a set of variables that you use frequently. Presets can be used to save the configuration of a project for different build configurations, such as Debug and Release.</p>
|
|
<p>CMake supports two main files, <b>CMakePresets.json</b> and <b>CMakeUserPresets.json</b>, that allow users to specify common configure options and share them with others. CMake also supports files included with the include field.</p>
|
|
<h2><a class="anchor" id="subsec_cmake_presets_files_json"></a>
|
|
CMakePresets.json</h2>
|
|
<p>HDF Group provides a <a href="https://github.com/HDFGroup/hdf5/blob/develop/CMakePresets.json"><code>CMakePresets.json</code></a> file, used by the github workflows, that includes the following StdShar presets: </p><ul>
|
|
<li>ci-StdShar-MSVC - use MSVC compiler </li>
|
|
<li>ci-StdShar-Clang - use Clang compiler </li>
|
|
<li>ci-StdShar-macos-Clang -Apple Clang compiler </li>
|
|
<li>ci-StdShar-GNUC - use GNU compiler </li>
|
|
<li>ci-StdShar-macos-GNUC - use Apple GNU compiler </li>
|
|
<li>ci-StdShar-GNUC-S3 - use GNU compiler with S3 support </li>
|
|
<li>ci-StdShar-Intel - use Intel OneAPI compiler </li>
|
|
<li>ci-StdShar-win-Intel - use Intel OneAPI compiler on Windows</li>
|
|
</ul>
|
|
<p>The StdShar presets are used by the GitHub workflows to build and test the HDF5 library on different platforms and compilers. The <a href="https://github.com/HDFGroup/hdf5/blob/develop/CMakePresets.json"><code>CMakePresets.json</code></a> file is located in the root directory of the HDF5 repository. The StdShar presets inherit the following settings: </p><ul>
|
|
<li>ci-CPP - enables C++ support </li>
|
|
<li>ci-Fortran - enables Fortran support, except on macOS </li>
|
|
<li>ci-Java - enables Java support </li>
|
|
<li>ci-StdShar - described below</li>
|
|
</ul>
|
|
<p>The ci-StdShar preset inherits the following settings: </p><ul>
|
|
<li>ci-StdCompression </li>
|
|
<li>ci-StdExamples </li>
|
|
<li>ci-StdPlugins</li>
|
|
</ul>
|
|
<p>See the <a href="https://github.com/HDFGroup/hdf5/blob/develop/CMakePresets.json"><code>CMakePresets.json</code></a> file for the complete list of presets and settings. The <a class="el" href="#subsec_cmake_presets_files_json_details">Default CMakePresets.json Settings</a> section provides an overview of the default settings for the StdShar presets.</p>
|
|
<h2><a class="anchor" id="subsec_cmake_presets_files_json_details"></a>
|
|
Default CMakePresets.json Settings</h2>
|
|
<p>The ci-StdShar preset sets the following cache variables: </p><ul>
|
|
<li>"HDF_PACKAGE_NAMESPACE": {"type": "STRING", "value": "hdf5::"} </li>
|
|
<li>"HDF5_INSTALL_MOD_FORTRAN": "NO" </li>
|
|
<li>"HDF5_ENABLE_ALL_WARNINGS": "ON" </li>
|
|
<li>"HDF5_MINGW_STATIC_GCC_LIBS": "ON" </li>
|
|
<li>"HDF_TEST_EXPRESS": "2"</li>
|
|
</ul>
|
|
<p>The ci-StdExamples preset inherits the following settings: </p><ul>
|
|
<li>ci-base </li>
|
|
<li>ci-base-tgz</li>
|
|
</ul>
|
|
<p>The ci-StdExamples preset sets the following cache variables: </p><ul>
|
|
<li>"HDF5_PACK_EXAMPLES": "ON" </li>
|
|
<li>"EXAMPLES_DOWNLOAD": "ON"</li>
|
|
</ul>
|
|
<p>The ci-StdPlugins preset inherits the following settings: </p><ul>
|
|
<li>ci-base-plugins </li>
|
|
<li>ci-PluginsVars </li>
|
|
<li>ci-base-tgz</li>
|
|
</ul>
|
|
<p>The ci-StdPlugins preset sets the following cache variables: </p><ul>
|
|
<li>"PLUGIN_USE_LOCALCONTENT": "OFF"</li>
|
|
</ul>
|
|
<p>The ci-PluginsVars preset sets the following cache variables (see the <a href="https://github.com/HDFGroup/hdf5/blob/develop/config/CacheURLs.cmake">https://github.com/HDFGroup/hdf5/blob/develop/config/CacheURLs.cmake</a> file for the latest versions): </p><ul>
|
|
<li>"HDF5_ENABLE_PLUGIN_SUPPORT": "ON" </li>
|
|
<li>"H5PL_ALLOW_EXTERNAL_SUPPORT": {"type": "STRING", "value": "TGZ"} </li>
|
|
<li>"PLUGIN_PACKAGE_NAME": {"type": "STRING", "value": "pl"} </li>
|
|
<li>"PLUGIN_TGZ_ORIGPATH": {"type": "STRING", "value": "hdf5_plugins download"} </li>
|
|
<li>"PLUGIN_TGZ_NAME": {"type": "STRING", "value": "hdf5_plugins-master.tar.gz"}</li>
|
|
</ul>
|
|
<p>The ci-base-plugins preset sets the following cache variables (see the <a href="https://github.com/HDFGroup/hdf5/blob/develop/config/CacheURLs.cmake">https://github.com/HDFGroup/hdf5/blob/develop/config/CacheURLs.cmake</a> file for the latest versions): </p><ul>
|
|
<li>"BITGROOM_PACKAGE_NAME": {"type": "STRING", "value": "bitgroom"}, </li>
|
|
<li>"BITROUND_PACKAGE_NAME": {"type": "STRING", "value": "bitround"}, </li>
|
|
<li>"BSHUF_TGZ_NAME": {"type": "STRING", "value": "bitshuffle-x.y.z.tar.gz"} </li>
|
|
<li>"BSHUF_PACKAGE_NAME": {"type": "STRING", "value": "bshuf"} </li>
|
|
<li>"BLOSC_TGZ_NAME": {"type": "STRING", "value": "c-blosc-x.y.z.tar.gz"} </li>
|
|
<li>"BLOSC_PACKAGE_NAME": {"type": "STRING", "value": "blosc"} </li>
|
|
<li>"BLOSC_ZLIB_TGZ_NAME": {"type": "STRING", "value": "zlib-x.y.z.tar.gz"} </li>
|
|
<li>"BLOSC_ZLIB_PACKAGE_NAME": {"type": "STRING", "value": "zlib"} </li>
|
|
<li>"BLOSC2_TGZ_NAME": {"type": "STRING", "value": "c-blosc2-x.y.z.tar.gz"} </li>
|
|
<li>"BLOSC2_PACKAGE_NAME": {"type": "STRING", "value": "blosc2"} </li>
|
|
<li>"BLOSC2_ZLIB_TGZ_NAME": {"type": "STRING", "value": "zlib-x.y.z.tar.gz"} </li>
|
|
<li>"BLOSC2_ZLIB_PACKAGE_NAME": {"type": "STRING", "value": "zlib"} </li>
|
|
<li>"BZ2_TGZ_NAME": {"type": "STRING", "value": "bzip2-bzip2-x.y.z.tar.gz"} </li>
|
|
<li>"BZ2_PACKAGE_NAME": {"type": "STRING", "value": "bz2"} </li>
|
|
<li>"FPZIP_TGZ_NAME": {"type": "STRING", "value": "fpzip-x.y.z.tar.gz"} </li>
|
|
<li>"FPZIP_PACKAGE_NAME": {"type": "STRING", "value": "fpzip"} </li>
|
|
<li>"JPEG_TGZ_NAME": {"type": "STRING", "value": "jpegsrc.v9e.tar.gz"} </li>
|
|
<li>"JPEG_PACKAGE_NAME": {"type": "STRING", "value": "jpeg"} </li>
|
|
<li>"BUILD_LZ4_LIBRARY_SOURCE": "ON" </li>
|
|
<li>"LZ4_TGZ_NAME": {"type": "STRING", "value": "lz4-x.y.z.tar.gz"} </li>
|
|
<li>"LZ4_PACKAGE_NAME": {"type": "STRING", "value": "lz4"} </li>
|
|
<li>"LZF_TGZ_NAME": {"type": "STRING", "value": "liblzf-x.y.z.tar.gz"} </li>
|
|
<li>"LZF_PACKAGE_NAME": {"type": "STRING", "value": "lzf"} </li>
|
|
<li>"SZ_TGZ_NAME": {"type": "STRING", "value": "SZ-x.y.z.tar.gz"} </li>
|
|
<li>"SZ_PACKAGE_NAME": {"type": "STRING", "value": "SZ"} </li>
|
|
<li>"ZFP_TGZ_NAME": {"type": "STRING", "value": "zfp-x.y.z.tar.gz"} </li>
|
|
<li>"ZFP_PACKAGE_NAME": {"type": "STRING", "value": "zfp"} </li>
|
|
<li>"ZSTD_TGZ_NAME": {"type": "STRING", "value": "zstd-x.y.z.tar.gz"} </li>
|
|
<li>"ZSTD_PACKAGE_NAME": {"type": "STRING", "value": "zstd"}</li>
|
|
</ul>
|
|
<p>The ci-StdCompression preset inherits the following settings: </p><ul>
|
|
<li>ci-base-tgz </li>
|
|
<li>ci-CompressionVars</li>
|
|
</ul>
|
|
<p>The ci-StdCompression preset sets the following cache variables: </p><ul>
|
|
<li>"HDF5_PACKAGE_EXTLIBS": "ON" </li>
|
|
<li>"HDF5_USE_ZLIB_NG": "OFF" </li>
|
|
<li>"ZLIB_USE_LOCALCONTENT": "OFF" </li>
|
|
<li>"LIBAEC_USE_LOCALCONTENT": "OFF" </li>
|
|
<li>"HDF5_USE_ZLIB_STATIC": "ON" </li>
|
|
<li>"HDF5_USE_LIBAEC_STATIC": "ON"</li>
|
|
</ul>
|
|
<p>The ci-CompressionVars preset sets the following cache variables (see the <a href="https://github.com/HDFGroup/hdf5/blob/develop/config/CacheURLs.cmake">https://github.com/HDFGroup/hdf5/blob/develop/config/CacheURLs.cmake</a> file for the latest versions): </p><ul>
|
|
<li>"ZLIB_PACKAGE_NAME": {"type": "STRING", "value": "zlib"} </li>
|
|
<li>"ZLIB_TGZ_ORIGPATH": {"type": "STRING", "value": "zlib download"} </li>
|
|
<li>"ZLIB_TGZ_NAME": {"type": "STRING", "value": "zlib-x.y.z.tar.gz"} </li>
|
|
<li>"ZLIBNG_PACKAGE_NAME": {"type": "STRING", "value": "zlib-ng"} </li>
|
|
<li>"ZLIBNG_TGZ_ORIGPATH": {"type": "STRING", "value": "zlib-ng download"} </li>
|
|
<li>"ZLIBNG_TGZ_NAME": {"type": "STRING", "value": "x.y.z.tar.gz"} </li>
|
|
<li>"LIBAEC_PACKAGE_NAME": {"type": "STRING", "value": "libaec"} </li>
|
|
<li>"LIBAEC_TGZ_ORIGPATH": {"type": "STRING", "value": "libaec download"} </li>
|
|
<li>"LIBAEC_TGZ_NAME": {"type": "STRING", "value": "libaec-x.y.z.tar.gz"}</li>
|
|
</ul>
|
|
<p>The ci-base-tgz preset inherits the following settings: </p><ul>
|
|
<li>ci-base</li>
|
|
</ul>
|
|
<p>The ci-base-tgz preset sets the following cache variables: </p><ul>
|
|
<li>"HDF5_ALLOW_EXTERNAL_SUPPORT": {"type": "STRING", "value": "TGZ"} </li>
|
|
<li>"TGZPATH": {"type": "PATH", "value": "${sourceParentDir}/temp"}</li>
|
|
</ul>
|
|
<p>The ci-base preset sets the following CMake variables: </p><ul>
|
|
<li>"name": "ci-base" </li>
|
|
<li>"displayName": "Basic Config" </li>
|
|
<li>"description": "Basic build using Ninja generator" </li>
|
|
<li>"generator": "Ninja" </li>
|
|
<li>"binaryDir": "${sourceParentDir}/build/${presetName}" </li>
|
|
<li>"installDir": "${sourceParentDir}/install/${presetName}"</li>
|
|
</ul>
|
|
<hr />
|
|
<p> Navigate back: <a class="el" href="index.html">Main</a> / <a class="el" href="_cookbook.html">Cookbook</a> </p>
|
|
</div></div><!-- contents -->
|
|
</div><!-- PageDoc -->
|
|
</div><!-- doc-content -->
|
|
<!-- start footer part -->
|
|
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
|
<ul>
|
|
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
|
|
</ul>
|
|
</div>
|
|
</body>
|
|
</html>
|