MSVC builds: Add scripts to generate .pc files

Add a generic script, pc_base.py, which can be utilized to obtain path
info, along with user-input version info, which can be used to generate
pkg-config .pc files.  Also enhance replace.py a bit so that it can also
be used in the future to replace multiple items in a file in one shot.
This is done to make building introspection files easier, as it depends
much on the pkg-config .pc files to work.

Update the project files so that when Python is available, we can generate
the full, usable .pc files when we complete and 'install' the builds, and
copy them to appropriate locations so that pkg-config can be set to find
them easily.
This commit is contained in:
Chun-wei Fan
2016-03-10 20:33:35 +08:00
parent fd6ca66c16
commit 374a61f245
13 changed files with 320 additions and 4 deletions

View File

@@ -46,6 +46,7 @@ EXTRA_DIST = \
gdbus.vcxproj \
gdbus.vcxproj.filters \
glib-install.vcxproj \
glib-install.vcxproj.filters \
glib-build-defines.props \
glib-install.propsin \
glib-version-paths.props.in \

View File

@@ -69,12 +69,24 @@ copy $(BinDir)\gmodule-$(ApiVersion).lib $(CopyDir)\lib
copy $(BinDir)\gobject-$(ApiVersion).lib $(CopyDir)\lib
copy $(BinDir)\gio-$(ApiVersion).lib $(CopyDir)\lib
mkdir $(CopyDir)\lib\pkgconfig
copy ..\gio-windows-2.0.pc $(CopyDir)\lib\pkgconfig
copy ..\gio-2.0.pc $(CopyDir)\lib\pkgconfig
copy ..\gobject-2.0.pc $(CopyDir)\lib\pkgconfig
copy ..\gmodule-no-export-2.0.pc $(CopyDir)\lib\pkgconfig
copy ..\gmodule-export-2.0.pc $(CopyDir)\lib\pkgconfig
copy ..\gmodule-2.0.pc $(CopyDir)\lib\pkgconfig
copy ..\gthread-2.0.pc $(CopyDir)\lib\pkgconfig
copy ..\glib-2.0.pc $(CopyDir)\lib\pkgconfig
mkdir $(CopyDir)\share\glib-$(ApiVersion)\schemas
copy ..\..\..\gio\gschema.dtd $(CopyDir)\share\glib-$(ApiVersion)\schemas
mkdir $(CopyDir)\share\glib-$(ApiVersion)\codegen
copy ..\..\..\gio\gdbus-2.0\codegen\*.py $(CopyDir)\share\glib-$(ApiVersion)\codegen
</GlibDoInstall>
<GlibPCFiles>..\gio-windows-2.0.pc;..\gio-2.0.pc;..\gobject-2.0.pc;..\gmodule-no-export-2.0.pc;..\gmodule-export-2.0.pc;..\gmodule-2.0.pc;..\gthread-2.0.pc;..\glib-2.0.pc</GlibPCFiles>
<GlibGenPC>if exist $(PythonPath)\python.exe $(PythonPath)\python.exe ..\glibpc.py --prefix=$(CopyDir) --version=$(GlibVersion)</GlibGenPC>
</PropertyGroup>
<PropertyGroup>
<_PropertySheetDisplayName>glibinstallprops</_PropertySheetDisplayName>
@@ -98,5 +110,11 @@ copy ..\..\..\gio\gdbus-2.0\codegen\*.py $(CopyDir)\share\glib-$(ApiVersion)\cod
<BuildMacro Include="GlibDoInstall">
<Value>$(GlibDoInstall)</Value>
</BuildMacro>
<BuildMacro Include="GlibPCFiles">
<Value>$(GlibPCFiles)</Value>
</BuildMacro>
<BuildMacro Include="GlibGenPC">
<Value>$(GlibGenPC)</Value>
</BuildMacro>
</ItemGroup>
</Project>

View File

@@ -85,17 +85,35 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</ItemDefinitionGroup>
<ItemGroup>
<CustomBuild Include="..\glibpc.py">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating .pc files...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GlibGenPC)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GlibPCFiles);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generating .pc files...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GlibGenPC)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GlibPCFiles);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating .pc files...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GlibGenPC)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GlibPCFiles);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating .pc files...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GlibGenPC)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GlibPCFiles);%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\..\..\config.h.win32">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Installing Build Results...</Message>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GlibPCFiles)</AdditionalInputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GlibDoInstall)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(InstalledDlls);$(InstalledBins);$(InstalledWin32Bins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Installing Build Results...</Message>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GlibPCFiles)</AdditionalInputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GlibDoInstall)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(InstalledDlls);$(InstalledBins);$(InstalledX64Bins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Installing Build Results...</Message>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GlibPCFiles)</AdditionalInputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GlibDoInstall)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(InstalledDlls);$(InstalledBins);$(InstalledWin32Bins);%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Installing Build Results...</Message>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GlibPCFiles)</AdditionalInputs>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GlibDoInstall)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(InstalledDlls);$(InstalledBins);$(InstalledX64Bins);%(Outputs)</Outputs>
</CustomBuild>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\..\config.h.win32"><Filter>Resource Files</Filter></CustomBuild>
<CustomBuild Include="..\glibpc.py"><Filter>Resource Files</Filter></CustomBuild>
</ItemGroup>
</Project>