You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
__This repository archives the legacy Haskell implementation of fpm and is not under active development.__
2
+
3
+
__See [fortran-lang/fpm](https://github.com/fortran-lang/fpm) for the active fpm implementation__
4
+
5
+
# Fortran Package Manager - Haskell
2
6
3
7
Fortran Package Manager (fpm) is a package manager and build system for Fortran.
4
8
Its key goal is to improve the user experience of Fortran programmers.
@@ -10,120 +14,64 @@ so if you're familiar with that tool, you will feel at home with fpm.
10
14
Fpm's long term vision is to nurture and grow the ecosystem of modern Fortran
11
15
applications and libraries.
12
16
13
-
Fpm is an early prototype and is evolving rapidly.
14
-
You can use it to build and package your Fortran projects, as well as to use
15
-
[existing fpm packages](https://github.com/fortran-lang/fpm-registry) as dependencies.
16
-
Fpm's behavior and user interface may change as it evolves, however as fpm
17
-
matures and we enter production, we will aim to stay backwards compatible.
18
-
Please follow the [issues](https://github.com/fortran-lang/fpm/issues) to
19
-
contribute and/or stay up to date with the development.
20
-
Before opening a bug report or a feature suggestion, please read our
21
-
[Contributor Guide](CONTRIBUTING.md). You can also discuss your ideas and queries with the community in [fpm discussions](https://github.com/fortran-lang/fpm/discussions), or more broadly on [Fortran-Lang Discourse](https://fortran-lang.discourse.group/)
22
-
23
-
Fortran Package Manager is not to be confused with
24
-
[Jordan Sissel's fpm](https://github.com/jordansissel/fpm), a more general,
25
-
non-Fortran related package manager.
26
-
27
-
## Getting started
28
-
29
-
### Setting up fpm
30
17
31
-
#### Binary download
32
-
`x86-64` binaries are available [to download](https://github.com/fortran-lang/fpm/releases) for Windows, MacOS and Linux.
18
+
## Building fpm-haskell
33
19
34
-
__Note:__ On Linux and MacOS, you will need to enable executable permission before you can use the binary.
20
+
### Install Haskell
35
21
36
-
_e.g._`$ chmod u+x fpm-v0.1.0-linux-x86_64`
22
+
To install **Haskell Stack**, follow these [instructions](https://docs.haskellstack.org/en/stable/install_and_upgrade/),
23
+
users without superuser (admin) permissions should follow the [manual installation](https://docs.haskellstack.org/en/stable/install_and_upgrade/#manual-download_2) procedure.
37
24
38
-
#### Conda
25
+
###Download this repository
39
26
40
-
Fpm is available on conda-forge, to add conda-forge to your channels use:
The conda package manager can be installed from [miniforge](https://github.com/conda-forge/miniforge/releases)
54
-
or from [miniconda](https://docs.conda.io/en/latest/miniconda.html).
55
-
56
-
#### Github Actions
57
-
58
-
To setup *fpm* within Github actions for automated testing, you can use the [fortran-lang/setup-fpm](https://github.com/marketplace/actions/setup-fpm) action.
59
-
60
-
#### Bootstraping on other platforms
47
+
On Linux, the above command installs `fpm` to `${HOME}/.local/bin`.
61
48
62
-
For other platforms and architectures have a look at the [bootstrapping instructions](#bootstrapping-instructions).
49
+
## Usage
63
50
64
51
### Creating a new project
65
52
66
-
Creating a new *fpm* project is as simple as running the command
67
-
`fpm new project_name`. This will create a new folder in your current directory
68
-
with the following contents and initialized as a git repository.
53
+
Creating a new fpm project is as simple as running the command`fpm new project_name`.
54
+
This will create a new folder in your current directory with the following contents
55
+
and initialized as a git repository.
69
56
70
-
*`fpm.toml`– with your project’s name and some default standard meta-data
71
-
*`README.md`– with your project’s name
72
-
*`.gitignore`
73
-
*`src/project_name.f90`– with a simple hello world subroutine
74
-
*`app/main.f90` (if `--with-executable` flag used) – a program that calls the subroutine
75
-
*`test/main.f90` (if `--with-test` flag used) – an empty test program
57
+
*`fpm.toml` with your project's name and some default standard meta-data
58
+
*`README.md` with your project's name
59
+
*`.gitgnore`
60
+
*`src/project_name.f90` with a simple hello world subroutine
61
+
*`app/main.f90` (if `--with-executable` flag used) a program that calls the subroutine
62
+
*`test/main.f90` (if `--with-test` flag used) an empty test program
76
63
77
-
###Building your Fortran project with fpm
64
+
## Building your Fortran project with fpm
78
65
79
-
*fpm* understands the basic commands:
66
+
fpm understands the basic commands:
80
67
81
-
*`fpm build`– build your library, executables and tests
82
-
*`fpm run`– run executables
83
-
*`fpm test` – run tests
68
+
*`fpm build`- build your library, executables and tests
69
+
*`fpm run`- run executables
70
+
*`fpm test`- run tests
84
71
85
72
The command `fpm run` can optionally accept the name of the specific executable
86
-
to run, as can `fpm test`; like `fpm run specific_executable`. Command line
73
+
to run, as can `fpm test`; like `fpm run specifc_executable`. Command line
87
74
arguments can also be passed to the executable(s) or test(s) with the option
88
-
`-- some arguments`.
89
-
90
-
See additional instructions in the [Packaging guide](PACKAGING.md) or
91
-
the [manifest reference](manifest-reference.md).
92
-
93
-
94
-
### Bootstrapping instructions
75
+
`--args "some arguments"`.
95
76
96
-
This guide explains the process of building *fpm* on a platform for the first time.
97
-
If your platform and architecture are already supported, download the binary from the [release page](https://github.com/fortran-lang/fpm/releases) instead.
0 commit comments