diff options
28 files changed, 1532 insertions, 248 deletions
diff --git a/fpm/doc/html/build.1fpm.html b/fpm/doc/html/build.1fpm.html new file mode 100644 index 0000000..4f2b9a8 --- /dev/null +++ b/fpm/doc/html/build.1fpm.html @@ -0,0 +1,182 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0" /> + <title></title> + <style> + <![CDATA[ + + px {font-family: "Lucida Console", Monaco, monospace} + p { font-size:100%; line-height:1.1em; } + body {xfont-style: sans-serif} + body { + color:#333; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:1em; line-height:1.3em; } + a:visited { color:#666; } + h1,h2,h3,h4,h5,h6 { color:#333; font-family:georgia, verdana, sans-serif; } + h1 { font-size:150%; page-break-before:auto;background-color: #aaaaff} + h2 { font-size:143%;color:teal; } + h3 { font-size:134%;color:blue; } + h4 { font-size:120%;color:gray; } + img { max-width: 55em} + p{ padding: 0;margin:0; } + p{ padding-right:1.4em; } + p{ padding-bottom:1em; } + p{ padding-top:1em; } + p{ whitespace: pre-wrap; } + h5,h6 { font-size:100% } + a.nav,a:link.nav, a:visited.nav { background-color:#FFF; color:#000; } + XXtable { border:double #000; border-collapse:collapse; } + XXtable { border-collapse:collapse; } + XXtd { border:thin solid #888; } + XXtd { border:none; } + li { margin-bottom:0.5em; } + blockquote { display:block; font-size:100%; line-height:1.1em; margin:0 0 1.5em; padding:0 2.5em; } + pre { background-color:#DDD; font-size:100%; overflow:auto; padding:1em; } + a,li span { color:#000; } + a:hover, a.nav:hover, a:hover math { background-color:#000; color:#FFF; } + #Container { margin:0 10px; text-align:center; background-color: #BBB} + #Content { border-top:none; margin:auto; padding:0.3em; text-align:left; width:100%; max-width:55em; background:#FFF} + span.webName { font-size:.5em; } + textarea#content { font-size: 1em; line-height: 1.125; } + h1#pageName { line-height:1em; margin:0.2em 0 0.2em 0; padding:0; } + .property { color:#666; font-size:100%; } + a.existingWikiWord[title]{ //border: 1px dashed #BBB; } + .byline { color:#666; font-size:1.0em; font-style:italic; margin-bottom:1em; padding-top:1px; } + ]]> + </style> + <style type="text/css"> + /*<![CDATA[*/ + body { + background-color: #F0F0F0; + color: #000000; + } + :link { color: #0000FF } + :visited { color: #C000C0 } + :active { color: #FF0000 } + span.c4 {font-size: 80%} + td.c3 {font-style: italic} + td.c2 {font-weight: bold} + div.c1 {text-align: center} + /*]]>*/ + </style> +</head> +<body> + <a name="top" id="top"></a> + <h5><a href="download.html">[UP]</a></h5> + <div id="Container"> + <div id="Content"> + <div class="c1"> + <hr /> + <h1><i>Manual Reference Pages - </i>build (fpm)</h1> + <hr /> + </div><a name="0" id="0"> + <h3>NAME</h3></a> + <blockquote> + <b>build(1)</b> - the <b>fpm</b>(1) subcommand to build a project + </blockquote><a name="contents" id="contents"></a> + <h3>CONTENTS</h3> + <blockquote> + <a href="#1">Synopsis</a><br /> + <a href="#2">Description</a><br /> + <a href="#3">Options</a><br /> + <a href="#4">Examples</a><br /> + <a href="#5">See Also</a><br /> + </blockquote><a name="6" id="6"> + <h3>SYNOPSIS</h3></a> + <blockquote> + <pre> +<b>fpm</b> <i>build</i> [-<b>-release</b>]|[-list] +<b>fpm</b> <i>build</i> <b>--help</b>|<b>--version</b> +</pre> + </blockquote><a name="2" id="2"> + <h3>DESCRIPTION</h3></a> + <blockquote> + The "<b>fpm</b> <i>build</i>" command + <blockquote> + <table cellpadding="3"> + <!-- tsb: The "<B>fpm</B> <I>build</I>" command + --> + <tr> + <td></td> + </tr> + <tr> + <td></td> + </tr> + <tr valign="top"> + <td width="3%">o</td> + <td>Fetches any dependencies</td> + </tr> + <tr valign="top"> + <td width="3%">o</td> + <td>Scans your sources</td> + </tr> + <tr valign="top"> + <td width="3%">o</td> + <td>Builds them in the proper order</td> + </tr> + <tr> + <td></td> + </tr> + </table> + </blockquote> + <p>The Fortran source files are assumed to be in app/, test/, and src/ by default. The changed or new files found are rebuilt. The results are + placed in the <i>build</i>/ directory.</p> + <p>Non-default pathnames and remote dependencies are used if specified in the "fpm.toml" file.</p> + </blockquote><a name="3" id="3"> + <h3>OPTIONS</h3></a> + <blockquote> + <table cellpadding="3"> + <tr valign="top"> + <td class="c2" colspan="2">--release</td> + </tr> + <tr valign="top"> + <td width="6%"> </td> + <td><i>build</i> in <i>build</i>/*_release instead of <i>build</i>/*_debug with high optimization instead of full debug options.</td> + </tr> + <tr valign="top"> + <td class="c2" width="6%" nowrap="nowrap">--list</td> + <td valign="bottom">list candidates instead of building or running them</td> + </tr> + <tr valign="top"> + <td class="c2" width="6%" nowrap="nowrap">--help</td> + <td valign="bottom">print this help and exit</td> + </tr> + <tr valign="top"> + <td class="c2" colspan="2">--version</td> + </tr> + <tr valign="top"> + <td width="6%"> </td> + <td>print program version information and exit</td> + </tr> + <tr> + <td></td> + </tr> + </table> + </blockquote><a name="4" id="4"> + <h3>EXAMPLES</h3></a> + <blockquote> + Sample commands: + <pre> + fpm build # build with debug options + fpm build -release # build with high optimization +</pre> + </blockquote><a name="5" id="5"> + <h3>SEE ALSO</h3></a> + <blockquote> + The <b>fpm</b>(1) home page is https://github.com/fortran-lang/<b>fpm</b> + </blockquote> + <hr /> + <table width="100%"> + <tr> + <td width="33%"></td> + <td width="33%" align="center">build (fpm)</td> + <td class="c3" align="right" width="33%">October 01, 2020</td> + </tr> + </table><span class="c4">Generated by <a href="http://www.squarebox.co.uk/download/manServer.shtml">manServer 1.08</a> from + 47286ad9-042d-4b71-9a23-56660b3078d2 using man macros.</span><br /> + <br /> + <div class="c1"><img src="images/IMAGE.gif" /></div> + </div> + </div> +</body> +</html> diff --git a/fpm/doc/html/fpm.1fpm.html b/fpm/doc/html/fpm.1fpm.html new file mode 100644 index 0000000..6fe3b3f --- /dev/null +++ b/fpm/doc/html/fpm.1fpm.html @@ -0,0 +1,195 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0" /> + <title></title> + <style> + <![CDATA[ + + px {font-family: "Lucida Console", Monaco, monospace} + p { font-size:100%; line-height:1.1em; } + body {xfont-style: sans-serif} + body { + color:#333; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:1em; line-height:1.3em; } + a:visited { color:#666; } + h1,h2,h3,h4,h5,h6 { color:#333; font-family:georgia, verdana, sans-serif; } + h1 { font-size:150%; page-break-before:auto;background-color: #aaaaff} + h2 { font-size:143%;color:teal; } + h3 { font-size:134%;color:blue; } + h4 { font-size:120%;color:gray; } + img { max-width: 55em} + p{ padding: 0;margin:0; } + p{ padding-right:1.4em; } + p{ padding-bottom:1em; } + p{ padding-top:1em; } + p{ whitespace: pre-wrap; } + h5,h6 { font-size:100% } + a.nav,a:link.nav, a:visited.nav { background-color:#FFF; color:#000; } + XXtable { border:double #000; border-collapse:collapse; } + XXtable { border-collapse:collapse; } + XXtd { border:thin solid #888; } + XXtd { border:none; } + li { margin-bottom:0.5em; } + blockquote { display:block; font-size:100%; line-height:1.1em; margin:0 0 1.5em; padding:0 2.5em; } + pre { background-color:#DDD; font-size:100%; overflow:auto; padding:1em; } + a,li span { color:#000; } + a:hover, a.nav:hover, a:hover math { background-color:#000; color:#FFF; } + #Container { margin:0 10px; text-align:center; background-color: #BBB} + #Content { border-top:none; margin:auto; padding:0.3em; text-align:left; width:100%; max-width:55em; background:#FFF} + span.webName { font-size:.5em; } + textarea#content { font-size: 1em; line-height: 1.125; } + h1#pageName { line-height:1em; margin:0.2em 0 0.2em 0; padding:0; } + .property { color:#666; font-size:100%; } + a.existingWikiWord[title]{ //border: 1px dashed #BBB; } + .byline { color:#666; font-size:1.0em; font-style:italic; margin-bottom:1em; padding-top:1px; } + ]]> + </style> + <style type="text/css"> + /*<![CDATA[*/ + body { + background-color: #F0F0F0; + color: #000000; + } + :link { color: #0000FF } + :visited { color: #C000C0 } + :active { color: #FF0000 } + span.c4 {font-size: 80%} + td.c3 {font-style: italic} + td.c2 {font-weight: bold} + div.c1 {text-align: center} + /*]]>*/ + </style> +</head> +<body> + <a name="top" id="top"></a> + <h5><a href="download.html">[UP]</a></h5> + <div id="Container"> + <div id="Content"> + <div class="c1"> + <hr /> + <h1><i>Manual Reference Pages - </i>fpm (fpm)</h1> + <hr /> + </div><a name="0" id="0"> + <h3>NAME</h3></a> + <blockquote> + <b>fpm(1)</b> - A Fortran package manager and build system + </blockquote><a name="contents" id="contents"></a> + <h3>CONTENTS</h3> + <blockquote> + <a href="#1">Os Type</a><br /> + <a href="#2">Synopsis</a><br /> + <a href="#3">Description</a><br /> + <a href="#4">Subcommands</a><br /> + <a href="#5">Subcommand Options</a><br /> + <a href="#6">Examples</a><br /> + <a href="#7">See Also</a><br /> + </blockquote><a name="8" id="8"> + <h3>OS TYPE</h3></a> + <blockquote> + Linux + </blockquote><a name="2" id="2"> + <h3>SYNOPSIS</h3></a> + <blockquote> + <pre> +<b>fpm</b> <i>SUBCOMMAND</i> [SUBCOMMAND_OPTIONS] +<br /> +<b>fpm</b> <b>--help</b>|<b>--version</b> +</pre> + </blockquote><a name="3" id="3"> + <h3>DESCRIPTION</h3></a> + <blockquote> + <b>fpm</b> is a package manager that helps you create Fortran projects that are optionally dependent on multiple files and other <b>fpm</b>(1) + packages. + <p>Most significantly <b>fpm</b>(1) lets you pull upon other <b>fpm</b>(1) packages in distributed <b>git</b>(1) repositories as if the packages + were a basic part of your default programming environment, as well as letting you share your projects with others in a similar manner.</p> + <p>See the <b>fpm</b>(1) repository for a listing of such available projects.</p> + <p>All output goes into the directory "build/".</p> + </blockquote><a name="4" id="4"> + <h3>SUBCOMMANDS</h3></a> + <blockquote> + Valid <b>fpm</b> subcommands are: + <pre> + build [--release] [--list] + Compile the packages into the "build/" directory. + new NAME [--with-executable] [--with-test] + Create a new Fortran package directory + with sample files + run [NAME(s)] [--release] [--list] [-- ARGS] + Run the local package binaries. defaults to all + binaries for that release. + test [NAME(s)] [--release] [--list] [-- ARGS] + Run the tests + help [NAME(s)] Alternate method for displaying subcommand help +<br /> +</pre> + </blockquote><a name="5" id="5"> + <h3>SUBCOMMAND OPTIONS</h3></a> + <blockquote> + <table cellpadding="3"> + <tr valign="top"> + <td class="c2" colspan="2">--release</td> + </tr> + <tr valign="top"> + <td width="6%"> </td> + <td>Builds or runs in release mode (versus debug mode). <b>fpm</b>(1) Defaults to using common compiler debug flags and building in + "build/gfortran_debug/". When this flag is present build output goes into "build/gfortran_release/" and common compiler optimization flags are + used.</td> + </tr> + <tr valign="top"> + <td class="c2" width="6%" nowrap="nowrap">--list</td> + <td valign="bottom">list candidates instead of building or running them</td> + </tr> + <tr valign="top"> + <td class="c2" colspan="2">-- ARGS</td> + </tr> + <tr valign="top"> + <td width="6%"> </td> + <td>Arguments to pass to executables/tests</td> + </tr> + <tr valign="top"> + <td class="c2" width="6%" nowrap="nowrap">--help</td> + <td valign="bottom">Show this help text and exit. Valid for all subcommands.</td> + </tr> + <tr valign="top"> + <td class="c2" colspan="2">--version</td> + </tr> + <tr valign="top"> + <td width="6%"> </td> + <td>Show version information and exit. Valid for all subcommands.</td> + </tr> + <tr> + <td></td> + </tr> + </table> + </blockquote><a name="6" id="6"> + <h3>EXAMPLES</h3></a> + <blockquote> + sample commands: + <pre> + fpm build + fpm test + fpm run + fpm new --help + fpm new mypackage --with-executable --with-test + fpm run myprogram --release -- -x 10 -y 20 --title "my title" +</pre> + </blockquote><a name="7" id="7"> + <h3>SEE ALSO</h3></a> + <blockquote> + The <b>fpm</b>(1) home page is https://github.com/fortran-lang/<b>fpm</b> + </blockquote> + <hr /> + <table width="100%"> + <tr> + <td width="33%"></td> + <td width="33%" align="center">fpm (fpm)</td> + <td class="c3" align="right" width="33%">October 01, 2020</td> + </tr> + </table><span class="c4">Generated by <a href="http://www.squarebox.co.uk/download/manServer.shtml">manServer 1.08</a> from + 7ff76770-4194-4184-8269-eb1d56de71cb using man macros.</span><br /> + <br /> + <div class="c1"><img src="images/IMAGE.gif" /></div> + </div> + </div> +</body> +</html> diff --git a/fpm/doc/html/help.1fpm.html b/fpm/doc/html/help.1fpm.html new file mode 100644 index 0000000..8c9f147 --- /dev/null +++ b/fpm/doc/html/help.1fpm.html @@ -0,0 +1,128 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0" /> + <title></title> + <style> + <![CDATA[ + + px {font-family: "Lucida Console", Monaco, monospace} + p { font-size:100%; line-height:1.1em; } + body {xfont-style: sans-serif} + body { + color:#333; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:1em; line-height:1.3em; } + a:visited { color:#666; } + h1,h2,h3,h4,h5,h6 { color:#333; font-family:georgia, verdana, sans-serif; } + h1 { font-size:150%; page-break-before:auto;background-color: #aaaaff} + h2 { font-size:143%;color:teal; } + h3 { font-size:134%;color:blue; } + h4 { font-size:120%;color:gray; } + img { max-width: 55em} + p{ padding: 0;margin:0; } + p{ padding-right:1.4em; } + p{ padding-bottom:1em; } + p{ padding-top:1em; } + p{ whitespace: pre-wrap; } + h5,h6 { font-size:100% } + a.nav,a:link.nav, a:visited.nav { background-color:#FFF; color:#000; } + XXtable { border:double #000; border-collapse:collapse; } + XXtable { border-collapse:collapse; } + XXtd { border:thin solid #888; } + XXtd { border:none; } + li { margin-bottom:0.5em; } + blockquote { display:block; font-size:100%; line-height:1.1em; margin:0 0 1.5em; padding:0 2.5em; } + pre { background-color:#DDD; font-size:100%; overflow:auto; padding:1em; } + a,li span { color:#000; } + a:hover, a.nav:hover, a:hover math { background-color:#000; color:#FFF; } + #Container { margin:0 10px; text-align:center; background-color: #BBB} + #Content { border-top:none; margin:auto; padding:0.3em; text-align:left; width:100%; max-width:55em; background:#FFF} + span.webName { font-size:.5em; } + textarea#content { font-size: 1em; line-height: 1.125; } + h1#pageName { line-height:1em; margin:0.2em 0 0.2em 0; padding:0; } + .property { color:#666; font-size:100%; } + a.existingWikiWord[title]{ //border: 1px dashed #BBB; } + .byline { color:#666; font-size:1.0em; font-style:italic; margin-bottom:1em; padding-top:1px; } + ]]> + </style> + <style type="text/css"> + /*<![CDATA[*/ + body { + background-color: #F0F0F0; + color: #000000; + } + :link { color: #0000FF } + :visited { color: #C000C0 } + :active { color: #FF0000 } + span.c3 {font-size: 80%} + td.c2 {font-style: italic} + div.c1 {text-align: center} + /*]]>*/ + </style> +</head> +<body> + <a name="top" id="top"></a> + <h5><a href="download.html">[UP]</a></h5> + <div id="Container"> + <div id="Content"> + <div class="c1"> + <hr /> + <h1><i>Manual Reference Pages - </i>help (fpm)</h1> + <hr /> + </div><a name="0" id="0"> + <h3>NAME</h3></a> + <blockquote> + <b>help(1)</b> - the <b>fpm</b>(1) subcommand to display help + </blockquote><a name="contents" id="contents"></a> + <h3>CONTENTS</h3> + <blockquote> + <a href="#1">Synopsis</a><br /> + <a href="#2">Description</a><br /> + <a href="#3">Options</a><br /> + <a href="#4">Examples</a><br /> + <a href="#5">See Also</a><br /> + </blockquote><a name="6" id="6"> + <h3>SYNOPSIS</h3></a> + <blockquote> + <pre> +<b>fpm</b> <i>help</i> [fpm][new][build][run][test][help][version][all] +</pre> + </blockquote><a name="2" id="2"> + <h3>DESCRIPTION</h3></a> + <blockquote> + The "<b>fpm</b> <i>help</i>" command is an alternative to the --<i>help</i> parameter on the <b>fpm</b>(1) command and its subcommands. + </blockquote><a name="3" id="3"> + <h3>OPTIONS</h3></a> + <blockquote> + <table cellpadding="3"> + <tr valign="top"> + <td width="6%" nowrap="nowrap"><b>NAME</b>(s)</td> + <td valign="bottom">A list of topic names to display.</td> + </tr> + <tr> + <td></td> + </tr> + </table> + </blockquote><a name="4" id="4"> + <h3>EXAMPLES</h3></a> + <blockquote> + <p><b>fpm</b> <i>help</i> <b>fpm</b> <i>help</i> version <b>fpm</b> all</p> + </blockquote><a name="5" id="5"> + <h3>SEE ALSO</h3></a> + <blockquote> + The <b>fpm</b>(1) home page is https://github.com/fortran-lang/<b>fpm</b> + </blockquote> + <hr /> + <table width="100%"> + <tr> + <td width="33%"></td> + <td width="33%" align="center">help (fpm)</td> + <td class="c2" align="right" width="33%">October 01, 2020</td> + </tr> + </table><span class="c3">Generated by <a href="http://www.squarebox.co.uk/download/manServer.shtml">manServer 1.08</a> from + cf919141-8b5e-4bb6-8957-a4e239126fa6 using man macros.</span><br /> + <br /> + <div class="c1"><img src="images/IMAGE.gif" /></div> + </div> + </div> +</body> +</html> diff --git a/fpm/doc/html/new.1fpm.html b/fpm/doc/html/new.1fpm.html new file mode 100644 index 0000000..b8cb2ff --- /dev/null +++ b/fpm/doc/html/new.1fpm.html @@ -0,0 +1,169 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0" /> + <title></title> + <style> + <![CDATA[ + + px {font-family: "Lucida Console", Monaco, monospace} + p { font-size:100%; line-height:1.1em; } + body {xfont-style: sans-serif} + body { + color:#333; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:1em; line-height:1.3em; } + a:visited { color:#666; } + h1,h2,h3,h4,h5,h6 { color:#333; font-family:georgia, verdana, sans-serif; } + h1 { font-size:150%; page-break-before:auto;background-color: #aaaaff} + h2 { font-size:143%;color:teal; } + h3 { font-size:134%;color:blue; } + h4 { font-size:120%;color:gray; } + img { max-width: 55em} + p{ padding: 0;margin:0; } + p{ padding-right:1.4em; } + p{ padding-bottom:1em; } + p{ padding-top:1em; } + p{ whitespace: pre-wrap; } + h5,h6 { font-size:100% } + a.nav,a:link.nav, a:visited.nav { background-color:#FFF; color:#000; } + XXtable { border:double #000; border-collapse:collapse; } + XXtable { border-collapse:collapse; } + XXtd { border:thin solid #888; } + XXtd { border:none; } + li { margin-bottom:0.5em; } + blockquote { display:block; font-size:100%; line-height:1.1em; margin:0 0 1.5em; padding:0 2.5em; } + pre { background-color:#DDD; font-size:100%; overflow:auto; padding:1em; } + a,li span { color:#000; } + a:hover, a.nav:hover, a:hover math { background-color:#000; color:#FFF; } + #Container { margin:0 10px; text-align:center; background-color: #BBB} + #Content { border-top:none; margin:auto; padding:0.3em; text-align:left; width:100%; max-width:55em; background:#FFF} + span.webName { font-size:.5em; } + textarea#content { font-size: 1em; line-height: 1.125; } + h1#pageName { line-height:1em; margin:0.2em 0 0.2em 0; padding:0; } + .property { color:#666; font-size:100%; } + a.existingWikiWord[title]{ //border: 1px dashed #BBB; } + .byline { color:#666; font-size:1.0em; font-style:italic; margin-bottom:1em; padding-top:1px; } + ]]> + </style> + <style type="text/css"> + /*<![CDATA[*/ + body { + background-color: #F0F0F0; + color: #000000; + } + :link { color: #0000FF } + :visited { color: #C000C0 } + :active { color: #FF0000 } + span.c4 {font-size: 80%} + td.c3 {font-weight: bold} + td.c2 {font-style: italic} + div.c1 {text-align: center} + /*]]>*/ + </style> +</head> +<body> + <a name="top" id="top"></a> + <h5><a href="download.html">[UP]</a></h5> + <div id="Container"> + <div id="Content"> + <div class="c1"> + <hr /> + <h1><i>Manual Reference Pages - </i>new (fpm)</h1> + <hr /> + </div><a name="0" id="0"> + <h3>NAME</h3></a> + <blockquote> + <b>new(1)</b> - the <b>fpm</b>(1) subcommand to initialize a new project + </blockquote><a name="contents" id="contents"></a> + <h3>CONTENTS</h3> + <blockquote> + <a href="#1">Synopsis</a><br /> + <a href="#2">Description</a><br /> + <a href="#3">Options</a><br /> + <a href="#4">Examples</a><br /> + <a href="#5">See Also</a><br /> + </blockquote><a name="6" id="6"> + <h3>SYNOPSIS</h3></a> + <blockquote> + <pre> +<b>fpm</b> <i>new</i> <i>NAME</i> [-<b>-with-executable</b>] [-<b>-with-test</b>] +<br /> +<b>fpm</b> <i>new</i> <b>--help</b>|<b>--version</b> +</pre> + </blockquote><a name="2" id="2"> + <h3>DESCRIPTION</h3></a> + <blockquote> + Create a <i>new</i> programming project in a <i>new</i> directory + <p>The "<i>new</i>" subcommand creates a directory and runs the command "git init" in that directory and makes an example "fpm.toml" file, a src/ + directory, and optionally a test/ and app/ directory with trivial example Fortran source files.</p> + <p>Remember to update the information in the sample "fpm.toml" file with such information as your name and e-mail address.</p> + </blockquote><a name="3" id="3"> + <h3>OPTIONS</h3></a> + <blockquote> + <table cellpadding="3"> + <tr valign="top"> + <td class="c2" width="6%" nowrap="nowrap">NAME</td> + <td valign="bottom">the name of the project directory to create. The name must be a valid Fortran name composed of 1 to 63 ASCII alphanumeric + characters and underscores, starting with a letter.</td> + </tr> + <tr valign="top"> + <td class="c3" colspan="2">--with-executable</td> + </tr> + <tr valign="top"> + <td width="6%"> </td> + <td>additionally create optional directory app/ and placeholder program for "<b>fpm</b> run".</td> + </tr> + <tr valign="top"> + <td class="c3" colspan="2">--with-test</td> + </tr> + <tr valign="top"> + <td width="6%"> </td> + <td>additionally create optional directory test/ and placeholder program for "<b>fpm</b> test".</td> + </tr> + <tr valign="top"> + <td class="c3" width="6%" nowrap="nowrap">--help</td> + <td valign="bottom">print this help and exit</td> + </tr> + <tr valign="top"> + <td class="c3" colspan="2">--version</td> + </tr> + <tr valign="top"> + <td width="6%"> </td> + <td>print program version information and exit</td> + </tr> + <tr> + <td></td> + </tr> + </table> + </blockquote><a name="4" id="4"> + <h3>EXAMPLES</h3></a> + <blockquote> + Sample use + <pre> + fpm new myproject # create new project directory and seed it + cd myproject # Enter the new directory + # and run commands such as + fpm build + fpm run # if you selected --with-executable + fpm test # if you selected --with-test +</pre> + </blockquote><a name="5" id="5"> + <h3>SEE ALSO</h3></a> + <blockquote> + The <b>fpm</b>(1) home page is https://github.com/fortran-lang/<b>fpm</b> + <p>Registered packages are at https://fortran-lang.org/packages</p> + </blockquote> + <hr /> + <table width="100%"> + <tr> + <td width="33%"></td> + <td width="33%" align="center">new (fpm)</td> + <td class="c2" align="right" width="33%">October 01, 2020</td> + </tr> + </table><span class="c4">Generated by <a href="http://www.squarebox.co.uk/download/manServer.shtml">manServer 1.08</a> from + ca3de4ad-3cee-4dce-ad54-9d8a8bcb529e using man macros.</span><br /> + <br /> + <div class="c1"><img src="images/IMAGE.gif" /></div> + </div> + </div> +</body> +</html> diff --git a/fpm/doc/html/run.1fpm.html b/fpm/doc/html/run.1fpm.html new file mode 100644 index 0000000..a805050 --- /dev/null +++ b/fpm/doc/html/run.1fpm.html @@ -0,0 +1,160 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0" /> + <title></title> + <style> + <![CDATA[ + + px {font-family: "Lucida Console", Monaco, monospace} + p { font-size:100%; line-height:1.1em; } + body {xfont-style: sans-serif} + body { + color:#333; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:1em; line-height:1.3em; } + a:visited { color:#666; } + h1,h2,h3,h4,h5,h6 { color:#333; font-family:georgia, verdana, sans-serif; } + h1 { font-size:150%; page-break-before:auto;background-color: #aaaaff} + h2 { font-size:143%;color:teal; } + h3 { font-size:134%;color:blue; } + h4 { font-size:120%;color:gray; } + img { max-width: 55em} + p{ padding: 0;margin:0; } + p{ padding-right:1.4em; } + p{ padding-bottom:1em; } + p{ padding-top:1em; } + p{ whitespace: pre-wrap; } + h5,h6 { font-size:100% } + a.nav,a:link.nav, a:visited.nav { background-color:#FFF; color:#000; } + XXtable { border:double #000; border-collapse:collapse; } + XXtable { border-collapse:collapse; } + XXtd { border:thin solid #888; } + XXtd { border:none; } + li { margin-bottom:0.5em; } + blockquote { display:block; font-size:100%; line-height:1.1em; margin:0 0 1.5em; padding:0 2.5em; } + pre { background-color:#DDD; font-size:100%; overflow:auto; padding:1em; } + a,li span { color:#000; } + a:hover, a.nav:hover, a:hover math { background-color:#000; color:#FFF; } + #Container { margin:0 10px; text-align:center; background-color: #BBB} + #Content { border-top:none; margin:auto; padding:0.3em; text-align:left; width:100%; max-width:55em; background:#FFF} + span.webName { font-size:.5em; } + textarea#content { font-size: 1em; line-height: 1.125; } + h1#pageName { line-height:1em; margin:0.2em 0 0.2em 0; padding:0; } + .property { color:#666; font-size:100%; } + a.existingWikiWord[title]{ //border: 1px dashed #BBB; } + .byline { color:#666; font-size:1.0em; font-style:italic; margin-bottom:1em; padding-top:1px; } + ]]> + </style> + <style type="text/css"> + /*<![CDATA[*/ + body { + background-color: #F0F0F0; + color: #000000; + } + :link { color: #0000FF } + :visited { color: #C000C0 } + :active { color: #FF0000 } + span.c4 {font-size: 80%} + td.c3 {font-style: italic} + td.c2 {font-weight: bold} + div.c1 {text-align: center} + /*]]>*/ + </style> +</head> +<body> + <a name="top" id="top"></a> + <h5><a href="download.html">[UP]</a></h5> + <div id="Container"> + <div id="Content"> + <div class="c1"> + <hr /> + <h1><i>Manual Reference Pages - </i>run (fpm)</h1> + <hr /> + </div><a name="0" id="0"> + <h3>NAME</h3></a> + <blockquote> + <b>run(1)</b> - the <b>fpm</b>(1) subcommand to run project applications + </blockquote><a name="contents" id="contents"></a> + <h3>CONTENTS</h3> + <blockquote> + <a href="#1">Synopsis</a><br /> + <a href="#2">Description</a><br /> + <a href="#3">Options</a><br /> + <a href="#4">Examples</a><br /> + <a href="#5">See Also</a><br /> + </blockquote><a name="6" id="6"> + <h3>SYNOPSIS</h3></a> + <blockquote> + <pre> +fpm run <b>[NAME</b>(<i>s</i>)] [-<b>-release</b>] [-- ARGS] +<br /> +fpm run <b>--help</b>|<b>--version</b> +</pre> + </blockquote><a name="2" id="2"> + <h3>DESCRIPTION</h3></a> + <blockquote> + Run applications you have built in your <b>fpm</b>(1) project. + </blockquote><a name="3" id="3"> + <h3>OPTIONS</h3></a> + <blockquote> + <table cellpadding="3"> + <tr valign="top"> + <td width="6%" nowrap="nowrap"><b>NAME</b>(<i>s</i>)</td> + <td valign="bottom">optional list of specific names to execute. The default is to run all the applications in app/ or the programs listed in the + "fpm.toml" file.</td> + </tr> + <tr valign="top"> + <td class="c2" colspan="2">--release</td> + </tr> + <tr valign="top"> + <td width="6%"> </td> + <td>selects the optimized build instead of the debug build.</td> + </tr> + <tr valign="top"> + <td class="c2" width="6%" nowrap="nowrap">--list</td> + <td valign="bottom">list candidates instead of building or running them</td> + </tr> + <tr valign="top"> + <td class="c2" colspan="2">-- ARGS</td> + </tr> + <tr valign="top"> + <td width="6%"> </td> + <td>optional arguments to pass to the <b>program</b>(<i>s</i>). The same arguments are passed to all names specified.</td> + </tr> + <tr> + <td></td> + </tr> + </table> + </blockquote><a name="4" id="4"> + <h3>EXAMPLES</h3></a> + <blockquote> + run <b>fpm</b>(1) project applications + <pre> + # run default programs in /app or as specified in "fpm.toml" + fpm run +<br /> + # run a specific program and pass arguments to the command + fpm run mytest -- -x 10 -y 20 -title "my title line" +<br /> + # production version of two applications + fpm run tst1 test2 -release +</pre> + </blockquote><a name="5" id="5"> + <h3>SEE ALSO</h3></a> + <blockquote> + The <b>fpm</b>(1) home page is https://github.com/fortran-lang/fpm + </blockquote> + <hr /> + <table width="100%"> + <tr> + <td width="33%"></td> + <td width="33%" align="center">run (fpm)</td> + <td class="c3" align="right" width="33%">October 01, 2020</td> + </tr> + </table><span class="c4">Generated by <a href="http://www.squarebox.co.uk/download/manServer.shtml">manServer 1.08</a> from + 5501d93f-9755-49af-b14c-1a1683d96157 using man macros.</span><br /> + <br /> + <div class="c1"><img src="images/IMAGE.gif" /></div> + </div> + </div> +</body> +</html> diff --git a/fpm/doc/html/test.1fpm.html b/fpm/doc/html/test.1fpm.html new file mode 100644 index 0000000..39582b4 --- /dev/null +++ b/fpm/doc/html/test.1fpm.html @@ -0,0 +1,159 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> + <meta name="generator" content="HTML Tidy for HTML5 for Linux version 5.6.0" /> + <title></title> + <style> + <![CDATA[ + + px {font-family: "Lucida Console", Monaco, monospace} + p { font-size:100%; line-height:1.1em; } + body {xfont-style: sans-serif} + body { + color:#333; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:1em; line-height:1.3em; } + a:visited { color:#666; } + h1,h2,h3,h4,h5,h6 { color:#333; font-family:georgia, verdana, sans-serif; } + h1 { font-size:150%; page-break-before:auto;background-color: #aaaaff} + h2 { font-size:143%;color:teal; } + h3 { font-size:134%;color:blue; } + h4 { font-size:120%;color:gray; } + img { max-width: 55em} + p{ padding: 0;margin:0; } + p{ padding-right:1.4em; } + p{ padding-bottom:1em; } + p{ padding-top:1em; } + p{ whitespace: pre-wrap; } + h5,h6 { font-size:100% } + a.nav,a:link.nav, a:visited.nav { background-color:#FFF; color:#000; } + XXtable { border:double #000; border-collapse:collapse; } + XXtable { border-collapse:collapse; } + XXtd { border:thin solid #888; } + XXtd { border:none; } + li { margin-bottom:0.5em; } + blockquote { display:block; font-size:100%; line-height:1.1em; margin:0 0 1.5em; padding:0 2.5em; } + pre { background-color:#DDD; font-size:100%; overflow:auto; padding:1em; } + a,li span { color:#000; } + a:hover, a.nav:hover, a:hover math { background-color:#000; color:#FFF; } + #Container { margin:0 10px; text-align:center; background-color: #BBB} + #Content { border-top:none; margin:auto; padding:0.3em; text-align:left; width:100%; max-width:55em; background:#FFF} + span.webName { font-size:.5em; } + textarea#content { font-size: 1em; line-height: 1.125; } + h1#pageName { line-height:1em; margin:0.2em 0 0.2em 0; padding:0; } + .property { color:#666; font-size:100%; } + a.existingWikiWord[title]{ //border: 1px dashed #BBB; } + .byline { color:#666; font-size:1.0em; font-style:italic; margin-bottom:1em; padding-top:1px; } + ]]> + </style> + <style type="text/css"> + /*<![CDATA[*/ + body { + background-color: #F0F0F0; + color: #000000; + } + :link { color: #0000FF } + :visited { color: #C000C0 } + :active { color: #FF0000 } + span.c4 {font-size: 80%} + td.c3 {font-style: italic} + td.c2 {font-weight: bold} + div.c1 {text-align: center} + /*]]>*/ + </style> +</head> +<body> + <a name="top" id="top"></a> + <h5><a href="download.html">[UP]</a></h5> + <div id="Container"> + <div id="Content"> + <div class="c1"> + <hr /> + <h1><i>Manual Reference Pages - </i>test (fpm)</h1> + <hr /> + </div><a name="0" id="0"> + <h3>NAME</h3></a> + <blockquote> + <b>test(1)</b> - the <b>fpm</b>(1) subcommand to run project tests + </blockquote><a name="contents" id="contents"></a> + <h3>CONTENTS</h3> + <blockquote> + <a href="#1">Synopsis</a><br /> + <a href="#2">Description</a><br /> + <a href="#3">Options</a><br /> + <a href="#4">Examples</a><br /> + <a href="#5">See Also</a><br /> + </blockquote><a name="6" id="6"> + <h3>SYNOPSIS</h3></a> + <blockquote> + <pre> +fpm test <b>[NAME</b>(<i>s</i>)] [-<b>-release</b>] [-<b>-list</b>] [-- ARGS] +<br /> +fpm test <b>--help</b>|<b>--version</b> +</pre> + </blockquote><a name="2" id="2"> + <h3>DESCRIPTION</h3></a> + <blockquote> + Run applications you have built to test your project. + </blockquote><a name="3" id="3"> + <h3>OPTIONS</h3></a> + <blockquote> + <table cellpadding="3"> + <tr valign="top"> + <td width="6%" nowrap="nowrap"><b>NAME</b>(<i>s</i>)</td> + <td valign="bottom">optional list of specific test names to execute. The default is to run all the tests in test/ or the tests listed in the + "fpm.toml" file.</td> + </tr> + <tr valign="top"> + <td class="c2" colspan="2">--release</td> + </tr> + <tr valign="top"> + <td width="6%"> </td> + <td>selects the optimized build instead of the debug build.</td> + </tr> + <tr valign="top"> + <td class="c2" width="6%" nowrap="nowrap">--list</td> + <td valign="bottom">list candidates instead of building or running them</td> + </tr> + <tr valign="top"> + <td class="c2" colspan="2">-- ARGS</td> + </tr> + <tr valign="top"> + <td width="6%"> </td> + <td>optional arguments to pass to the test <b>program</b>(<i>s</i>). The same arguments are passed to all test names specified.</td> + </tr> + <tr> + <td></td> + </tr> + </table> + </blockquote><a name="4" id="4"> + <h3>EXAMPLES</h3></a> + <blockquote> + run tests + <pre> + # run default tests in /test or as specified in "fpm.toml" + fpm test +<br /> + # run a specific test and pass arguments to the command + fpm test mytest -- -x 10 -y 20 -title "my title line" +<br /> + fpm test tst1 test2 -release # production version of two tests +</pre> + </blockquote><a name="5" id="5"> + <h3>SEE ALSO</h3></a> + <blockquote> + The <b>fpm</b>(1) home page is https://github.com/fortran-lang/fpm + </blockquote> + <hr /> + <table width="100%"> + <tr> + <td width="33%"></td> + <td width="33%" align="center">test (fpm)</td> + <td class="c3" align="right" width="33%">October 01, 2020</td> + </tr> + </table><span class="c4">Generated by <a href="http://www.squarebox.co.uk/download/manServer.shtml">manServer 1.08</a> from + ae1fc2a3-c473-469e-b078-ffae170abd06 using man macros.</span><br /> + <br /> + <div class="c1"><img src="images/IMAGE.gif" /></div> + </div> + </div> +</body> +</html> diff --git a/fpm/doc/man/cat1/build.1fpm.gz b/fpm/doc/man/cat1/build.1fpm.gz Binary files differnew file mode 100644 index 0000000..e187c8f --- /dev/null +++ b/fpm/doc/man/cat1/build.1fpm.gz diff --git a/fpm/doc/man/cat1/fpm.1fpm.gz b/fpm/doc/man/cat1/fpm.1fpm.gz Binary files differnew file mode 100644 index 0000000..2e4b33a --- /dev/null +++ b/fpm/doc/man/cat1/fpm.1fpm.gz diff --git a/fpm/doc/man/cat1/help.1fpm.gz b/fpm/doc/man/cat1/help.1fpm.gz Binary files differnew file mode 100644 index 0000000..448ad14 --- /dev/null +++ b/fpm/doc/man/cat1/help.1fpm.gz diff --git a/fpm/doc/man/cat1/new.1fpm.gz b/fpm/doc/man/cat1/new.1fpm.gz Binary files differnew file mode 100644 index 0000000..fe9c736 --- /dev/null +++ b/fpm/doc/man/cat1/new.1fpm.gz diff --git a/fpm/doc/man/cat1/run.1fpm.gz b/fpm/doc/man/cat1/run.1fpm.gz Binary files differnew file mode 100644 index 0000000..fcdd2b4 --- /dev/null +++ b/fpm/doc/man/cat1/run.1fpm.gz diff --git a/fpm/doc/man/cat1/test.1fpm.gz b/fpm/doc/man/cat1/test.1fpm.gz Binary files differnew file mode 100644 index 0000000..896da49 --- /dev/null +++ b/fpm/doc/man/cat1/test.1fpm.gz diff --git a/fpm/doc/man/index.db b/fpm/doc/man/index.db Binary files differnew file mode 100644 index 0000000..f4af7bf --- /dev/null +++ b/fpm/doc/man/index.db diff --git a/fpm/doc/man/man1/build.1fpm.gz b/fpm/doc/man/man1/build.1fpm.gz Binary files differnew file mode 100644 index 0000000..cadfa4d --- /dev/null +++ b/fpm/doc/man/man1/build.1fpm.gz diff --git a/fpm/doc/man/man1/fpm.1fpm.gz b/fpm/doc/man/man1/fpm.1fpm.gz Binary files differnew file mode 100644 index 0000000..bfb64e4 --- /dev/null +++ b/fpm/doc/man/man1/fpm.1fpm.gz diff --git a/fpm/doc/man/man1/help.1fpm.gz b/fpm/doc/man/man1/help.1fpm.gz Binary files differnew file mode 100644 index 0000000..2885869 --- /dev/null +++ b/fpm/doc/man/man1/help.1fpm.gz diff --git a/fpm/doc/man/man1/new.1fpm.gz b/fpm/doc/man/man1/new.1fpm.gz Binary files differnew file mode 100644 index 0000000..8096254 --- /dev/null +++ b/fpm/doc/man/man1/new.1fpm.gz diff --git a/fpm/doc/man/man1/run.1fpm.gz b/fpm/doc/man/man1/run.1fpm.gz Binary files differnew file mode 100644 index 0000000..1db841c --- /dev/null +++ b/fpm/doc/man/man1/run.1fpm.gz diff --git a/fpm/doc/man/man1/test.1fpm.gz b/fpm/doc/man/man1/test.1fpm.gz Binary files differnew file mode 100644 index 0000000..c237ba0 --- /dev/null +++ b/fpm/doc/man/man1/test.1fpm.gz diff --git a/fpm/doc/src/build.1.man b/fpm/doc/src/build.1.man new file mode 100644 index 0000000..1e243d3 --- /dev/null +++ b/fpm/doc/src/build.1.man @@ -0,0 +1,34 @@ +NAME + build(1) - the fpm(1) subcommand to build a project +SYNOPSIS + fpm build [--release]|[-list] + fpm build --help|--version + +DESCRIPTION + The "fpm build" command + o Fetches any dependencies + o Scans your sources + o Builds them in the proper order + + The Fortran source files are assumed to be in app/, test/, and src/ + by default. The changed or new files found are rebuilt. + The results are placed in the build/ directory. + + Non-default pathnames and remote dependencies are used if + specified in the "fpm.toml" file. + +OPTIONS + --release build in build/*_release instead of build/*_debug with + high optimization instead of full debug options. + --list list candidates instead of building or running them + --help print this help and exit + --version print program version information and exit + +EXAMPLES + Sample commands: + + fpm build # build with debug options + fpm build -release # build with high optimization +SEE ALSO + The fpm(1) home page is https://github.com/fortran-lang/fpm + diff --git a/fpm/doc/src/fpm.1.man b/fpm/doc/src/fpm.1.man new file mode 100644 index 0000000..201cfa7 --- /dev/null +++ b/fpm/doc/src/fpm.1.man @@ -0,0 +1,59 @@ +NAME + fpm(1) - A Fortran package manager and build system +OS TYPE + Linux +SYNOPSIS + fpm SUBCOMMAND [SUBCOMMAND_OPTIONS] + + fpm --help|--version + +DESCRIPTION + fpm is a package manager that helps you create Fortran projects that are + optionally dependent on multiple files and other fpm(1) packages. + + Most significantly fpm(1) lets you pull upon other fpm(1) packages in + distributed git(1) repositories as if the packages were a basic part + of your default programming environment, as well as letting you share + your projects with others in a similar manner. + + See the fpm(1) repository for a listing of such available projects. + + All output goes into the directory "build/". + +SUBCOMMANDS + Valid fpm subcommands are: + + build [--release] [--list] + Compile the packages into the "build/" directory. + new NAME [--with-executable] [--with-test] + Create a new Fortran package directory + with sample files + run [NAME(s)] [--release] [--list] [-- ARGS] + Run the local package binaries. defaults to all + binaries for that release. + test [NAME(s)] [--release] [--list] [-- ARGS] + Run the tests + help [NAME(s)] Alternate method for displaying subcommand help + +SUBCOMMAND OPTIONS + --release Builds or runs in release mode (versus debug mode). fpm(1) + Defaults to using common compiler debug flags and building + in "build/gfortran_debug/". When this flag is present build + output goes into "build/gfortran_release/" and common + compiler optimization flags are used. + --list list candidates instead of building or running them + -- ARGS Arguments to pass to executables/tests + --help Show this help text and exit. Valid for all subcommands. + --version Show version information and exit. Valid for all subcommands. +EXAMPLES + sample commands: + + fpm build + fpm test + fpm run + fpm new --help + fpm new mypackage --with-executable --with-test + fpm run myprogram --release -- -x 10 -y 20 --title "my title" +SEE ALSO + The fpm(1) home page is https://github.com/fortran-lang/fpm + diff --git a/fpm/doc/src/help.1.man b/fpm/doc/src/help.1.man new file mode 100644 index 0000000..0ba803b --- /dev/null +++ b/fpm/doc/src/help.1.man @@ -0,0 +1,20 @@ +NAME + help(1) - the fpm(1) subcommand to display help +SYNOPSIS + fpm help [fpm][new][build][run][test][help][version][all] + +DESCRIPTION + The "fpm help" command is an alternative to the --help parameter + on the fpm(1) command and its subcommands. + +OPTIONS + NAME(s) A list of topic names to display. + +EXAMPLES + + fpm help + fpm help version + fpm all +SEE ALSO + The fpm(1) home page is https://github.com/fortran-lang/fpm + diff --git a/fpm/doc/src/new.1.man b/fpm/doc/src/new.1.man new file mode 100644 index 0000000..6fe255b --- /dev/null +++ b/fpm/doc/src/new.1.man @@ -0,0 +1,44 @@ +NAME + new(1) - the fpm(1) subcommand to initialize a new project +SYNOPSIS + fpm new NAME [--with-executable] [--with-test] + + fpm new --help|--version + +DESCRIPTION + Create a new programming project in a new directory + + The "new" subcommand creates a directory and runs the command + "git init" in that directory and makes an example "fpm.toml" + file, a src/ directory, and optionally a test/ and app/ + directory with trivial example Fortran source files. + + Remember to update the information in the sample "fpm.toml" + file with such information as your name and e-mail address. + +OPTIONS + NAME the name of the project directory to create. The name + must be a valid Fortran name composed of 1 to 63 + ASCII alphanumeric characters and underscores, + starting with a letter. + --with-executable additionally create optional directory app/ + and placeholder program for "fpm run". + --with-test additionally create optional directory test/ + and placeholder program for "fpm test". + --help print this help and exit + --version print program version information and exit + +EXAMPLES + Sample use + + fpm new myproject # create new project directory and seed it + cd myproject # Enter the new directory + # and run commands such as + fpm build + fpm run # if you selected --with-executable + fpm test # if you selected --with-test +SEE ALSO + The fpm(1) home page is https://github.com/fortran-lang/fpm + + Registered packages are at https://fortran-lang.org/packages + diff --git a/fpm/doc/src/run.1.man b/fpm/doc/src/run.1.man new file mode 100644 index 0000000..7e5de31 --- /dev/null +++ b/fpm/doc/src/run.1.man @@ -0,0 +1,36 @@ +NAME + run(1) - the fpm(1) subcommand to run project applications + +SYNOPSIS + fpm run [NAME(s)] [--release] [-- ARGS] + + fpm run --help|--version + +DESCRIPTION + Run applications you have built in your fpm(1) project. + +OPTIONS + NAME(s) optional list of specific names to execute. + The default is to run all the applications in app/ + or the programs listed in the "fpm.toml" file. + --release selects the optimized build instead of the debug + build. + --list list candidates instead of building or running them + -- ARGS optional arguments to pass to the program(s). + The same arguments are passed to all names + specified. + +EXAMPLES +run fpm(1) project applications + + # run default programs in /app or as specified in "fpm.toml" + fpm run + + # run a specific program and pass arguments to the command + fpm run mytest -- -x 10 -y 20 -title "my title line" + + # production version of two applications + fpm run tst1 test2 -release +SEE ALSO + The fpm(1) home page is https://github.com/fortran-lang/fpm + diff --git a/fpm/doc/src/test.1.man b/fpm/doc/src/test.1.man new file mode 100644 index 0000000..60ab513 --- /dev/null +++ b/fpm/doc/src/test.1.man @@ -0,0 +1,35 @@ +NAME + test(1) - the fpm(1) subcommand to run project tests + +SYNOPSIS + fpm test [NAME(s)] [--release] [--list] [-- ARGS] + + fpm test --help|--version + +DESCRIPTION + Run applications you have built to test your project. + +OPTIONS + NAME(s) optional list of specific test names to execute. + The default is to run all the tests in test/ + or the tests listed in the "fpm.toml" file. + --release selects the optimized build instead of the debug + build. + --list list candidates instead of building or running them + -- ARGS optional arguments to pass to the test program(s). + The same arguments are passed to all test names + specified. + +EXAMPLES +run tests + + # run default tests in /test or as specified in "fpm.toml" + fpm test + + # run a specific test and pass arguments to the command + fpm test mytest -- -x 10 -y 20 -title "my title line" + + fpm test tst1 test2 -release # production version of two tests +SEE ALSO + The fpm(1) home page is https://github.com/fortran-lang/fpm + diff --git a/fpm/fpm.toml b/fpm/fpm.toml index d0cff7a..9418204 100644 --- a/fpm/fpm.toml +++ b/fpm/fpm.toml @@ -12,7 +12,7 @@ tag = "v0.2" [dependencies.M_CLI2] git = "https://github.com/urbanjost/M_CLI2.git" -rev = "5c7df1267c918ec2b1b8e2c6a0ac000367b562cf" +rev = "649075aceb97f997665a1a4656514fd2e9b4becc" [[test]] name = "cli-test" diff --git a/fpm/src/fpm_command_line.f90 b/fpm/src/fpm_command_line.f90 index 76bdca6..5b9d93a 100644 --- a/fpm/src/fpm_command_line.f90 +++ b/fpm/src/fpm_command_line.f90 @@ -54,21 +54,25 @@ end type character(len=:),allocatable :: name character(len=ibug),allocatable :: names(:) +character(len=:), allocatable :: version_text(:) +character(len=:), allocatable :: help_new(:), help_fpm(:), help_run(:), help_test(:), help_build(:) +character(len=:), allocatable :: help_text(:), help_install(:), help_help(:) + contains subroutine get_command_line_settings(cmd_settings) class(fpm_cmd_settings), allocatable, intent(out) :: cmd_settings character(len=4096) :: cmdarg integer :: i - character(len=:), allocatable :: help_text(:), version_text(:) + call set_help() ! text for --version switch, version_text = [character(len=80) :: & - & 'VERSION: 0.1.0, Pre-alpha', & - & 'PROGRAM: fpm(1)', & - & 'DESCRIPTION: A Fortran package manager and build system', & - & 'HOME PAGE: https://github.com/fortran-lang/fpm', & - & 'LICENSE: MIT', & + & 'Version: 0.1.0, Pre-alpha', & + & 'Program: fpm(1)', & + & 'Description: A Fortran package manager and build system', & + & 'Home Page: https://github.com/fortran-lang/fpm', & + & 'License: MIT', & & ''] ! find the subcommand name by looking for first word on command not starting with dash cmdarg = '' @@ -81,44 +85,7 @@ contains select case(trim(cmdarg)) case('run') - help_text=[character(len=80) :: & - 'NAME ', & - ' run(1) - the fpm(1) subcommand to run project applications ', & - ' ', & - 'SYNOPSIS ', & - ' fpm run [NAME(s)] [--release] [-- ARGS] ', & - ' ', & - ' fpm run --help|--version ', & - ' ', & - 'DESCRIPTION ', & - ' Run applications you have built in your fpm(1) project. ', & - ' ', & - 'OPTIONS ', & - ' NAME(s) optional list of specific names to execute. ', & - ' The default is to run all the applications in app/ ', & - ' or the programs listed in the "fpm.toml" file. ', & - ' --release selects the optimized build instead of the debug ', & - ' build. ', & - ' --list list candidates instead of building or running them', & - ' -- ARGS optional arguments to pass to the program(s). ', & - ' The same arguments are passed to all names ', & - ' specified. ', & - ' ', & - 'EXAMPLES ', & - 'run fpm(1) project applications ', & - ' ', & - ' # run default programs in /app or as specified in "fpm.toml" ', & - ' fpm run ', & - ' ', & - ' # run a specific program and pass arguments to the command ', & - ' fpm run mytest -- -x 10 -y 20 -title "my title line" ', & - ' ', & - ' # production version of two applications ', & - ' fpm run tst1 test2 -release ', & - 'SEE ALSO ', & - ' The fpm(1) home page is https://github.com/fortran-lang/fpm ', & - '' ] - call set_args('--list F --release F --',help_text,version_text) + call set_args('--list F --release F --',help_run,version_text) if( size(unnamed) .gt. 1 )then names=unnamed(2:) @@ -131,93 +98,13 @@ contains & release=lget('release'), args=remaining ) case('build') - help_text=[character(len=80) :: & - 'NAME ', & - ' build(1) - the fpm(1) subcommand to build a project ', & - 'SYNOPSIS ', & - ' fpm build [--release]|[-list] ', & - ' fpm build --help|--version ', & - ' ', & - 'DESCRIPTION ', & - ' The "fpm build" command ', & - ' o Fetches any dependencies ', & - ' o Scans your sources ', & - ' o Builds them in the proper order ', & - ' ', & - ' The Fortran source files are assumed to be in app/, test/, and src/ ', & - ' by default. The changed or new files found are rebuilt. ', & - ' The results are placed in the build/ directory. ', & - ' ', & - ' Non-default pathnames and remote dependencies are used if ', & - ' specified in the "fpm.toml" file. ', & - ' ', & - 'OPTIONS ', & - ' --release build in build/*_release instead of build/*_debug with ', & - ' high optimization instead of full debug options. ', & - ' --list list candidates instead of building or running them ', & - ' --help print this help and exit ', & - ' --version print program version information and exit ', & - ' ', & - 'EXAMPLES ', & - ' Sample commands: ', & - ' ', & - ' fpm build # build with debug options ', & - ' fpm build -release # build with high optimization ', & - 'SEE ALSO ', & - ' The fpm(1) home page is https://github.com/fortran-lang/fpm ', & - '' ] - call set_args( '--release F --list F --',help_text,version_text ) + call set_args( '--release F --list F --',help_build,version_text ) allocate( fpm_build_settings :: cmd_settings ) cmd_settings=fpm_build_settings( release=lget('release'),list=lget('list') ) case('new') - help_text=[character(len=80) :: & - 'NAME ', & - ' new(1) - the fpm(1) subcommand to initialize a new project ', & - 'SYNOPSIS ', & - ' fpm new NAME [--with-executable] [--with-test] ', & - ' ', & - ' fpm new --help|--version ', & - ' ', & - 'DESCRIPTION ', & - ' Create a new programming project in a new directory ', & - ' ', & - ' The "new" subcommand creates a directory and runs the command ', & - ' "git init" in that directory and makes an example "fpm.toml" ', & - ' file, a src/ directory, and optionally a test/ and app/ ', & - ' directory with trivial example Fortran source files. ', & - ' ', & - ' Remember to update the information in the sample "fpm.toml" ', & - ' file with such information as your name and e-mail address. ', & - ' ', & - ' OPTIONS ', & - ' NAME the name of the project directory to create. The name ', & - ' must be a valid Fortran name composed of 1 to 63 ', & - ' ASCII alphanumeric characters and underscores, ', & - ' starting with a letter. ', & - ' --with-executable additionally create optional directory app/ ', & - ' and placeholder program for "fpm run". ', & - ' --with-test additionally create optional directory test/', & - ' and placeholder program for "fpm test". ', & - ' --help print this help and exit ', & - ' --version print program version information and exit ', & - ' ', & - 'EXAMPLES ', & - ' Sample use ', & - ' ', & - ' fpm new myproject # create new project directory and seed it', & - ' cd myproject # Enter the new directory ', & - ' # and run commands such as ', & - ' fpm build ', & - ' fpm run # if you selected --with-executable ', & - ' fpm test # if you selected --with-test ', & - 'SEE ALSO ', & - ' The fpm(1) home page is https://github.com/fortran-lang/fpm ', & - ' ', & - ' Registered packages are at https://fortran-lang.org/packages ', & - '' ] - call set_args(' --with-executable F --with-test F --lib F --app F --test F', help_text, version_text) + call set_args(' --with-executable F --with-test F --lib F --app F --test F', help_new, version_text) select case(size(unnamed)) case(1) write(stderr,'(*(g0))')'ERROR: directory name required' @@ -231,11 +118,11 @@ contains stop 2 end select - if( .not.fortran_name(basename(name)) )then - write(stderr,'(*(g0))')'ERROR: new directory name must be an allowed Fortran name.' + if( .not.is_fortran_name(basename(name)) )then + write(stderr,'(*(g0))')'ERROR: the new directory basename must be an allowed Fortran name.' write(stderr,'(*(g0))')' It must be composed of 1 to 63 ASCII characters and start' write(stderr,'(*(g0))')' with a letter and be composed entirely of alphanumeric' - write(stderr,'(*(g0))')' characters [A-Za-z] and underscores.' + write(stderr,'(*(g0))')' characters [A-Za-z0-9] and underscores.' stop 4 endif @@ -261,54 +148,48 @@ contains & with_lib=lget('lib') ) endif + case('help') + call set_args(' ',help_help,version_text) + if(size(unnamed).lt.2)then + unnamed=['help', 'fpm '] + endif + allocate(character(len=80) :: help_text(0)) + do i=2,size(unnamed) + select case(unnamed(i)) + case('build ' ) + help_text=[character(len=80) :: help_text, help_build] + case('run ' ) + help_text=[character(len=80) :: help_text, help_run] + case('help ' ) + help_text=[character(len=80) :: help_text, help_help] + case('test ' ) + help_text=[character(len=80) :: help_text, help_test] + case('new ' ) + help_text=[character(len=80) :: help_text, help_new] + case('fpm ' ) + help_text=[character(len=80) :: help_text, help_fpm] + case('version' ) + help_text=[character(len=80) :: help_text, version_text] + case('all ' ) + help_text=[character(len=80) :: help_text, help_fpm] + help_text=[character(len=80) :: help_text, help_new] + help_text=[character(len=80) :: help_text, help_build] + help_text=[character(len=80) :: help_text, help_run] + help_text=[character(len=80) :: help_text, help_test] + help_text=[character(len=80) :: help_text, version_text] + case default + help_text=[character(len=80) :: help_text, 'unknown subcommand'//unnamed(i)] + end select + enddo + write(stderr,'(g0)')(trim(help_text(i)), i=1, size(help_text) ) + case('install') - help_text=[character(len=80) :: & - ' fpm(1) subcommand "install" ', & - ' ', & - ' Usage: fpm install NAME ', & - '' ] - call set_args('--release F ', help_text, version_text) + call set_args('--release F ', help_install, version_text) allocate(fpm_install_settings :: cmd_settings) case('test') - help_text=[character(len=80) :: & - 'NAME ', & - ' test(1) - the fpm(1) subcommand to run project tests ', & - ' ', & - 'SYNOPSIS ', & - ' fpm test [NAME(s)] [--release] [--list] [-- ARGS] ', & - ' ', & - ' fpm test --help|--version ', & - ' ', & - 'DESCRIPTION ', & - ' Run applications you have built to test your project. ', & - ' ', & - 'OPTIONS ', & - ' NAME(s) optional list of specific test names to execute. ', & - ' The default is to run all the tests in test/ ', & - ' or the tests listed in the "fpm.toml" file. ', & - ' --release selects the optimized build instead of the debug ', & - ' build. ', & - ' --list list candidates instead of building or running them', & - ' -- ARGS optional arguments to pass to the test program(s). ', & - ' The same arguments are passed to all test names ', & - ' specified. ', & - ' ', & - 'EXAMPLES ', & - 'run tests ', & - ' ', & - ' # run default tests in /test or as specified in "fpm.toml" ', & - ' fpm test ', & - ' ', & - ' # run a specific test and pass arguments to the command ', & - ' fpm test mytest -- -x 10 -y 20 -title "my title line" ', & - ' ', & - ' fpm test tst1 test2 -release # production version of two tests', & - 'SEE ALSO ', & - ' The fpm(1) home page is https://github.com/fortran-lang/fpm ', & - '' ] - call set_args('--list F --release F --',help_text,version_text) + call set_args('--list F --release F --',help_test,version_text) if( size(unnamed) .gt. 1 )then names=unnamed(2:) @@ -321,76 +202,8 @@ contains & release=lget('release'), args=remaining ) case default - help_text=[character(len=80) :: & - 'NAME', & - ' fpm(1) - A Fortran package manager and build system', & - 'OS TYPE' ] - select case (get_os_type()) - case (OS_LINUX); help_text=[character(len=80) :: help_text, " Linux" ] - case (OS_MACOS); help_text=[character(len=80) :: help_text, " macOS" ] - case (OS_WINDOWS); help_text=[character(len=80) :: help_text, " Windows" ] - case (OS_CYGWIN); help_text=[character(len=80) :: help_text, " Cygwin" ] - case (OS_SOLARIS); help_text=[character(len=80) :: help_text, " Solaris" ] - case (OS_FREEBSD); help_text=[character(len=80) :: help_text, " FreeBSD" ] - case (OS_UNKNOWN); help_text=[character(len=80) :: help_text, " Unknown" ] - case default ; help_text=[character(len=80) :: help_text, " UNKNOWN" ] - end select - help_text=[character(len=80) :: help_text, & - 'SYNOPSIS ', & - ' fpm SUBCOMMAND [SUBCOMMAND_OPTIONS] ', & - ' ', & - ' fpm --help|--version ', & - ' ', & - 'DESCRIPTION ', & - ' fpm is a package manager that helps you create Fortran projects that are ', & - ' optionally dependent on multiple files and other fpm(1) packages. ', & - ' ', & - ' Most significantly fpm(1) lets you pull upon other fpm(1) packages in ', & - ' distributed git(1) repositories as if the packages were a basic part ', & - ' of your default programming environment, as well as letting you share ', & - ' your projects with others in a similar manner. ', & - ' ', & - ' See the fpm(1) repository for a listing of such available projects. ', & - ' ', & - ' All output goes into the directory "build/". ', & - ' ', & - 'SUBCOMMANDS ', & - ' Valid fpm subcommands are: ', & - ' ', & - ' build [--release] [--list] ', & - ' Compile the packages into the "build/" directory. ', & - ' new NAME [--with-executable] [--with-test] ', & - ' Create a new Fortran package directory ', & - ' with sample files ', & - ' run [NAME(s)] [--release] [--list] [-- ARGS] ', & - ' Run the local package binaries. defaults to all ', & - ' binaries for that release. ', & - ' test [NAME(s)] [--release] [--list] [-- ARGS] ', & - ' Run the tests ', & - 'SUBCOMMAND OPTIONS ', & - ' --release Builds or runs in release mode (versus debug mode). fpm(1) ', & - ' Defaults to using common compiler debug flags and building ', & - ' in "build/gfortran_debug/". When this flag is present build ', & - ' output goes into "build/gfortran_release/" and common ', & - ' compiler optimization flags are used. ', & - ' --list list candidates instead of building or running them ', & - ' -- ARGS Arguments to pass to executables/tests ', & - ' --help Show this help text and exit. Valid for all subcommands. ', & - ' --version Show version information and exit. Valid for all subcommands.', & - 'EXAMPLES ', & - ' sample commands: ', & - ' ', & - ' fpm build ', & - ' fpm test ', & - ' fpm run ', & - ' fpm new --help ', & - ' fpm new mypackage --with-executable --with-test ', & - ' fpm run myprogram --release -- -x 10 -y 20 --title "my title" ', & - 'SEE ALSO ', & - ' The fpm(1) home page is https://github.com/fortran-lang/fpm ', & - ''] - - call set_args(' ', help_text, version_text) + + call set_args(' ', help_fpm, version_text) ! Note: will not get here if --version or --usage or --help is present on commandline if(len_trim(cmdarg).eq.0)then write(stderr,'(*(a))')'ERROR: missing subcommand' @@ -402,13 +215,11 @@ contains ' Enter "fpm --help" for more information ', & '' ] write(stderr,'(g0)')(trim(help_text(i)), i=1, size(help_text) ) - !!stop 3 ! causes github site tests to fail - stop end select end subroutine get_command_line_settings - function fortran_name(line) result (lout) + function is_fortran_name(line) result (lout) ! determine if a string is a valid Fortran name ignoring trailing spaces (but not leading spaces) character(len=*),parameter :: int='0123456789' character(len=*),parameter :: lower='abcdefghijklmnopqrstuvwxyz' @@ -426,6 +237,258 @@ contains else lout = .false. endif - end function fortran_name + end function is_fortran_name + + subroutine set_help() + help_fpm=[character(len=80) :: & + 'NAME', & + ' fpm(1) - A Fortran package manager and build system', & + 'OS TYPE' ] + select case (get_os_type()) + case (OS_LINUX); help_fpm=[character(len=80) :: help_fpm, " Linux" ] + case (OS_MACOS); help_fpm=[character(len=80) :: help_fpm, " macOS" ] + case (OS_WINDOWS); help_fpm=[character(len=80) :: help_fpm, " Windows" ] + case (OS_CYGWIN); help_fpm=[character(len=80) :: help_fpm, " Cygwin" ] + case (OS_SOLARIS); help_fpm=[character(len=80) :: help_fpm, " Solaris" ] + case (OS_FREEBSD); help_fpm=[character(len=80) :: help_fpm, " FreeBSD" ] + case (OS_UNKNOWN); help_fpm=[character(len=80) :: help_fpm, " Unknown" ] + case default ; help_fpm=[character(len=80) :: help_fpm, " UNKNOWN" ] + end select + help_fpm=[character(len=80) :: help_fpm, & + 'SYNOPSIS ', & + ' fpm SUBCOMMAND [SUBCOMMAND_OPTIONS] ', & + ' ', & + ' fpm --help|--version ', & + ' ', & + 'DESCRIPTION ', & + ' fpm is a package manager that helps you create Fortran projects that are ', & + ' optionally dependent on multiple files and other fpm(1) packages. ', & + ' ', & + ' Most significantly fpm(1) lets you pull upon other fpm(1) packages in ', & + ' distributed git(1) repositories as if the packages were a basic part ', & + ' of your default programming environment, as well as letting you share ', & + ' your projects with others in a similar manner. ', & + ' ', & + ' See the fpm(1) repository for a listing of such available projects. ', & + ' ', & + ' All output goes into the directory "build/". ', & + ' ', & + 'SUBCOMMANDS ', & + ' Valid fpm subcommands are: ', & + ' ', & + ' build [--release] [--list] ', & + ' Compile the packages into the "build/" directory. ', & + ' new NAME [--with-executable] [--with-test] ', & + ' Create a new Fortran package directory ', & + ' with sample files ', & + ' run [NAME(s)] [--release] [--list] [-- ARGS] ', & + ' Run the local package binaries. defaults to all ', & + ' binaries for that release. ', & + ' test [NAME(s)] [--release] [--list] [-- ARGS] ', & + ' Run the tests ', & + ' help [NAME(s)] Alternate method for displaying subcommand help ', & + ' ', & + 'SUBCOMMAND OPTIONS ', & + ' --release Builds or runs in release mode (versus debug mode). fpm(1) ', & + ' Defaults to using common compiler debug flags and building ', & + ' in "build/gfortran_debug/". When this flag is present build ', & + ' output goes into "build/gfortran_release/" and common ', & + ' compiler optimization flags are used. ', & + ' --list list candidates instead of building or running them ', & + ' -- ARGS Arguments to pass to executables/tests ', & + ' --help Show this help text and exit. Valid for all subcommands. ', & + ' --version Show version information and exit. Valid for all subcommands.', & + 'EXAMPLES ', & + ' sample commands: ', & + ' ', & + ' fpm build ', & + ' fpm test ', & + ' fpm run ', & + ' fpm new --help ', & + ' fpm new mypackage --with-executable --with-test ', & + ' fpm run myprogram --release -- -x 10 -y 20 --title "my title" ', & + 'SEE ALSO ', & + ' The fpm(1) home page is https://github.com/fortran-lang/fpm ', & + ''] + help_run=[character(len=80) :: & + 'NAME ', & + ' run(1) - the fpm(1) subcommand to run project applications ', & + ' ', & + 'SYNOPSIS ', & + ' fpm run [NAME(s)] [--release] [-- ARGS] ', & + ' ', & + ' fpm run --help|--version ', & + ' ', & + 'DESCRIPTION ', & + ' Run applications you have built in your fpm(1) project. ', & + ' ', & + 'OPTIONS ', & + ' NAME(s) optional list of specific names to execute. ', & + ' The default is to run all the applications in app/ ', & + ' or the programs listed in the "fpm.toml" file. ', & + ' --release selects the optimized build instead of the debug ', & + ' build. ', & + ' --list list candidates instead of building or running them', & + ' -- ARGS optional arguments to pass to the program(s). ', & + ' The same arguments are passed to all names ', & + ' specified. ', & + ' ', & + 'EXAMPLES ', & + 'run fpm(1) project applications ', & + ' ', & + ' # run default programs in /app or as specified in "fpm.toml" ', & + ' fpm run ', & + ' ', & + ' # run a specific program and pass arguments to the command ', & + ' fpm run mytest -- -x 10 -y 20 -title "my title line" ', & + ' ', & + ' # production version of two applications ', & + ' fpm run tst1 test2 -release ', & + 'SEE ALSO ', & + ' The fpm(1) home page is https://github.com/fortran-lang/fpm ', & + '' ] + help_build=[character(len=80) :: & + 'NAME ', & + ' build(1) - the fpm(1) subcommand to build a project ', & + 'SYNOPSIS ', & + ' fpm build [--release]|[-list] ', & + ' fpm build --help|--version ', & + ' ', & + 'DESCRIPTION ', & + ' The "fpm build" command ', & + ' o Fetches any dependencies ', & + ' o Scans your sources ', & + ' o Builds them in the proper order ', & + ' ', & + ' The Fortran source files are assumed to be in app/, test/, and src/ ', & + ' by default. The changed or new files found are rebuilt. ', & + ' The results are placed in the build/ directory. ', & + ' ', & + ' Non-default pathnames and remote dependencies are used if ', & + ' specified in the "fpm.toml" file. ', & + ' ', & + 'OPTIONS ', & + ' --release build in build/*_release instead of build/*_debug with ', & + ' high optimization instead of full debug options. ', & + ' --list list candidates instead of building or running them ', & + ' --help print this help and exit ', & + ' --version print program version information and exit ', & + ' ', & + 'EXAMPLES ', & + ' Sample commands: ', & + ' ', & + ' fpm build # build with debug options ', & + ' fpm build -release # build with high optimization ', & + 'SEE ALSO ', & + ' The fpm(1) home page is https://github.com/fortran-lang/fpm ', & + '' ] + help_help=[character(len=80) :: & + 'NAME ', & + ' help(1) - the fpm(1) subcommand to display help ', & + 'SYNOPSIS ', & + ' fpm help [fpm][new][build][run][test][help][version][all] ', & + ' ', & + 'DESCRIPTION ', & + ' The "fpm help" command is an alternative to the --help parameter ', & + ' on the fpm(1) command and its subcommands. ', & + ' ', & + 'OPTIONS ', & + ' NAME(s) A list of topic names to display. ', & + ' ', & + 'EXAMPLES ', & + ' ', & + ' fpm help ', & + ' fpm help version ', & + ' fpm all ', & + 'SEE ALSO ', & + ' The fpm(1) home page is https://github.com/fortran-lang/fpm ', & + '' ] + help_new=[character(len=80) :: & + 'NAME ', & + ' new(1) - the fpm(1) subcommand to initialize a new project ', & + 'SYNOPSIS ', & + ' fpm new NAME [--with-executable] [--with-test] ', & + ' ', & + ' fpm new --help|--version ', & + ' ', & + 'DESCRIPTION ', & + ' Create a new programming project in a new directory ', & + ' ', & + ' The "new" subcommand creates a directory and runs the command ', & + ' "git init" in that directory and makes an example "fpm.toml" ', & + ' file, a src/ directory, and optionally a test/ and app/ ', & + ' directory with trivial example Fortran source files. ', & + ' ', & + ' Remember to update the information in the sample "fpm.toml" ', & + ' file with such information as your name and e-mail address. ', & + ' ', & + 'OPTIONS ', & + ' NAME the name of the project directory to create. The name ', & + ' must be a valid Fortran name composed of 1 to 63 ', & + ' ASCII alphanumeric characters and underscores, ', & + ' starting with a letter. ', & + ' --with-executable additionally create optional directory app/ ', & + ' and placeholder program for "fpm run". ', & + ' --with-test additionally create optional directory test/', & + ' and placeholder program for "fpm test". ', & + ' --help print this help and exit ', & + ' --version print program version information and exit ', & + ' ', & + 'EXAMPLES ', & + ' Sample use ', & + ' ', & + ' fpm new myproject # create new project directory and seed it', & + ' cd myproject # Enter the new directory ', & + ' # and run commands such as ', & + ' fpm build ', & + ' fpm run # if you selected --with-executable ', & + ' fpm test # if you selected --with-test ', & + 'SEE ALSO ', & + ' The fpm(1) home page is https://github.com/fortran-lang/fpm ', & + ' ', & + ' Registered packages are at https://fortran-lang.org/packages ', & + '' ] + help_test=[character(len=80) :: & + 'NAME ', & + ' test(1) - the fpm(1) subcommand to run project tests ', & + ' ', & + 'SYNOPSIS ', & + ' fpm test [NAME(s)] [--release] [--list] [-- ARGS] ', & + ' ', & + ' fpm test --help|--version ', & + ' ', & + 'DESCRIPTION ', & + ' Run applications you have built to test your project. ', & + ' ', & + 'OPTIONS ', & + ' NAME(s) optional list of specific test names to execute. ', & + ' The default is to run all the tests in test/ ', & + ' or the tests listed in the "fpm.toml" file. ', & + ' --release selects the optimized build instead of the debug ', & + ' build. ', & + ' --list list candidates instead of building or running them', & + ' -- ARGS optional arguments to pass to the test program(s). ', & + ' The same arguments are passed to all test names ', & + ' specified. ', & + ' ', & + 'EXAMPLES ', & + 'run tests ', & + ' ', & + ' # run default tests in /test or as specified in "fpm.toml" ', & + ' fpm test ', & + ' ', & + ' # run a specific test and pass arguments to the command ', & + ' fpm test mytest -- -x 10 -y 20 -title "my title line" ', & + ' ', & + ' fpm test tst1 test2 -release # production version of two tests', & + 'SEE ALSO ', & + ' The fpm(1) home page is https://github.com/fortran-lang/fpm ', & + '' ] + help_install=[character(len=80) :: & + ' fpm(1) subcommand "install" ', & + ' ', & + ' Usage: fpm install NAME ', & + '' ] + end subroutine set_help end module fpm_command_line diff --git a/fpm/test/cli_test/cli_test.f90 b/fpm/test/cli_test/cli_test.f90 index ab032f5..fac49e8 100644 --- a/fpm/test/cli_test/cli_test.f90 +++ b/fpm/test/cli_test/cli_test.f90 @@ -40,7 +40,7 @@ character(len=256) :: message character(len=*),parameter :: tests(*)= [ character(len=256) :: & 'CMD="new", ESTAT=1,', & -'CMD="new -unknown", ESTAT=2,', & +!'CMD="new -unknown", ESTAT=2,', & 'CMD="new my_project another yet_another -with-test", ESTAT=2,', & 'CMD="new my_project --with-executable", W_E=T, NAME="my_project",', & 'CMD="new my_project --with-executable -with-test", W_E=T,W_T=T, NAME="my_project",', & |