-
-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #21 from FluidNumerics/windows-fpm
[WIP] Windows fpm
- Loading branch information
Showing
5 changed files
with
292 additions
and
210 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
name: windows-ci | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
- main | ||
paths-ignore: | ||
- 'AUTHORS.md' | ||
- 'LICENSE.md' | ||
- 'README.md' | ||
pull_request: | ||
paths-ignore: | ||
- 'AUTHORS.md' | ||
- 'LICENSE.md' | ||
- 'README.md' | ||
env: | ||
# Modify this variable to change the ifort compiler version - do NOT hardcode the version | ||
# anywhere else! | ||
INTEL_ONEAPI_VERSION: 2023.2.1 | ||
|
||
jobs: | ||
windows-tests: | ||
timeout-minutes: 8 | ||
if: "!contains(github.event.head_commit.message, 'skip ci')" | ||
name: ${{ matrix.os }} - ${{ matrix.fcompiler }} - ${{ matrix.build_type }} | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
|
||
# Windows | ||
- os: windows-latest | ||
fcompiler: gfortran | ||
ccompiler: gcc | ||
shell: 'msys2 {0}' | ||
build_type: debug | ||
|
||
- os: windows-latest | ||
fcompiler: gfortran | ||
ccompiler: gcc | ||
shell: 'msys2 {0}' | ||
build_type: fpm | ||
|
||
defaults: | ||
run: | ||
shell: ${{ matrix.shell }} | ||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
|
||
- name: Install packages | ||
uses: msys2/setup-msys2@v2 | ||
if: ${{ matrix.os == 'windows-latest' }} | ||
with: | ||
update: true | ||
install: git base-devel mingw-w64-x86_64-toolchain cmake mingw-w64-x86_64-gcc-fortran mingw-w64-x86_64-fpm | ||
|
||
- name: Show version information | ||
run: | | ||
${{ matrix.fcompiler }} --version | ||
${{ matrix.ccompiler }} --version | ||
- name: Build with Cmake | ||
if: ${{ matrix.build_type != 'fpm' }} | ||
run: | | ||
mkdir build | ||
cd build | ||
FC=${{ matrix.fcompiler }} CC=${{ matrix.ccompiler }} cmake -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} ../ | ||
make VERBOSE=1 | ||
- name: fpm tests | ||
if: ${{ (matrix.build_type == 'fpm') && (matrix.fcompiler != 'ifx') }} | ||
run: | | ||
fpm install --verbose --compiler ${{ matrix.fcompiler }} --c-compiler ${{ matrix.ccompiler }} | ||
fpm test --verbose --compiler ${{ matrix.fcompiler }} --c-compiler ${{ matrix.ccompiler }} | ||
fpm run --verbose --compiler ${{ matrix.fcompiler }} --c-compiler ${{ matrix.ccompiler }} --example="*" | ||
- name: Run ctests | ||
if: ${{ matrix.build_type != 'fpm' }} | ||
run: | | ||
cd build/test | ||
ctest || ctest --rerun-failed --output-on-failure | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,7 +12,7 @@ Copyright 2020 Fluid Numerics LLC | |
`feq-parse` can be installed using either CMake, [Fortran Package Manager (fpm)](https://github.com/fortran-lang/fpm), or with [Spack](https://spack.io). | ||
|
||
### Prerequisites | ||
All you need is a Fortran compiler that is compliant with the Fortran 2008 standard and supports C interoperability. You can see which compilers are regularly tested on the [Github actions page](https://github.com/FluidNumerics/feq-parse/actions/workflows/ci.yml) | ||
All you need is a Fortran compiler that is compliant with the Fortran 2008 standard and supports C interoperability. You can see which compilers are regularly tested on the [Github actions page](https://github.com/FluidNumerics/feq-parse/actions/workflows/ci.yml). Additionally, the table below lists the [supported compilers](#supported-compilers) | ||
|
||
If you are installing with CMake, you will need to have CMake version 3.0.2 or greated | ||
|
||
|
@@ -53,7 +53,7 @@ fpm test --profile release | |
|
||
You can also run the examples included in the `example/` subdirectory : | ||
``` | ||
fpm run --example "*" | ||
fpm run --example="*" | ||
``` | ||
|
||
To use `feq-parse` within your fpm project, add the following to your `fpm.toml` file: | ||
|
@@ -91,6 +91,18 @@ spack install [email protected] | |
|
||
Refer to the [spack documentation](https://spack.readthedocs.io/en/latest/) for further guidance on using Spack. | ||
|
||
## Supported Compilers | ||
|
||
The following combinations are tested on the main branch of feq-parse: | ||
|
||
Name | Version | Platform | Build System | Architecture | ||
--- | --- | --- | --- | --- | | ||
GNU Fortran | 9, 10, 11, 12 | Ubuntu 22.04.2 LTS | `fpm`, `cmake` | x86_64 | ||
GNU Fortran | 13.2.0 | Windows Server 2022 (10.0.20348 Build 1547) (MSYS2) | `fpm`, `cmake` | x86_64 | ||
Intel oneAPI (`ifx`)| 2023.2 | Ubuntu 22.04.2 LTS | `fpm`, `cmake` | x86_64 | ||
Intel oneAPI classic (`ifort`) | 2021.1 | Ubuntu 22.04.2 LTS | `fpm`, `cmake` | x86_64 | ||
|
||
|
||
## Usage | ||
|
||
> [!NOTE] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.