Skip to content

Commit d8efee4

Browse files
authored
Merge branch 'main' into mpi_runner_onrunonly
2 parents d3c3a16 + ee397ac commit d8efee4

23 files changed

+584
-257
lines changed

.github/workflows/meta.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@ on:
1414

1515
env:
1616
CI: "ON" # We can detect this in the build system and other vendors implement it
17-
HOMEBREW_NO_ANALYTICS: "ON" # Make Homebrew installation a little quicker
18-
HOMEBREW_NO_AUTO_UPDATE: "ON"
19-
HOMEBREW_NO_BOTTLE_SOURCE_FALLBACK: "ON"
20-
HOMEBREW_NO_GITHUB_API: "ON"
21-
HOMEBREW_NO_INSTALL_CLEANUP: "ON"
17+
HOMEBREW_NO_ANALYTICS: 1 # Make Homebrew installation a little quicker
18+
HOMEBREW_NO_AUTO_UPDATE: 1
19+
HOMEBREW_NO_BOTTLE_SOURCE_FALLBACK: 1
20+
HOMEBREW_NO_GITHUB_API: 1
21+
HOMEBREW_NO_INSTALL_CLEANUP: 1
22+
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
2223

2324
jobs:
2425

@@ -198,7 +199,7 @@ jobs:
198199
- name: (macOS) Install homebrew OpenMPI
199200
if: contains(matrix.mpi,'openmpi') && contains(matrix.os,'macos')
200201
run: |
201-
brew install --cc=gcc-${{ env.GCC_V }} openmpi
202+
brew install openmpi #--cc=gcc-${{ env.GCC_V }} openmpi
202203
203204
# Phase 1: Bootstrap fpm with existing version
204205
- name: Install fpm

ci/run_tests.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ pushd circular_example
3131
"$fpm" build
3232
popd
3333

