MSVC builds: Make the GSK project functional

Add the needed custom build steps to generate the GResource and
enumeration sources that is needed for the build, and make sure that the
build is able to find the Graphene headers and lib.

Also add the necessary CFLAGS needed for building GSK.
This commit is contained in:
Chun-wei Fan
2016-10-27 14:13:42 +08:00
parent 80ff8d6d89
commit 874b0daea2
4 changed files with 54 additions and 29 deletions

View File

@@ -15,20 +15,10 @@
</Filter>
</ItemGroup>
<ItemGroup>
<CustomBuild Include="..\..\..\gsk\gskenumtypes.c.template"><Filter>Resource Files</Filter></CustomBuild>
<CustomBuild Include="..\..\..\gsk\gsk.gresource.xml"><Filter>Resource Files</Filter></CustomBuild>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\gsk\gskrenderer.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\gsk\gskrendernode.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\gsk\gskrendernodeiter.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\gsk\gskcairorenderer.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\gsk\gskdebug.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\gsk\gskgldriver.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\gsk\gskglprofiler.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\gsk\gskglrenderer.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\gsk\gskprivate.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\gsk\gskprofiler.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\gsk\gskshaderbuilder.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\gsk\gskenumtypes.c"><Filter>Source Files</Filter></ClCompile>
<ClCompile Include="..\..\..\gsk\gskresources.c"><Filter>Source Files</Filter></ClCompile>
#include "gsk-4.vs12.sourcefiles.filters"
</ItemGroup>
</Project>

View File

@@ -163,21 +163,37 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<CustomBuild Include="..\..\..\gsk\gskenumtypes.c.template">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating GSK enumeration sources...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenGSKEnumSrcs)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\gsk\gskenumtypes.h;..\..\..\gsk\gskenumtypes.c;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generating GSK enumeration sources...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenGSKEnumSrcs)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\gsk\gskenumtypes.h;..\..\..\gsk\gskenumtypes.c;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating GSK enumeration sources...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenGSKEnumSrcs)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\gsk\gskenumtypes.h;..\..\..\gsk\gskenumtypes.c;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating GSK enumeration sources...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenGSKEnumSrcs)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\gsk\gskenumtypes.h;..\..\..\gsk\gskenumtypes.c;%(Outputs)</Outputs>
</CustomBuild>
<CustomBuild Include="..\..\..\gsk\gsk.gresource.xml">
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating GSK resource sources...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenGSKRsrcSrcs)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\gsk\gskresources.h;..\..\..\gsk\gskresources.c;..\..\..\gsk\gsk.gresource.xml;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generating GSK resource sources...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenGSKRsrcSrcs)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\gsk\gskresources.h;..\..\..\gsk\gskresources.c;..\..\..\gsk\gsk.gresource.xml;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating GSK resource sources...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenGSKRsrcSrcs)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\gsk\gskresources.h;..\..\..\gsk\gskresources.c;..\..\..\gsk\gsk.gresource.xml;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating GSK resource sources...</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenGSKRsrcSrcs)</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\gsk\gskresources.h;..\..\..\gsk\gskresources.c;..\..\..\gsk\gsk.gresource.xml;%(Outputs)</Outputs>
</CustomBuild>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\gsk\gskrenderer.c" />
<ClCompile Include="..\..\..\gsk\gskrendernode.c" />
<ClCompile Include="..\..\..\gsk\gskrendernodeiter.c" />
<ClCompile Include="..\..\..\gsk\gskcairorenderer.c" />
<ClCompile Include="..\..\..\gsk\gskdebug.c" />
<ClCompile Include="..\..\..\gsk\gskgldriver.c" />
<ClCompile Include="..\..\..\gsk\gskglprofiler.c" />
<ClCompile Include="..\..\..\gsk\gskglrenderer.c" />
<ClCompile Include="..\..\..\gsk\gskprivate.c" />
<ClCompile Include="..\..\..\gsk\gskprofiler.c" />
<ClCompile Include="..\..\..\gsk\gskshaderbuilder.c" />
<ClCompile Include="..\..\..\gsk\gskenumtypes.c" />
<ClCompile Include="..\..\..\gsk\gskresources.c" />
#include "gsk-4.vs12.sourcefiles"
</ItemGroup>
<ItemGroup>
<ProjectReference Include="gdk-4.vcxproj">

View File

