@@ -383,33 +383,16 @@ subroutine get_command_line_settings(cmd_settings)
383
383
& --config-file " " &
384
384
& --' ,help_build,version_text)
385
385
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
395
387
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
413
396
414
397
case (' new' )
415
398
call set_args(common_args // ' &
@@ -1654,9 +1637,10 @@ subroutine build_settings(self, list, show_model, build_tests, config_file)
1654
1637
1655
1638
character (len= :), allocatable :: comp, ccomp, cxcomp, arch
1656
1639
character (len= :), allocatable :: fflags, cflags, cxxflags, ldflags
1657
- character (len= :), allocatable :: prof, cfg
1640
+ character (len= :), allocatable :: prof, cfg, dump
1658
1641
1659
1642
! Read CLI/env values (sget returns what set_args registered, including defaults)
1643
+ ! This is equivalent to check_build_vals
1660
1644
comp = sget(' compiler' ); if (comp == ' ' ) comp = ' gfortran'
1661
1645
fflags = ' ' // sget(' flag' )
1662
1646
cflags = ' ' // sget(' c-flag' )
@@ -1668,6 +1652,10 @@ subroutine build_settings(self, list, show_model, build_tests, config_file)
1668
1652
cxcomp = sget(' cxx-compiler' )
1669
1653
arch = sget(' archiver' )
1670
1654
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
+
1671
1659
if (present (config_file)) then
1672
1660
if (len_trim (config_file) > 0 ) then
1673
1661
cfg = config_file
@@ -1691,6 +1679,7 @@ subroutine build_settings(self, list, show_model, build_tests, config_file)
1691
1679
self% cxxflag = cxxflags
1692
1680
self% ldflag = ldflags
1693
1681
self% verbose = lget(' verbose' )
1682
+ self% dump = dump
1694
1683
1695
1684
! Optional overrides from caller
1696
1685
if (present (list)) self% list = list
0 commit comments