1. 19 Mar, 2018 1 commit
    • Chun-wei Fan's avatar
      Visual Studio builds: Fix .pc generation · 84ff404a
      Chun-wei Fan authored
      Since the Cairo build files for Visual Studio does not really generate
      the pkg-config files for us, and we stopped making makeshift ones in
      gobject-introspection, stop making the .pc files we generate here refer
      to the Cairo .pc's, and instead make them link directly to
      cairo-gobject.lib and cairo.lib.
      84ff404a
  2. 20 Oct, 2017 1 commit
    • Chun-wei Fan's avatar
      Visual Studio builds: Improve binary security · 9c1a0b80
      Chun-wei Fan authored
      Ensure that the /DYNAMICBASE linker option (which is actually the
      default) is enabled for all of our Visual Studio project builds, as the
      gtk3-demo projects inadvertly disabled it.
      
      Also, for x64 builds on MSVC 2012 or later, enable /HIGHENTROPYVA to
      enhance the security of our binaries as well.
      
      Pointed out by Ignacio Casal Quinteiro.
      9c1a0b80
  3. 29 Aug, 2017 1 commit
  4. 28 Aug, 2017 5 commits
    • Chun-wei Fan's avatar
      build: Fix last commit · 3d4b721e
      Chun-wei Fan authored
      Another pango-1.0.lib was added accidently to the list of .lib files for
      the GTK+ to link to.  Remove that, although it shouldn't really matter.
      3d4b721e
    • Chun-wei Fan's avatar
      build: Integrate introspection builds into MSVC projects · 09b7dc81
      Chun-wei Fan authored
      This is so that it is easier for one building GTK+ with Visual Studio to
      build the introspection files as well in one shot.  Note that this is
      not built by default, so one needs to select the gtk3-introspect
      explicitly to build (and clean up) the introspection files.
      
      For this to work, one needs to ensure the following:
      -A complete build of GObject-Introspection in $(GlibEtcInstallRoot),
       that is built with the same installation of the Python interpretor that
       is used here (see PythonDir and PythonDirX64 in
       gtk3-version-paths.[vsprops|props]).
      -Introspection files for ATK, GDK-Pixbuf and Pango, also in their proper
       locations under $(GlibEtcInstallRoot), which should be built with the
       same G-I installation.
      09b7dc81
    • Chun-wei Fan's avatar
      build: Prepare NMake Makefiles for MSVC project integration · e579245b
      Chun-wei Fan authored
      The build/win32/detectenv-msvc.mak needs to be updated for Visual Studio
      2017, and we ought to add quotes to surround the copy destination path
      for the introspection files, so that we do not bail out in the copy
      process (cmd.exe's copy command does not like '+' in them that are not
      quoted).
      e579245b
    • Chun-wei Fan's avatar
      build: Set PythonDir according to MSVC version in projects · 24fd6151
      Chun-wei Fan authored
      This is to make this more in-line with what is in the G-I projects, so
      that we could use this to build the introspection files for GTK+-3.22.x
      directly from the project files.  This is intended to follow the MSVC
      versions used to build the official CPython Windows binaries, i.e.:
      -3.3.x, 3.4.x: for MSVC 2010, 2012, 2013, which is built with 2010
      -3.5.x, 3.6.x: for 2015 and 2017, which is built with 2015.
      24fd6151
    • Chun-wei Fan's avatar
      build: Use PythonDir in Visual Studio projects · 74ffc85b
      Chun-wei Fan authored
      This is to avoid any confusion with the PYTHONPATH envvar that is used
      by Python for additional locations for looking for modules.
      74ffc85b
  5. 10 May, 2017 1 commit
  6. 17 Feb, 2017 1 commit
    • Chun-wei Fan's avatar
      Visual Studio builds: Support Visual Studio 2017 · c6f0df26
      Chun-wei Fan authored
      Update the autotools scripts so that we can support Visual Studio 2017
      by copying the 2010 projects and updating items as needed to obtain
      the 2017 projects.
      
      Note that since the toolset version string changed for Visual Studio
      2017, so allow the use of a custom toolset version string, otherwise
      just generate the toolset version string as we did before.
      
      Also, note that Visual Studio 2017 aims to be compatible with 2015
      on the CRT level, so there should not be any problems using 2017-compiled
      binaries with 2015-compiled ones.
      c6f0df26
  7. 16 Nov, 2016 1 commit
    • Chun-wei Fan's avatar
      Visual Studio builds: Fix Broadway builds · 25fd5710
      Chun-wei Fan authored
      After building GDK with broadway, we need to copy the GDK DLL from
      [Release|Debug]_Broadway\bin to [Release|Debug]\bin, so that the
      introspection builds can be done normally with CFG=[Release|Debug].  As we
      renamed the projects, we needed to update the property sheets that does
      the copying, which was accidently missed.  Fix that.
      25fd5710
  8. 14 Nov, 2016 1 commit
    • Chun-wei Fan's avatar
      Visual Studio builds: Fix .pc generation · a820acee
      Chun-wei Fan authored
      We want to look for the gdk-pixbuf-2.0 package, and we should leave a space
      between -ldwmapi and -lzlib1 when we enable Broadway.
      
      Also copy the generated gdk-3.0.pc and gtk+-3.0.pc as gdk-win32-3.0.pc and
      gtk+-win32-3.0.pc respectively, to be in-line with the autotools builds.
      a820acee
  9. 02 Nov, 2016 1 commit
  10. 27 Oct, 2016 2 commits
  11. 19 Oct, 2016 1 commit
  12. 22 Jun, 2016 1 commit
  13. 10 May, 2016 1 commit
  14. 09 May, 2016 1 commit
  15. 26 Apr, 2016 1 commit
    • Chun-wei Fan's avatar
      Visual Studio builds: Generate .pc files · 71bb1beb
      Chun-wei Fan authored
      Generate .pc files for the package, so that it would be easier for
      building introspection for packages that depend on GTK+.  Also split
      PythonPath into PythonPath and PythonPathX64 to facilitate the build of
      introspection files, which need to have Python that is built with the
      same ac=rchitecture where GTK+ is built.
      
      Clean up the formatting and spacing a bit.
      71bb1beb
  16. 19 Apr, 2016 1 commit
    • Chun-wei Fan's avatar
      MSVC builds: Update how introspection builds are done · 9a87b6be
      Chun-wei Fan authored
      This first adds a common autotools module that can be included by
      the Makefile.am's to generate the file lists and the g-ir-scanner/
      g-ir-compiler command lines to build the introspection files.
      
      The autotools files for gdk/ and gtk/ are then updated to generate
      the full file lists needed to build the introspection files, with
      the full command lines for g-ir-scanner and g-ir-compiler as NMake
      Makefile modules that can be used to build the introspection files
      for Visual Studio builds.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=765195
      9a87b6be
  17. 02 Mar, 2016 2 commits
    • Chun-wei Fan's avatar
      MSVC build: Drop crypt implementation for MSVC · ea8873da
      Chun-wei Fan authored
      We are actually not using the crypt() in GDK-Broadway for quite a while,
      so the code implementation for MSVC is actually not used.  So, it's time
      to get rid of this.
      ea8873da
    • Chun-wei Fan's avatar
      MSVC builds: Re-arrange include paths · e15ab84e
      Chun-wei Fan authored
      Search also for the headers in include/gio-win32-2.0, as gio.h will
      include those headers at some point, and arrange the include paths in a
      dependency hierarchy style, top-to-down.
      e15ab84e
  18. 22 Feb, 2016 2 commits
    • Chun-wei Fan's avatar
      MSVC 2008 builds: Fix previous commit · 07d32687
      Chun-wei Fan authored
      The previous commit had the MSVC 2008 property sheet in the wrong place.
      Fix that.
      07d32687
    • Chun-wei Fan's avatar
      Windows: Update how gtk-win32.rc is generated · 5962daef
      Chun-wei Fan authored
      On Visual Studio, unlike MinGW, manifest files are embedded via
      including the manifest file as a resource file in the projects, not
      via the .rc file.  This means that the line in the .rc file that
      specifies the manifest file would cause trouble, so that line gets
      removed when the full gtk3-win32.rc is generated on Visual Studio builds,
      otherwise 2010+ Visual Studio will complain when compiling the .rc file.
      Also, the inclusion of winuser.h will cause warnings during the
      compilation of the .rc file.
      
      Fix this by isolating the Win32 resource portions of gtk-win32.rc.in to
      gtk-win32.rc.body.in and:
      -On MinGW, construct the full gtk-win32.rc by doing the winver.h and
       winuser.h inclusion first, then append the contents of gtk-win32.rc.body,
       and then appending the line to embed the manifest file.
      -On Visual Studio, simply copy the gtk-win32.rc.body to gtk-win32.rc,
       and generate the full libgtk3.manifest file.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=762311
      5962daef
  19. 06 Jan, 2016 1 commit
  20. 15 Dec, 2015 1 commit
    • Chun-wei Fan's avatar
      MSVC builds: Build more tools in gtk/ · c049581f
      Chun-wei Fan authored
      Build the gtk-update-icon-cache, gtk-builder-tool and gtk-query-settings
      tools and run gtk-update-icon-cache as part of the post-build
      "installation" process.
      
      Pointed out (and reminded) by Paolo Borelli in bug 759436 that we should
      build, "install" and run gtk-update-icon-cache in the MSVC builds as well.
      c049581f
  21. 12 Nov, 2015 2 commits
    • Chun-wei Fan's avatar
      MSVC builds: Use /opt:ref for release builds · dbe430f6
      Chun-wei Fan authored
      glib-compile-resources have been updated to ensure that the symbols
      generated are referred to, so that they will not be optimized out by the
      linker in release builds.  We can change from /opt:noref to /opt:ref,
      which should improve optimization a bit.
      dbe430f6
    • Chun-wei Fan's avatar
      MSVC 2010+ builds: Do not explicitly use /LTCG · 97b44e02
      Chun-wei Fan authored
      This partially reverts de16a4e0.
      
      As we now ensure that items using GResources and GConstructors are always
      referenced so that the linker does not optimize them out in a default
      Release build, we no longer need to enforce the use of /LTCG, so
      /LTCG:incremental will work as well.
      97b44e02
  22. 23 Oct, 2015 1 commit
    • Chun-wei Fan's avatar
      MSVC release builds: Ensure that /LTCG is used · de16a4e0
      Chun-wei Fan authored
      MSVC 2015 changed its default link-time code generation setting to
      /LTCG:incremental, which causes problems if /opt:noref is to be used,
      meaning that some code will be optimized out by the linker.
      
      Avoid this situtation here by enforcing the use of /LTCG for MSVC 2010+
      builds.
      de16a4e0
  23. 12 Oct, 2015 1 commit
    • Chun-wei Fan's avatar
      MSVC builds: Fix "install" · 6f7029bb
      Chun-wei Fan authored
      Use $(GlibEtcInstallRoot) when invoking glib-compile-schemas, as CopyDir
      is not GlibInstallRoot for GTK+ (due to quoting issues), meaning that the
      glib-compile-schemas tool may not be found in certain cases.
      
      Issue pointed out by Ignacio Casal Quinteiro.
      6f7029bb
  24. 03 Oct, 2015 1 commit
  25. 23 Sep, 2015 1 commit
    • Chun-wei Fan's avatar
      build/win32: Fix 'make -jN dist' · 975e1cc4
      Chun-wei Fan authored
      The recent changes to build/win32/vs9|10/Makefile.am fixed 'make distclean'
      but broke 'make -jN dist', so fix that by listing the *.headers and using
      that list as a dependency and to remove those files in one single command
      right after we generate the gtk-install.vsprops template, so that we don't
      have to worry about them in 'make distclean'.
      975e1cc4
  26. 22 Sep, 2015 1 commit
  27. 21 Sep, 2015 1 commit
    • Chun-wei Fan's avatar
      MSVC Builds: Update Project GUIDs · a3ba6f74
      Chun-wei Fan authored
      This updates the Visual Studio Project GUIDs so that they don't repeat with
      the GTK+-2.24.x ones, as the 3.x projects can be used with the 2.24.x in a
      all-in-one solution file (such as when one wants to use a complete GTK+2
      and GTK+3 stack when porting Windows applications from GTK+2 to GTK+3), and
      each project in a solution file is expected to have an unique GUID.
      a3ba6f74
  28. 15 Sep, 2015 5 commits