aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fpm/src/fpm.f9028
-rw-r--r--fpm/src/fpm_backend.f908
-rw-r--r--fpm/src/fpm_model.f904
-rw-r--r--fpm/src/fpm_targets.f904
4 files changed, 22 insertions, 22 deletions
diff --git a/fpm/src/fpm.f90 b/fpm/src/fpm.f90
index 402a1e4..97c1f42 100644
--- a/fpm/src/fpm.f90
+++ b/fpm/src/fpm.f90
@@ -170,18 +170,18 @@ subroutine build_model(model, settings, package, error)
& -fmax-errors=1 &
& -ffast-math &
& -funroll-loops ' // &
- & '-J'//join_path(model%output_directory,'lib')
+ & '-J'//join_path(model%output_directory,model%package_name)
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,'lib')
+ '-J'//join_path(model%output_directory,model%package_name)
endif
model%link_flags = ''
! Add sources from executable directories
if (is_dir('app') .and. package%build_config%auto_executables) then
- call add_sources_from_dir(sources,'app', FPM_SCOPE_APP, &
+ call add_sources_from_dir(model%sources,'app', FPM_SCOPE_APP, &
with_executables=.true., error=error)
if (allocated(error)) then
@@ -190,7 +190,7 @@ subroutine build_model(model, settings, package, error)
end if
if (is_dir('test') .and. package%build_config%auto_tests) then
- call add_sources_from_dir(sources,'test', FPM_SCOPE_TEST, &
+ call add_sources_from_dir(model%sources,'test', FPM_SCOPE_TEST, &
with_executables=.true., error=error)
if (allocated(error)) then
@@ -199,7 +199,7 @@ subroutine build_model(model, settings, package, error)
end if
if (allocated(package%executable)) then
- call add_executable_sources(sources, package%executable, FPM_SCOPE_APP, &
+ call add_executable_sources(model%sources, package%executable, FPM_SCOPE_APP, &
auto_discover=package%build_config%auto_executables, &
error=error)
@@ -209,7 +209,7 @@ subroutine build_model(model, settings, package, error)
end if
if (allocated(package%test)) then
- call add_executable_sources(sources, package%test, FPM_SCOPE_TEST, &
+ call add_executable_sources(model%sources, package%test, FPM_SCOPE_TEST, &
auto_discover=package%build_config%auto_tests, &
error=error)
@@ -220,25 +220,23 @@ subroutine build_model(model, settings, package, error)
endif
! Add library sources, including local dependencies
- call add_libsources_from_package(sources,package_list,package, &
+ call add_libsources_from_package(model%sources,package_list,package, &
package_root='.',dev_depends=.true.,error=error)
if (allocated(error)) then
return
end if
+ call targets_from_sources(model,model%sources)
+
if(settings%list)then
- do i=1,size(sources)
- write(stderr,'(*(g0,1x))')'fpm::build<INFO>:file expected at',sources(i)%file_name, &
- & merge('exists ','does not exist',exists(sources(i)%file_name) )
+ do i=1,size(model%targets)
+ write(stderr,*) model%targets(i)%ptr%output_file
enddo
stop
- else
-
- call targets_from_sources(model,sources)
-
- call resolve_module_dependencies(model%targets,error)
endif
+ call resolve_module_dependencies(model%targets,error)
+
end subroutine build_model
diff --git a/fpm/src/fpm_backend.f90 b/fpm/src/fpm_backend.f90
index 88f3317..d3fa785 100644
--- a/fpm/src/fpm_backend.f90
+++ b/fpm/src/fpm_backend.f90
@@ -28,13 +28,13 @@ subroutine build_package(model)
if (.not.exists(model%output_directory)) then
call mkdir(model%output_directory)
end if
-
- if (.not.exists(join_path(model%output_directory,'lib'))) then
- call mkdir(join_path(model%output_directory,'lib'))
+ if (.not.exists(join_path(model%output_directory,model%package_name))) then
+ call mkdir(join_path(model%output_directory,model%package_name))
end if
if (model%targets(1)%ptr%target_type == FPM_TARGET_ARCHIVE) then
- linking = ' -l'//model%package_name//" -L"//join_path(model%output_directory,'lib')
+ linking = ' -l'//model%package_name//" -L"//&
+ join_path(model%output_directory,model%package_name)
else
linking = " "
end if
diff --git a/fpm/src/fpm_model.f90 b/fpm/src/fpm_model.f90
index 44b7d39..b8c3220 100644
--- a/fpm/src/fpm_model.f90
+++ b/fpm/src/fpm_model.f90
@@ -75,8 +75,10 @@ end type build_target_t
type :: fpm_model_t
character(:), allocatable :: package_name
! Name of package
+ type(srcfile_t), allocatable :: sources(:)
+ ! Array of sources
type(build_target_ptr), allocatable :: targets(:)
- ! Array of sources with module-dependencies resolved
+ ! Array of targets with module-dependencies resolved
character(:), allocatable :: fortran_compiler
! Command line name to invoke fortran compiler
character(:), allocatable :: fortran_compile_flags
diff --git a/fpm/src/fpm_targets.f90 b/fpm/src/fpm_targets.f90
index 0c46aac..54f0764 100644
--- a/fpm/src/fpm_targets.f90
+++ b/fpm/src/fpm_targets.f90
@@ -20,7 +20,7 @@ subroutine targets_from_sources(model,sources)
if (with_lib) call add_target(model%targets,type = FPM_TARGET_ARCHIVE,&
output_file = join_path(model%output_directory,&
- 'lib','lib'//model%package_name//'.a'))
+ model%package_name,'lib'//model%package_name//'.a'))
do i=1,size(sources)
@@ -98,7 +98,7 @@ subroutine targets_from_sources(model,sources)
object_file = join_path(model%output_directory,'test',object_file)//'.o'
case default
- object_file = join_path(model%output_directory,'lib',object_file)//'.o'
+ object_file = join_path(model%output_directory,model%package_name,object_file)//'.o'
end select