Skip to content

Add --compiler switch #255

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 40 commits into from
Dec 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
6de6ed2
The `run`, `test`, and `build` Fortran fpm(1) command has a new switch
urbanjost Nov 27, 2020
86711be
Remove white-space changes from compiler branch for PR
LKedward Nov 27, 2020
bd22673
Merge pull request #1 from LKedward/compiler-cleanup
urbanjost Nov 28, 2020
15083ad
suggested changes
urbanjost Nov 30, 2020
51b0eda
new M_CLI2
urbanjost Nov 30, 2020
95cab05
errata
urbanjost Dec 2, 2020
9ec84e3
Update fpm/src/fpm_command_line.f90
urbanjost Dec 3, 2020
d4aadcf
Update fpm/src/fpm_command_line.f90
urbanjost Dec 3, 2020
8b9438e
Update fpm/src/fpm_command_line.f90
urbanjost Dec 3, 2020
0987262
Update fpm/src/fpm_command_line.f90
urbanjost Dec 3, 2020
49e4148
Update fpm/src/fpm_compiler.f90
urbanjost Dec 3, 2020
717d648
Update fpm/src/fpm_command_line.f90
urbanjost Dec 3, 2020
1f785c5
Update fpm/src/fpm_command_line.f90
urbanjost Dec 3, 2020
87b9dff
Update fpm/src/fpm_command_line.f90
urbanjost Dec 3, 2020
022a587
Update fpm/src/fpm_command_line.f90
urbanjost Dec 3, 2020
6371552
Update fpm/src/fpm_command_line.f90
urbanjost Dec 3, 2020
b6ee366
Merge branch 'compiler' of https://github.com/urbanjost/fpm into comp…
urbanjost Dec 3, 2020
d1b0d4c
Add test program for help subcommand and correct 'fpm help build'
urbanjost Dec 4, 2020
add0d60
add help test to fpm.toml
urbanjost Dec 4, 2020
185706c
Merge branch 'master' into compiler
urbanjost Dec 4, 2020
c86c34f
local ffpm changed to fpm
urbanjost Dec 4, 2020
e214011
errata in help
urbanjost Dec 4, 2020
71b2a2a
new fpm not in path. use "fpm run"
urbanjost Dec 4, 2020
68e4946
remove unused variables
urbanjost Dec 4, 2020
7b8d1dc
remove compare of built manual and manual
urbanjost Dec 4, 2020
ee130ab
Update fpm/src/fpm_compiler.f90
urbanjost Dec 4, 2020
a3111ca
Update fpm/src/fpm_compiler.f90
urbanjost Dec 4, 2020
388dbe5
debug mingw
urbanjost Dec 4, 2020
ee20bf1
Merge branch 'compiler' of https://github.com/urbanjost/fpm into comp…
urbanjost Dec 4, 2020
9fdc865
add caf case to fpm_compiler.f90; debug mingw help_test.f90
urbanjost Dec 4, 2020
7604736
workaround for old compiler
urbanjost Dec 4, 2020
88389c9
debugging mingw
urbanjost Dec 4, 2020
c96e244
dos line terminators
urbanjost Dec 4, 2020
0631665
remove debug from help-test
urbanjost Dec 4, 2020
5de92b8
mingw bug
urbanjost Dec 4, 2020
be8f4d2
add coarray and less verbose warnings for intel ifort
urbanjost Dec 5, 2020
0a5953e
add test with --release switch on run
urbanjost Dec 5, 2020
cbdb4be
nagfor compiler options
urbanjost Dec 6, 2020
ad9aee9
change way module directory is specified per concepts from @awvwgk to…
urbanjost Dec 6, 2020
125e2e1
cleanup errata in fpm_compiler.f90
urbanjost Dec 6, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion fpm/fpm.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,7 @@ name = "fpm-test"
source-dir = "test/fpm_test"
main = "main.f90"


[[test]]
name = "help-test"
source-dir = "test/help_test"
main = "help_test.f90"
35 changes: 17 additions & 18 deletions fpm/src/fpm.f90
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ module fpm
FPM_SCOPE_UNKNOWN, FPM_SCOPE_LIB, &
FPM_SCOPE_DEP, FPM_SCOPE_APP, FPM_SCOPE_TEST, &
FPM_TARGET_EXECUTABLE, FPM_TARGET_ARCHIVE
use fpm_compiler, only: add_compile_flag_defaults


use fpm_sources, only: add_executable_sources, add_sources_from_dir
use fpm_targets, only: targets_from_sources, resolve_module_dependencies, &
Expand Down Expand Up @@ -153,11 +155,17 @@ subroutine build_model(model, settings, package, error)
type(fpm_build_settings), intent(in) :: settings
type(package_config_t), intent(in) :: package
type(error_t), allocatable, intent(out) :: error
type(string_t), allocatable :: package_list(:)

integer :: i
type(string_t), allocatable :: package_list(:)

if(settings%verbose)then
write(*,*)'<INFO>BUILD_NAME:',settings%build_name
write(*,*)'<INFO>COMPILER: ',settings%compiler
endif

model%package_name = package%name

if (allocated(package%build%link)) then
model%link_libraries = package%build%link
else
Expand All @@ -167,25 +175,16 @@ subroutine build_model(model, settings, package, error)
allocate(package_list(1))
package_list(1)%s = package%name

! #TODO: Choose flags and output directory based on cli settings & manifest inputs
model%fortran_compiler = 'gfortran'

if(settings%release)then
model%output_directory = 'build/gfortran_release'
model%fortran_compile_flags=' &
& -O3 &
& -Wimplicit-interface &
& -fPIC &
& -fmax-errors=1 &
& -ffast-math &
& -funroll-loops ' // &
& '-J'//join_path(model%output_directory,model%package_name)
if(settings%compiler.eq.'')then
model%fortran_compiler = 'gfortran'
else
model%output_directory = 'build/gfortran_debug'
model%fortran_compile_flags = ' -Wall -Wextra -Wimplicit-interface -fPIC -fmax-errors=1 -g '// &
'-fbounds-check -fcheck-array-temporaries -fbacktrace '// &
'-J'//join_path(model%output_directory,model%package_name)
model%fortran_compiler = settings%compiler
endif

model%output_directory = join_path('build',basename(model%fortran_compiler)//'_'//settings%build_name)

call add_compile_flag_defaults(settings%build_name, basename(model%fortran_compiler), model)

model%link_flags = ''

! Add sources from executable directories
Expand Down
4 changes: 2 additions & 2 deletions fpm/src/fpm_backend.f90
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ subroutine build_target(model,target)
select case(target%target_type)

case (FPM_TARGET_OBJECT)
call run("gfortran -c " // target%source%file_name // model%fortran_compile_flags &
call run(model%fortran_compiler//" -c " // target%source%file_name // model%fortran_compile_flags &
// " -o " // target%output_file)

case (FPM_TARGET_EXECUTABLE)
Expand All @@ -223,7 +223,7 @@ subroutine build_target(model,target)
end if
end if

call run("gfortran " // model%fortran_compile_flags &
call run(model%fortran_compiler// " " // model%fortran_compile_flags &
//" "//link_flags// " -o " // target%output_file)

case (FPM_TARGET_ARCHIVE)
Expand Down
Loading