@@ -53,6 +53,11 @@ function _find_package(dpkg, name, opt)
53
53
result .links = result .links or {}
54
54
result .linkdirs = result .linkdirs or {}
55
55
result .libfiles = result .libfiles or {}
56
+ if line :endswith (" .a" ) then
57
+ result .static = true
58
+ else
59
+ result .shared = true
60
+ end
56
61
table.insert (result .linkdirs , path .directory (line ))
57
62
table.insert (result .links , target .linkname (path .filename (line ), {plat = opt .plat }))
58
63
table.insert (result .libfiles , path .join (path .directory (line ), path .filename (line )))
@@ -62,7 +67,7 @@ function _find_package(dpkg, name, opt)
62
67
63
68
-- we iterate over each pkgconfig file to extract the required data
64
69
local foundpc = false
65
- local pcresult = {includedirs = {}, linkdirs = {}, links = {}}
70
+ local pcresult = {includedirs = {}, linkdirs = {}, links = {}, libfiles = {} }
66
71
for _ , pkgconfig_file in ipairs (pkgconfig_files ) do
67
72
local pkgconfig_dir = path .directory (pkgconfig_file )
68
73
local pkgconfig_name = path .basename (pkgconfig_file )
@@ -79,6 +84,13 @@ function _find_package(dpkg, name, opt)
79
84
for _ , link in ipairs (pcinfo .links ) do
80
85
table.insert (pcresult .links , link )
81
86
end
87
+ if not result or not result .libfiles then
88
+ for _ , libfile in ipairs (pcinfo .libfiles ) do
89
+ table.insert (pcresult .libfiles , libfile )
90
+ end
91
+ pcresult .static = pcinfo .static
92
+ pcresult .shared = pcinfo .shared
93
+ end
82
94
-- version should be the same if a pacman package contains multiples .pc
83
95
pcresult .version = pcinfo .version
84
96
foundpc = true
@@ -87,6 +99,7 @@ function _find_package(dpkg, name, opt)
87
99
if foundpc == true then
88
100
pcresult .includedirs = table .unique (pcresult .includedirs )
89
101
pcresult .linkdirs = table .unique (pcresult .linkdirs )
102
+ pcresult .libfiles = table .unique (pcresult .libfiles )
90
103
pcresult .links = table .reverse_unique (pcresult .links )
91
104
result = pcresult
92
105
end
@@ -109,16 +122,30 @@ function _find_package(dpkg, name, opt)
109
122
end
110
123
end
111
124
112
- -- remove repeat
113
125
if result then
114
126
if result .links then
115
127
result .links = table .unique (result .links )
128
+ if # result .links == 0 then
129
+ result .links = nil
130
+ end
116
131
end
117
132
if result .linkdirs then
118
133
result .linkdirs = table .unique (result .linkdirs )
134
+ if # result .linkdirs == 0 then
135
+ result .linkdirs = nil
136
+ end
119
137
end
120
138
if result .includedirs then
121
139
result .includedirs = table .unique (result .includedirs )
140
+ if # result .includedirs == 0 then
141
+ result .includedirs = nil
142
+ end
143
+ end
144
+ if result .libfiles then
145
+ result .libfiles = table .unique (result .libfiles )
146
+ if # result .libfiles == 0 then
147
+ result .libfiles = nil
148
+ end
122
149
end
123
150
end
124
151
return result
0 commit comments