34+
pushd nonintrinsic
35+
"$fpm" build
36+
popd
37+
3438
pushd hello_complex
3539
"$fpm" build
3640
"$fpm" test
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
build/*
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
program test_nonintr
2+
use, non_intrinsic :: iso_fortran_env
3+
4+
! ijk=0 can be read
5+
stop ijk
6+
end program test_nonintr
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
name = "non-intrinsic"
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
module iso_fortran_env
2+
implicit none
3+
integer, parameter :: ijk = 0
4+
end module iso_fortran_env

fpm.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ M_CLI2.rev = "7264878cdb1baff7323cc48596d829ccfe7751b8"
1717
fortran-regex.git = "https://github.com/perazz/fortran-regex"
1818
fortran-regex.tag = "1.1.2"
1919
jonquil.git = "https://github.com/toml-f/jonquil"
20-
jonquil.rev = "4c27c8c1e411fa8790dffcf8c3fa7a27b6322273"
20+
jonquil.rev = "4fbd4cf34d577c0fd25e32667ee9e41bf231ece8"
2121

2222
[[test]]
2323
name = "cli-test"

src/fpm.f90

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@ module fpm
2121
use fpm_manifest, only : get_package_data, package_config_t
2222
use fpm_meta, only : resolve_metapackages
2323
use fpm_error, only : error_t, fatal_error, fpm_stop
24-
use,intrinsic :: iso_fortran_env, only : stdin=>input_unit, &
25-
& stdout=>output_unit, &
26-
& stderr=>error_unit
24+
use, intrinsic :: iso_fortran_env, only : stdin => input_unit, &
25+
& stdout => output_unit, &
26+
& stderr => error_unit
2727
use iso_c_binding, only: c_char, c_ptr, c_int, c_null_char, c_associated, c_f_pointer
28+
use fpm_environment, only: os_is_unix
29+
2830
implicit none
2931
private
3032
public :: cmd_build, cmd_run, cmd_clean
@@ -42,7 +44,6 @@ subroutine build_model(model, settings, package, error)
4244
integer :: i, j
4345
type(package_config_t) :: dependency
4446
character(len=:), allocatable :: manifest, lib_dir
45-
character(len=:), allocatable :: version
4647
logical :: has_cpp
4748
logical :: duplicates_found
4849
type(string_t) :: include_dir
@@ -324,7 +325,7 @@ end subroutine check_modules_for_duplicates
324325
subroutine check_module_names(model, error)
325326
type(fpm_model_t), intent(in) :: model
326327
type(error_t), allocatable, intent(out) :: error
327-
integer :: i,j,k,l,m
328+
integer :: k,l,m
328329
logical :: valid,errors_found,enforce_this_file
329330
type(string_t) :: package_name,module_name,package_prefix
330331

@@ -619,29 +620,29 @@ subroutine cmd_run(settings,test)
619620
call fpm_stop(stat(firsterror),'*cmd_run*:stopping due to failed executions')
620621
end if
621622

622-
endif
623+
end if
624+
623625
contains
626+
624627
subroutine compact_list_all()
625628
integer, parameter :: LINE_WIDTH = 80
626-
integer :: i, j, nCol
627-
j = 1
629+
integer :: ii, jj, nCol
630+
jj = 1
628631
nCol = LINE_WIDTH/col_width
629632
write(stderr,*) 'Available names:'
630-
do i=1,size(targets)
633+
do ii=1,size(targets)
631634

632-
exe_target => targets(i)%ptr
635+
exe_target => targets(ii)%ptr
633636

634637
if (exe_target%target_type == FPM_TARGET_EXECUTABLE .and. &
635638
allocated(exe_target%dependencies)) then
636639

637640
exe_source => exe_target%dependencies(1)%ptr%source
638641

639642
if (exe_source%unit_scope == run_scope) then
640-
641-
write(stderr,'(A)',advance=(merge("yes","no ",modulo(j,nCol)==0))) &
643+
write(stderr,'(A)',advance=(merge("yes","no ",modulo(jj,nCol)==0))) &
642644
& [character(len=col_width) :: basename(exe_target%output_file, suffix=.false.)]
643-
j = j + 1
644-
645+
jj = jj + 1
645646
end if
646647
end if
647648
end do
@@ -650,15 +651,15 @@ end subroutine compact_list_all
650651

651652
subroutine compact_list()
652653
integer, parameter :: LINE_WIDTH = 80
653-
integer :: i, j, nCol
654-
j = 1
654+
integer :: ii, jj, nCol
655+
jj = 1
655656
nCol = LINE_WIDTH/col_width
656657
write(stderr,*) 'Matched names:'
657-
do i=1,size(executables)
658-
write(stderr,'(A)',advance=(merge("yes","no ",modulo(j,nCol)==0))) &
659-
& [character(len=col_width) :: basename(executables(i)%s, suffix=.false.)]
660-
j = j + 1
661-
enddo
658+
do ii=1,size(executables)
659+
write(stderr,'(A)',advance=(merge("yes","no ",modulo(jj,nCol)==0))) &
660+
& [character(len=col_width) :: basename(executables(ii)%s, suffix=.false.)]
661+
jj = jj + 1
662+
end do
662663
write(stderr,*)
663664
end subroutine compact_list
664665

@@ -679,27 +680,28 @@ subroutine delete_skip(is_unix)
679680
end do
680681
end subroutine delete_skip
681682

683+
!> Delete the build directory including or excluding dependencies.
682684
subroutine cmd_clean(settings)
683-
!> fpm clean called
685+
!> Settings for the clean command.
684686
class(fpm_clean_settings), intent(in) :: settings
685-
! character(len=:), allocatable :: dir
686-
! type(string_t), allocatable :: files(:)
687-
character(len=1) :: response
687+
688+
character :: user_response
689+
688690
if (is_dir('build')) then
689-
! remove the entire build directory
691+
! Remove the entire build directory
690692
if (settings%clean_call) then
691-
call os_delete_dir(settings%is_unix, 'build')
692-
return
693+
call os_delete_dir(os_is_unix(), 'build'); return
693694
end if
694-
! remove the build directory but skip dependencies
695+
696+
! Remove the build directory but skip dependencies
695697
if (settings%clean_skip) then
696-
call delete_skip(settings%is_unix)
697-
return
698+
call delete_skip(os_is_unix()); return
698699
end if
699-
! prompt to remove the build directory but skip dependencies
700+
701+
! Prompt to remove the build directory but skip dependencies
700702
write(stdout, '(A)', advance='no') "Delete build, excluding dependencies (y/n)? "
701-
read(stdin, '(A1)') response
702-
if (lower(response) == 'y') call delete_skip(settings%is_unix)
703+
read(stdin, '(A1)') user_response
704+
if (lower(user_response) == 'y') call delete_skip(os_is_unix())
703705
else
704706
write (stdout, '(A)') "fpm: No build directory found."
705707
end if

src/fpm/cmd/publish.f90

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ subroutine cmd_publish(settings)
6565
end do
6666

6767
tmp_file = get_temp_filename()
68-
call git_archive('.', tmp_file, error)
68+
call git_archive('.', tmp_file, 'HEAD', settings%verbose, error)
6969
if (allocated(error)) call fpm_stop(1, '*cmd_publish* Archive error: '//error%message)
7070

7171
upload_data = [ &
@@ -91,7 +91,6 @@ subroutine cmd_publish(settings)
9191
end if
9292

9393
if (settings%verbose) then
94-
print *, ''
9594
call print_upload_data(upload_data)
9695
print *, ''
9796
end if
@@ -102,7 +101,7 @@ subroutine cmd_publish(settings)
102101
print *, 'Dry run successful. Generated tarball: ', tmp_file; return
103102
end if
104103

105-
call downloader%upload_form(official_registry_base_url//'/packages', upload_data, error)
104+
call downloader%upload_form(official_registry_base_url//'/packages', upload_data, settings%verbose, error)
106105
call delete_file(tmp_file)
107106
if (allocated(error)) call fpm_stop(1, '*cmd_publish* Upload error: '//error%message)
108107
end

src/fpm/cmd/update.f90

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,13 @@ subroutine cmd_update(settings)
2424
call get_package_data(package, "fpm.toml", error, apply_defaults=.true.)
2525
call handle_error(error)
2626

27-
if (.not.exists("build")) then
27+
if (.not. exists("build")) then
2828
call mkdir("build")
2929
call filewrite(join_path("build", ".gitignore"),["*"])
3030
end if
3131

3232
cache = join_path("build", "cache.toml")
33-
if (settings%clean) then
34-
call delete_file(cache)
35-
end if
33+
if (settings%clean) call delete_file(cache)
3634

3735
call new_dependency_tree(deps, cache=cache, &
3836
verbosity=merge(2, 1, settings%verbose))

0 commit comments

Comments
 (0)