diff --git a/vlib/v/pkgconfig/pkgconfig.v b/vlib/v/pkgconfig/pkgconfig.v index e0c597f8a6..c525a2c2b1 100644 --- a/vlib/v/pkgconfig/pkgconfig.v +++ b/vlib/v/pkgconfig/pkgconfig.v @@ -42,6 +42,10 @@ pub mut: conflicts []string } +fn (mut pc PkgConfig) parse_list_no_comma(s string) []string { + return pc.parse_list( s.replace(',', ' ') ) +} + fn (mut pc PkgConfig) parse_list(s string) []string { operators := ['=', '<', '>', '>=', '<='] r := pc.parse_line(s.replace(' ', ' ').replace(', ', ' ')).split(' ') @@ -110,11 +114,11 @@ fn (mut pc PkgConfig) parse(file string) bool { } else if line.starts_with('Version:') { pc.version = pc.parse_line(line[8..]) } else if line.starts_with('Requires:') { - pc.requires = pc.parse_list(line[9..]) + pc.requires = pc.parse_list_no_comma(line[9..]) } else if line.starts_with('Requires.private:') { - pc.requires_private = pc.parse_list(line[17..]) + pc.requires_private = pc.parse_list_no_comma(line[17..]) } else if line.starts_with('Conflicts:') { - pc.conflicts = pc.parse_list(line[10..]) + pc.conflicts = pc.parse_list_no_comma(line[10..]) } else if line.starts_with('Cflags:') { pc.cflags = pc.parse_list(line[7..]) } else if line.starts_with('Libs:') { diff --git a/vlib/v/pkgconfig/test_samples/gio-2.0.pc b/vlib/v/pkgconfig/test_samples/gio-2.0.pc new file mode 100644 index 0000000000..79ea78078b --- /dev/null +++ b/vlib/v/pkgconfig/test_samples/gio-2.0.pc @@ -0,0 +1,25 @@ +prefix=/usr +libdir=${prefix}/lib/x86_64-linux-gnu +includedir=${prefix}/include + +datadir=${prefix}/share +schemasdir=${datadir}/glib-2.0/schemas +bindir=${prefix}/bin +giomoduledir=${libdir}/gio/modules +gio=${bindir}/gio +gio_querymodules=${bindir}/gio-querymodules +glib_compile_schemas=${libdir}/glib-2.0/glib-compile-schemas +glib_compile_resources=${bindir}/glib-compile-resources +gdbus=${bindir}/gdbus +gdbus_codegen=${bindir}/gdbus-codegen +gresource=${bindir}/gresource +gsettings=${bindir}/gsettings + +Name: GIO +Description: glib I/O library +Version: 2.64.3 +Requires: glib-2.0,gobject-2.0 +Requires.private: gmodule-no-export-2.0, zlib +Libs: -L${libdir} -lgio-2.0 +Libs.private: -ldl -pthread -lresolv +Cflags: -I${includedir} diff --git a/vlib/v/pkgconfig/test_samples/gio-unix-2.0.pc b/vlib/v/pkgconfig/test_samples/gio-unix-2.0.pc new file mode 100644 index 0000000000..a05a4a71aa --- /dev/null +++ b/vlib/v/pkgconfig/test_samples/gio-unix-2.0.pc @@ -0,0 +1,9 @@ +prefix=/usr +libdir=${prefix}/lib/x86_64-linux-gnu +includedir=${prefix}/include + +Name: GIO unix specific APIs +Description: unix specific headers for glib I/O library +Version: 2.64.3 +Requires: gobject-2.0, gio-2.0 +Cflags: -I${includedir}/gio-unix-2.0 diff --git a/vlib/v/pkgconfig/test_samples/zlib.pc b/vlib/v/pkgconfig/test_samples/zlib.pc new file mode 100644 index 0000000000..b667f4ce06 --- /dev/null +++ b/vlib/v/pkgconfig/test_samples/zlib.pc @@ -0,0 +1,13 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${prefix}/lib/x86_64-linux-gnu +sharedlibdir=${libdir} +includedir=${prefix}/include + +Name: zlib +Description: zlib compression library +Version: 1.2.11 + +Requires: +Libs: -L${libdir} -L${sharedlibdir} -lz +Cflags: -I${includedir}