Skip to content

Commit 29af5a0

Browse files
committed
Add support for toggling Fortran features
1 parent 55d94b0 commit 29af5a0

File tree

19 files changed

+307
-8
lines changed

19 files changed

+307
-8
lines changed

ci/run_tests.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,13 @@ popd
162162
pushd fpm_test_exit_code
163163
"$fpm" build
164164

165+
for feature in free_format fixed_format implicit_typing implicit_external
166+
do
167+
pushd $feature
168+
"$fpm" run
169+
popd
170+
done
171+
165172
# odd number -> success!
166173
EXIT_CODE=0
167174
"$fpm" run -- 1 || EXIT_CODE=$?
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
program test
2+
use lib
3+
call hello
4+
end
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
name = "fixed-format"
2+
fortran.source-format = "fixed"
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module lib
2+
contains
3+
subroutine h e l l o
4+
print '(a)',
5+
+"Hello, fixed world!"
6+
end subroutine
7+
end module
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
program test
2+
use lib
3+
call hello
4+
end

example_packages/free_format/fpm.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
name = "free-format"
2+
fortran.source-format = "free"
3+
executable = [{main="main.f", name="free-format"}]
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module lib
2+
contains
3+
subroutine hello
4+
print '(a)', "Hello, free world!"
5+
end subroutine
6+
end module
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
program test
2+
integer :: ijk
3+
call impl(ijk)
4+
if (ijk /= 1) error stop
5+
end program test
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
name = "implicit-external"
2+
fortran.implicit-external = false
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
subroutine impl(ijk)
2+
integer :: ijk
3+
ijk = 1
4+
end subroutine impl

0 commit comments

Comments
 (0)