@@ -10,7 +10,7 @@ module fpm_cmd_install
10
10
use fpm_model, only : fpm_model_t, FPM_SCOPE_APP
11
11
use fpm_targets, only: targets_from_sources, build_target_t, &
12
12
build_target_ptr, FPM_TARGET_EXECUTABLE, &
13
- filter_library_targets, filter_executable_targets
13
+ filter_library_targets, filter_executable_targets, filter_modules
14
14
use fpm_strings, only : string_t, resize
15
15
implicit none
16
16
private
@@ -69,7 +69,7 @@ subroutine cmd_install(settings)
69
69
call installer% install_library(list(1 )% s, error)
70
70
call handle_error(error)
71
71
72
- call install_module_files(installer, dir , error)
72
+ call install_module_files(installer, targets , error)
73
73
call handle_error(error)
74
74
end if
75
75
end if
@@ -109,20 +109,18 @@ subroutine install_info(unit, package, model, targets)
109
109
110
110
end subroutine install_info
111
111
112
- subroutine install_module_files (installer , dir , error )
112
+ subroutine install_module_files (installer , targets , error )
113
113
type (installer_t), intent (inout ) :: installer
114
- character (len =* ), intent (in ) :: dir
114
+ type (build_target_ptr ), intent (in ) :: targets(:)
115
115
type (error_t), allocatable , intent (out ) :: error
116
116
type (string_t), allocatable :: modules(:)
117
117
integer :: ii
118
118
119
- call list_files(dir , modules, recurse = .false. )
119
+ call filter_modules(targets , modules)
120
120
121
121
do ii = 1 , size (modules)
122
- if (is_module_file(modules(ii)% s)) then
123
- call installer% install_header(modules(ii)% s, error)
124
- if (allocated (error)) exit
125
- end if
122
+ call installer% install_header(modules(ii)% s// " .mod" , error)
123
+ if (allocated (error)) exit
126
124
end do
127
125
if (allocated (error)) return
128
126
@@ -154,14 +152,6 @@ elemental function is_executable_target(target_ptr) result(is_exe)
154
152
end if
155
153
end function is_executable_target
156
154
157
- elemental function is_module_file (name ) result(is_mod)
158
- character (len=* ), intent (in ) :: name
159
- logical :: is_mod
160
- integer :: ll
161
- ll = len (name)
162
- is_mod = name (max (1 , ll-3 ):ll) == " .mod"
163
- end function is_module_file
164
-
165
155
subroutine handle_error (error )
166
156
type (error_t), intent (in ), optional :: error
167
157
if (present (error)) then
0 commit comments