From 8e5f8440a69668a70decf3aac8dd9222d44412ab Mon Sep 17 00:00:00 2001 From: Chun-wei Fan Date: Tue, 1 Jul 2014 16:39:32 +0800 Subject: [PATCH] Build: Provide Simple Support for MSVC 2012/2013 As the Visual Studio 2012/2013 are only slightly different from the Visual Studio 2010 projects, we can provide support for them by using scripts to copy the Visual Studio 2010 projects, and update the specific parts as necessary. This is being provided to help people still needing GTK+-2.x and also to help them to transition to GTK+-3.x easier. Thus, there would be little maintenance overhead for these as only the 2010 projects need to be kept up-to-date as a result. This might change when we do get the stack working with WinRT/Metro, but that's going to be another totally different issue. --- build/Makefile-newvs.am | 37 ++++++++++++++++++++++++++++++++++++ build/win32/Makefile.am | 8 +++++--- build/win32/vs11/Makefile.am | 32 +++++++++++++++++++++++++++++++ build/win32/vs12/Makefile.am | 32 +++++++++++++++++++++++++++++++ configure.ac | 2 ++ 5 files changed, 108 insertions(+), 3 deletions(-) create mode 100644 build/Makefile-newvs.am create mode 100644 build/win32/vs11/Makefile.am create mode 100644 build/win32/vs12/Makefile.am diff --git a/build/Makefile-newvs.am b/build/Makefile-newvs.am new file mode 100644 index 000000000..e63b15f76 --- /dev/null +++ b/build/Makefile-newvs.am @@ -0,0 +1,37 @@ +# Centralized autotools file +# Create the Visual Studio 2012/2013 project files +# from the Visual Studio 2010 project files + +# Author: Fan, Chun-wei +# November 05, 2012 + +# MSVC_SLN: name of root project + +MSVC_FORMAT_VER=$(shell echo $$(expr $(MSVC_VER) + 1)) + +$(MSVC_SLN).sln: $(top_srcdir)/build/win32/vs10/$(MSVC_SLN).sln create_vcxproj copy_filters create_props + cat $(top_srcdir)/build/win32/vs10/$(MSVC_SLN).sln | sed 's/11\.00/$(MSVC_FORMAT_VER)\.00/g' | sed 's/2010/$(MSVC_VER_LONG)/g' > $(top_builddir)/build/win32/vs$(MSVC_VER)/$(MSVC_SLN).sln + +README.txt: $(top_srcdir)/build/win32/vs10/README.txt + cat $(top_srcdir)/build/win32/vs10/README.txt | sed 's/vs10/vs$(MSVC_VER)/g' | sed 's/VS10/VS$(MSVC_VER)/g' > $(top_builddir)/build/win32/vs$(MSVC_VER)/README.txt + +create_vcxproj: + for F in `(cd $(top_builddir)/build/win32/vs10 && ls *.vcxproj)`; do \ + case $$F in \ + *) cat $(top_builddir)/build/win32/vs10/$$F | sed 's/v100/v$(MSVC_VER)0/g' > $(top_builddir)/build/win32/vs$(MSVC_VER)/$$F \ + ;; \ + esac; \ + done + +create_props: + for F in `(cd $(top_builddir)/build/win32/vs10 && ls *.props)`; do \ + case $$F in \ + *) cat $(top_builddir)/build/win32/vs10/$$F | sed 's/10<\/VSVer>/$(MSVC_VER)<\/VSVer>/g' > $(top_builddir)/build/win32/vs$(MSVC_VER)/$$F \ + ;; \ + esac; \ + done + +copy_filters: + cp $(top_srcdir)/build/win32/vs10/*.vcxproj.filters $(top_builddir)/build/win32/vs$(MSVC_VER)/ + + diff --git a/build/win32/Makefile.am b/build/win32/Makefile.am index 3cacc4f38..38f611c24 100644 --- a/build/win32/Makefile.am +++ b/build/win32/Makefile.am @@ -1,5 +1,7 @@ include $(top_srcdir)/Makefile.decl -SUBDIRS = \ - vs9 \ - vs10 +SUBDIRS = \ + vs9 \ + vs10 \ + vs11 \ + vs12 diff --git a/build/win32/vs11/Makefile.am b/build/win32/vs11/Makefile.am new file mode 100644 index 000000000..57a46dd7a --- /dev/null +++ b/build/win32/vs11/Makefile.am @@ -0,0 +1,32 @@ +include $(top_srcdir)/Makefile.decl + +EXTRA_DIST += \ + README.txt \ + gtk+.sln \ + gtk-build-defines.props \ + gtk-gen-srcs.props \ + gtk-install.props \ + gtk-version-paths.props \ + gdk-win32.vcxproj \ + gdk-win32.vcxproj.filters \ + gdk.vcxproj \ + gdk.vcxproj.filters \ + gtk.vcxproj \ + gtk.vcxproj.filters \ + gtk-demo.vcxproj \ + gtk-demo.vcxproj.filters \ + gailutil.vcxproj \ + gailutil.vcxproj.filters \ + libwimp.vcxproj \ + libwimp.vcxproj.filters \ + install.vcxproj + +DISTCLEANFILES = $(EXTRA_DIST) + +MSVC_SLN = gtk+ + +MSVC_VER = 11 + +MSVC_VER_LONG = 2012 + +include $(top_srcdir)/build/Makefile-newvs.am diff --git a/build/win32/vs12/Makefile.am b/build/win32/vs12/Makefile.am new file mode 100644 index 000000000..c572ece5a --- /dev/null +++ b/build/win32/vs12/Makefile.am @@ -0,0 +1,32 @@ +include $(top_srcdir)/Makefile.decl + +EXTRA_DIST += \ + README.txt \ + gtk+.sln \ + gtk-build-defines.props \ + gtk-gen-srcs.props \ + gtk-install.props \ + gtk-version-paths.props \ + gdk-win32.vcxproj \ + gdk-win32.vcxproj.filters \ + gdk.vcxproj \ + gdk.vcxproj.filters \ + gtk.vcxproj \ + gtk.vcxproj.filters \ + gtk-demo.vcxproj \ + gtk-demo.vcxproj.filters \ + gailutil.vcxproj \ + gailutil.vcxproj.filters \ + libwimp.vcxproj \ + libwimp.vcxproj.filters \ + install.vcxproj + +DISTCLEANFILES = $(EXTRA_DIST) + +MSVC_SLN = gtk+ + +MSVC_VER = 12 + +MSVC_VER_LONG = 2013 + +include $(top_srcdir)/build/Makefile-newvs.am diff --git a/configure.ac b/configure.ac index 9ebda4f54..be3cf4c79 100644 --- a/configure.ac +++ b/configure.ac @@ -1741,6 +1741,8 @@ build/Makefile build/win32/Makefile build/win32/vs9/Makefile build/win32/vs10/Makefile +build/win32/vs11/Makefile +build/win32/vs12/Makefile gdk/Makefile gdk/x11/Makefile gdk/win32/Makefile