Skip to content

Commit 2a9b961

Browse files
committed
Fix: name collision between program objects
Simplify object naming rules to avoid issue where programs in different top-level folders can have the same object file name. Fixes #305
1 parent 55db69e commit 2a9b961

File tree

1 file changed

+1
-15
lines changed

1 file changed

+1
-15
lines changed

fpm/src/fpm_targets.f90

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -139,28 +139,14 @@ function get_object_name(source) result(object_file)
139139

140140
object_file = canon_path(source%file_name)
141141

142-
! Ignore first directory level
143-
object_file = object_file(index(object_file,filesep)+1:)
144-
145142
! Convert any remaining directory separators to underscores
146143
i = index(object_file,filesep)
147144
do while(i > 0)
148145
object_file(i:i) = '_'
149146
i = index(object_file,filesep)
150147
end do
151148

152-
select case(source%unit_scope)
153-
154-
case (FPM_SCOPE_APP, FPM_SCOPE_EXAMPLE)
155-
object_file = join_path(model%output_directory,'app',object_file)//'.o'
156-
157-
case (FPM_SCOPE_TEST)
158-
object_file = join_path(model%output_directory,'test',object_file)//'.o'
159-
160-
case default
161-
object_file = join_path(model%output_directory,model%package_name,object_file)//'.o'
162-
163-
end select
149+
object_file = join_path(model%output_directory,model%package_name,object_file)//'.o'
164150

165151
end function get_object_name
166152

0 commit comments

Comments
 (0)