Skip to content

Commit 69c1393

Browse files
committed
use helper for build
1 parent 1dfc4ec commit 69c1393

File tree

1 file changed

+16
-27
lines changed

1 file changed

+16
-27
lines changed

src/fpm_command_line.f90

Lines changed: 16 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -383,33 +383,16 @@ subroutine get_command_line_settings(cmd_settings)
383383
& --config-file " " &
384384
& --',help_build,version_text)
385385

386-
call check_build_vals()
387-
388-
c_compiler = sget('c-compiler')
389-
cxx_compiler = sget('cxx-compiler')
390-
archiver = sget('archiver')
391-
config_file = sget('config-file')
392-
val_dump = sget('dump')
393-
if (specified('dump') .and. val_dump=='')val_dump='fpm_model.toml'
394-
386+
! Create and populate a base fpm_build_settings from CLI/env
395387
allocate( fpm_build_settings :: cmd_settings )
396-
cmd_settings=fpm_build_settings( &
397-
& profile=val_profile,&
398-
& dump=val_dump,&
399-
& prune=.not.lget('no-prune'), &
400-
& compiler=val_compiler, &
401-
& c_compiler=c_compiler, &
402-
& cxx_compiler=cxx_compiler, &
403-
& archiver=archiver, &
404-
& path_to_config=config_file, &
405-
& flag=val_flag, &
406-
& cflag=val_cflag, &
407-
& cxxflag=val_cxxflag, &
408-
& ldflag=val_ldflag, &
409-
& list=lget('list'),&
410-
& show_model=lget('show-model'),&
411-
& build_tests=lget('tests'),&
412-
& verbose=lget('verbose') )
388+
389+
select type (cmd => cmd_settings)
390+
class is (fpm_build_settings)
391+
call build_settings(cmd, list=lget('list'), &
392+
show_model=lget('show-model'), &
393+
build_tests=lget('tests'), &
394+
config_file=sget('config-file') )
395+
end select
413396

414397
case('new')
415398
call set_args(common_args // '&
@@ -1654,9 +1637,10 @@ subroutine build_settings(self, list, show_model, build_tests, config_file)
16541637

16551638
character(len=:), allocatable :: comp, ccomp, cxcomp, arch
16561639
character(len=:), allocatable :: fflags, cflags, cxxflags, ldflags
1657-
character(len=:), allocatable :: prof, cfg
1640+
character(len=:), allocatable :: prof, cfg, dump
16581641

16591642
! Read CLI/env values (sget returns what set_args registered, including defaults)
1643+
! This is equivalent to check_build_vals
16601644
comp = sget('compiler'); if (comp == '') comp = 'gfortran'
16611645
fflags = ' ' // sget('flag')
16621646
cflags = ' ' // sget('c-flag')
@@ -1668,6 +1652,10 @@ subroutine build_settings(self, list, show_model, build_tests, config_file)
16681652
cxcomp = sget('cxx-compiler')
16691653
arch = sget('archiver')
16701654

1655+
! Handle --dump default (empty value means use 'fpm_model.toml')
1656+
dump = sget('dump')
1657+
if (specified('dump') .and. dump=='') dump = 'fpm_model.toml'
1658+
16711659
if (present(config_file)) then
16721660
if (len_trim(config_file) > 0) then
16731661
cfg = config_file
@@ -1691,6 +1679,7 @@ subroutine build_settings(self, list, show_model, build_tests, config_file)
16911679
self%cxxflag = cxxflags
16921680
self%ldflag = ldflags
16931681
self%verbose = lget('verbose')
1682+
self%dump = dump
16941683

16951684
! Optional overrides from caller
16961685
if (present(list)) self%list = list

0 commit comments

Comments
 (0)