Skip to content

Commit fc2d652

Browse files
committed
Generalize obj file name collision detection.
1 parent 4c7fc50 commit fc2d652

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

templates/gsl.vcxproj

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -102,38 +102,42 @@ endfunction
102102
###
103103
### generic assistance functions
104104
###
105-
function match_name(element, name)
106-
define my.element = match_name.element
107-
return defined(my.element) & (my.element.name = my.name)
105+
function match_element_name(alpha, beta)
106+
define my.alpha = match_element_name.alpha
107+
define my.beta = match_element_name.beta
108+
return defined(my.alpha) & defined(my.beta) & (object_base_from_element(my.alpha) = object_base_from_element(my.beta))
108109
endfunction
109110

110-
function exists_collision(root, name)
111+
function exists_collision(root, element)
111112
define my.root = exists_collision.root
112-
return count(my.root.collision, match_name(count, my.name)) > 0
113+
define my.element = exists_collision.element
114+
return count(my.root.collision, match_element_name(count, my.element)) > 0
113115
endfunction
114116

115-
function add_collision(root, name)
117+
function add_collision(root, element)
116118
define my.root = add_collision.root
117-
if (defined(my.root) & !exists_collision(my.root, my.name))
119+
define my.element = add_collision.element
120+
if (defined(my.root) & !exists_collision(my.root, my.element))
118121
new my.root.collision as _collision
119-
_collision.name = my.name
122+
_collision.name = my.element.name
120123
endnew
121124
endif
122125
return my.root
123126
endfunction
124127

125-
function collides_file_name(root, name)
128+
function collides_file_name(root, element)
126129
define my.root = collides_file_name.root
127-
return count(my.root.file, match_name(count, my.name)) > 1
130+
define my.element = collides_file_name.element
131+
return count(my.root.file, match_element_name(count, my.element)) > 1
128132
endfunction
129133

130134
function populate_collisions(collisions, file_data)
131135
define my.collisions = populate_collisions.collisions
132136
define my.file_data = populate_collisions.file_data
133137

134138
for my.file_data.file as _file
135-
if (collides_file_name(my.file_data, _file.name))
136-
add_collision(my.collisions, _file.name)
139+
if (collides_file_name(my.file_data, _file))
140+
add_collision(my.collisions, _file)
137141
endif
138142
endfor
139143
endfunction
@@ -798,7 +802,7 @@ endfunction emit_project
798802
. define my.collisions = emit_compile_item.collisions
799803
. define my.file_record = emit_compile_item.file_record
800804
.
801-
. if (!exists_collision(my.collisions, my.file_record.name))
805+
. if (!exists_collision(my.collisions, my.file_record))
802806
. emit_file_record_item("ClCompile", my.file_record)
803807
. else
804808
. emit_item_with_object("ClCompile", my.file_record)

0 commit comments

Comments
 (0)