@@ -7,7 +7,8 @@
<GtkBinaryVersion>4.0.0</GtkBinaryVersion>
<GtkDummyPrefix>/dummy</GtkDummyPrefix>
<GtkPrefixDefine>GTK_PREFIX=\"$(GtkDummyPrefix)\"</GtkPrefixDefine>
<GdkDefines>GDK_COMPILATION;G_LOG_DOMAIN="Gdk"</GdkDefines>
<GdkDefines>GDK_COMPILATION;G_LOG_USE_STRUCTURED=1;G_LOG_DOMAIN="Gdk"</GdkDefines>
<GskDefines>GSK_COMPILATION;G_LOG_USE_STRUCTURED=1;G_LOG_DOMAIN="Gsk"</GskDefines>
<GtkIncludedImmodulesDefines>INCLUDE_IM_am_et;INCLUDE_IM_cedilla;INCLUDE_IM_cyrillic_translit;INCLUDE_IM_ime;INCLUDE_IM_inuktitut;INCLUDE_IM_ipa;INCLUDE_IM_multipress;INCLUDE_IM_thai;INCLUDE_IM_ti_er;INCLUDE_IM_ti_et;INCLUDE_IM_viqr</GtkIncludedImmodulesDefines>
<GtkDefines>GTK_COMPILATION;G_LOG_DOMAIN="Gtk";GTK_HOST="i686-pc-vs$(VSVer)";GTK_PRINT_BACKENDS="file";GTK_PRINT_BACKEND_ENABLE_UNSUPPORTED;$(GtkIncludedImmodulesDefines);GTK_LIBDIR="$(GtkDummyPrefix)/lib";GTK_DATADIR="$(GtkDummyPrefix)/share";GTK_DATA_PREFIX="$(GtkDummyPrefix)";GTK_SYSCONFDIR="$(GtkDummyPrefix)/etc";MULTIPRESS_CONFDIR="$(GtkDummyPrefix)/etc/gtk-$(ApiVersion)";MULTIPRESS_LOCALEDIR="$(GtkDummyPrefix)/share/locale";GTK_VERSION="$(GtkVersion)/etc";GTK_BINARY_VERSION="$(GtkBinaryVersion)/etc";GDK_DISABLE_DEPRECATED;ISOLATION_AWARE_ENABLED</GtkDefines>
<GtkGdkCommonLibs>imm32.lib</GtkGdkCommonLibs>
@@ -22,14 +23,14 @@
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>..\..\..;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\gio-win32-2.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>..\..\..;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\graphene-1.0;$(GlibEtcInstallRoot)\lib\graphene-1.0\include;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\gio-win32-2.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>HAVE_CONFIG_H;G_DISABLE_SINGLE_INCLUDES;ATK_DISABLE_SINGLE_INCLUDES;GDK_PIXBUF_DISABLE_SINGLE_INCLUDES;GTK_DISABLE_SINGLE_INCLUDES;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<AdditionalOptions>/d2Zi+ %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<AdditionalDependencies>pangocairo-1.0.lib;cairo.lib;cairo-gobject.lib;pango-1.0.lib;gdk_pixbuf-2.0.lib;gio-2.0.lib;gmodule-2.0.lib;gobject-2.0.lib;glib-2.0.lib;intl.lib;epoxy.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>pangocairo-1.0.lib;cairo.lib;cairo-gobject.lib;pango-1.0.lib;gdk_pixbuf-2.0.lib;graphene-1.0.lib;gio-2.0.lib;gmodule-2.0.lib;gobject-2.0.lib;glib-2.0.lib;intl.lib;epoxy.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>

View File

@@ -44,6 +44,18 @@ echo $(Configuration) &gt; ..\..\..\MSVC_$(Configuration)_Broadway
<CopyGtkWin32RC>copy ..\..\..\gtk\gtk-win32.rc.body ..\..\..\gtk\gtk-win32.rc</CopyGtkWin32RC>
<GenerateGtkWin32Manifest>$(PythonPath)\python ..\replace.py --action=replace-var --input=..\..\..\gtk\libgtk4.manifest.in --output=..\..\..\gtk\libgtk4.manifest --var=EXE_MANIFEST_ARCHITECTURE --outstring=*</GenerateGtkWin32Manifest>
<CopyDemosH>copy ..\..\..\demos\gtk-demo\demos.h.win32 ..\..\..\demos\gtk-demo\demos.h</CopyDemosH>
<GenGSKEnumSrcs>(cd ..) &amp; (call gen-enums.bat $(GlibEtcInstallRoot)) &amp; (cd $(SolutionDir))</GenGSKEnumSrcs>
<GenGSKRsrcSrcs>
echo ^&lt;?xml version='1.0' encoding='UTF-8'?^&gt; &gt; ..\..\..\gsk\gsk.gresource.xml
echo ^&lt;gresources^&gt; &gt;&gt; ..\..\..\gsk\gsk.gresource.xml
echo ^&lt;gresource prefix='/org/gtk/libgsk'^&gt; &gt;&gt; ..\..\..\gsk\gsk.gresource.xml
for /f &#37;&#37;f in ('dir /b ..\..\..\gsk\resources\glsl\*') do echo ^&lt;file alias='glsl/&#37;&#37;f'^&gt;resources/glsl/&#37;&#37;f^&lt;/file^&gt; &gt;&gt; ..\..\..\gsk\gsk.gresource.xml
echo ^&lt;/gresource^&gt; &gt;&gt; ..\..\..\gsk\gsk.gresource.xml
echo ^&lt;/gresources^&gt; &gt;&gt; ..\..\..\gsk\gsk.gresource.xml
$(GlibEtcInstallRoot)\bin\glib-compile-resources.exe --sourcedir=..\..\..\gsk --c-name _gsk --generate-header --manual-register --target=..\..\..\gsk\gskresources.h ..\..\..\gsk\gsk.gresource.xml
$(GlibEtcInstallRoot)\bin\glib-compile-resources.exe --sourcedir=..\..\..\gsk --c-name _gsk --generate-source --manual-register --target=..\..\..\gsk\gskresources.c ..\..\..\gsk\gsk.gresource.xml
</GenGSKRsrcSrcs>
</PropertyGroup>
<PropertyGroup>
<_PropertySheetDisplayName>gtk4gensrcsprops</_PropertySheetDisplayName>
@@ -76,5 +88,11 @@ echo $(Configuration) &gt; ..\..\..\MSVC_$(Configuration)_Broadway
<BuildMacro Include="CopyDemosH">
<Value>$(CopyDemosH)</Value>
</BuildMacro>
<BuildMacro Include="GenGSKEnumSrcs">
<Value>$(GenGSKEnumSrcs)</Value>
</BuildMacro>
<BuildMacro Include="GenGSKRsrcSrcs">
<Value>$(GenGSKRsrcSrcs)</Value>
</BuildMacro>
</ItemGroup>
</Project>