fpm(1) - A Fortran package manager and build system
fpm SUBCOMMAND [SUBCOMMAND_OPTIONS]fpm --help|--version|--list
fpm(1) is a package manager that helps you create Fortran projects from source.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 at https://fortran-lang.org/packages for a listing of registered projects.
All output goes into the directory "build/" which can generally be removed and rebuilt if required. Note that if external packages are being used you need network connectivity to rebuild from scratch.
Valid fpm subcommands are:
build [--release] [--list] Compile the packages into the "build/" directory. new NAME [--lib|--src] [--app] [--test] [--backfill] 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 list [--list] Display brief descriptions of all subcommands.
--release Builds or runs in release mode (versus debug mode). fpm(1) Defaults to using common compiler debug flags and building in "build/*_debug/". When this flag is present build output goes into "build/*_release/" and common compiler optimization flags are used. --list List candidates instead of building or running them. On the fpm command this shows a brief list of subcommands. -- ARGS Arguments to pass to executables/tests --help Show help text and exit. Valid for all subcommands. --version Show version information and exit. Valid for all subcommands.
sample commands:
fpm new mypackage --app --test fpm build fpm test fpm run fpm new --help fpm run myprogram --release -- -x 10 -y 20 --title "my title"
The fpm(1) home page at https://github.com/fortran-lang/fpm
new(1) - the fpm(1) subcommand to initialize a new project
fpm new NAME [--lib|--src] [--app] [--test] [--backfill]fpm new --help|--version
"fpm new" creates a new programming project in a new directory.The "new" subcommand creates a directory with the specified name and runs the command "git init" in that directory and populates it with an example "fpm.toml" file, a src/, test/, and app/ directory with trivial example Fortran source files and a ".gitignore" file for ignoring the build/ directory (where fpm-generated output will be placed):
NAME/ fpm.toml .gitignore src/ NAME.f90 app/ main.f90 test/ main.f90Remember to update the information in the sample "fpm.toml" file with your name and e-mail address.
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. The default is to create all of the src/, app/, and test/ directories. If any of the following options are specified then only selected subdirectories are generated: --lib,--src create directory src/ and a placeholder module named "NAME.f90" for use with subcommand "build". --app create directory app/ and a placeholder main program for use with subcommand "run". --test create directory test/ and a placeholder program for use with the subcommand "test". Note that sans "--lib" it really does not have anything to test. So the default is equivalent to "fpm NAME --lib --app --test". --backfill By default the directory must not exist. If this option is present the directory may pre-exist and only subdirectories and files that do not already exist will be created. For example, if you previously entered "fpm new myname --lib" entering "fpm new myname --backfill" will create the missing app/ and test/ directories and programs. --help print this help and exit --version print program version information and exit
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 # run example application program fpm test # run example test program
The fpm(1) home page at https://github.com/fortran-lang/fpmRegistered packages are at https://fortran-lang.org/packages
build(1) - the fpm(1) subcommand to build a project
fpm build [--release]|[-list]fpm build --help|--version
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 by default to be in
o src/ for modules and procedure source o app/ main program(s) for applications o test/ main program(s) and support files for project tests 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.
--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
Sample commands:
fpm build # build with debug options fpm build --release # build with high optimization
The fpm(1) home page at https://github.com/fortran-lang/fpm
run(1) - the fpm(1) subcommand to run project applications
fpm run [NAME(s)] [--release] [-- ARGS]fpm run --help|--version
Run applications you have built in your fpm(1) project.
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.
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"
# run production version of two applications fpm run prg1 prg2 --release
The fpm(1) home page at https://github.com/fortran-lang/fpm
test(1) - the fpm(1) subcommand to run project tests
fpm test [NAME(s)] [--release] [--list] [-- ARGS]fpm test --help|--version
Run applications you have built to test your project.
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.
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 tst2 --release # production version of two tests
The fpm(1) home page at https://github.com/fortran-lang/fpm
help(1) - the fpm(1) subcommand to display help
fpm help [fpm] [new] [build] [run] [test] [help] [version] [manual]fpm help [fortran|fortran_manual][FORTRAN_INTRINSIC_NAME]
The "fpm help" command is an alternative to the --help parameter on the fpm(1) command and its subcommands.
NAME(s) A list of topic names to display. All the subcommands have their own page (new, build, run, test, ...). The special name "manual" displays all the fpm(1) built-in documentation.
The default is to display help for the fpm(1) command itself.
INTRINSIC(s) In addition, Fortran intrinsics can be described. The special name "fortran" prints a list of available topics. "fortran_manual" displays all the built-in fortran documentation. Entries should be in uppercase to avoid conflicts with fpm(1) topics; but can be in lowercase if there is no conflict.
Sample usage:
fpm help # general fpm(1) command help fpm help version # show program version fpm help new # display help for "new" subcommand fpm help manual # All fpm(1) built-in documentation
Additional general Fortran documentation
fpm help SIN COS TAN # selected Fortran Intrinsic help fpm help fortran # index of Fortran documentation fpm help fortran_manual # all Fortran documentation
The fpm(1) home page at https://github.com/fortran-lang/fpm
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 OS Type: Linux
untitled () | October 16, 2020 |