@@ -41,6 +41,8 @@ function _patch_pkgconfig(package)
4141 return
4242 end
4343
44+ local installdir = path .unix (path .normalize (package :installdir ()))
45+
4446 -- get lib/pkgconfig/*.pc or share/pkgconfig/*.pc file
4547 local libpkgconfigdir = path .join (package :installdir (), " lib" , " pkgconfig" )
4648 local sharepkgconfigdir = path .join (package :installdir (), " share" , " pkgconfig" )
@@ -62,10 +64,10 @@ function _patch_pkgconfig(package)
6264
6365 -- get libs
6466 local libs = " "
65- local installdir = package : installdir ( )
67+ local base_libdir = path . join ( installdir , " lib " )
6668 for _ , linkdir in ipairs (fetchinfo .linkdirs ) do
67- if linkdir ~= path . join ( installdir , " lib " ) then
68- libs = libs .. " -L" .. ( linkdir : gsub ( " \\ " , " / " ))
69+ if linkdir ~= base_libdir then
70+ libs = libs .. " -L" .. " ${libdir}/ " .. path . unix ( path . relative ( linkdir , base_libdir ))
6971 end
7072 end
7173 libs = libs .. " -L${libdir}"
@@ -78,9 +80,10 @@ function _patch_pkgconfig(package)
7880
7981 -- cflags
8082 local cflags = " "
83+ local base_includedir = path .join (installdir , " include" )
8184 for _ , includedir in ipairs (fetchinfo .includedirs or fetchinfo .sysincludedirs ) do
82- if includedir ~= path . join ( installdir , " include " ) then
83- cflags = cflags .. " -I" .. ( includedir : gsub ( " \\ " , " / " ))
85+ if includedir ~= base_includedir then
86+ cflags = cflags .. " -I" .. " ${ includedir}/ " .. path . unix ( path . relative ( includedir , base_includedir ))
8487 end
8588 end
8689 cflags = cflags .. " -I${includedir}"
@@ -92,7 +95,7 @@ function _patch_pkgconfig(package)
9295 local file = io.open (pcfile , ' w' )
9396 if file then
9497 file :print (" # Generated by Xmake" )
95- file :print (" prefix=%s" , installdir : gsub ( " \\ " , " / " ))
98+ file :print (" prefix=%s" , " ${pcfiledir}/ " .. path . unix ( path . relative ( installdir , path . directory ( pcfile )) ))
9699 file :print (" exec_prefix=${prefix}" )
97100 file :print (" libdir=${exec_prefix}/lib" )
98101 file :print (" includedir=${prefix}/include" )
0 commit comments