[gtk+] MSVC builds: Make the GSK project functional



commit 874b0daea2e97f685898d8624990034f6f59bbb0
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Thu Oct 27 14:13:42 2016 +0800

    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.

 build/win32/vs12/gsk-4.vcxproj.filtersin  |   16 ++---------
 build/win32/vs12/gsk-4.vcxprojin          |   42 ++++++++++++++++++++---------
 build/win32/vs12/gtk4-build-defines.props |    7 +++--
 build/win32/vs12/gtk4-gen-srcs.props      |   18 ++++++++++++
 4 files changed, 54 insertions(+), 29 deletions(-)
---
diff --git a/build/win32/vs12/gsk-4.vcxproj.filtersin b/build/win32/vs12/gsk-4.vcxproj.filtersin
index 7250315..6b1f1c3 100755
--- a/build/win32/vs12/gsk-4.vcxproj.filtersin
+++ b/build/win32/vs12/gsk-4.vcxproj.filtersin
@@ -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>
diff --git a/build/win32/vs12/gsk-4.vcxprojin b/build/win32/vs12/gsk-4.vcxprojin
index 9d18664..a4bfca6 100755
--- a/build/win32/vs12/gsk-4.vcxprojin
+++ b/build/win32/vs12/gsk-4.vcxprojin
@@ -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">
diff --git a/build/win32/vs12/gtk4-build-defines.props b/build/win32/vs12/gtk4-build-defines.props
index f618190..4a11f4a 100644
--- a/build/win32/vs12/gtk4-build-defines.props
+++ b/build/win32/vs12/gtk4-build-defines.props
@@ -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>
diff --git a/build/win32/vs12/gtk4-gen-srcs.props b/build/win32/vs12/gtk4-gen-srcs.props
index 587bc1c..5aeaab1 100644
--- a/build/win32/vs12/gtk4-gen-srcs.props
+++ b/build/win32/vs12/gtk4-gen-srcs.props
@@ -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>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]