diff options
-rw-r--r-- | build/Makefile-newvs.am | 30 | ||||
-rw-r--r-- | build/Makefile.msvcproj | 44 | ||||
-rw-r--r-- | build/win32/vs11/Makefile.am | 2 | ||||
-rw-r--r-- | build/win32/vs12/Makefile.am | 2 | ||||
-rw-r--r-- | build/win32/vs14/Makefile.am | 2 |
5 files changed, 64 insertions, 16 deletions
diff --git a/build/Makefile-newvs.am b/build/Makefile-newvs.am index b5e32160..9fd89f95 100644 --- a/build/Makefile-newvs.am +++ b/build/Makefile-newvs.am @@ -9,37 +9,39 @@ # Author: Fan, Chun-wei # November 05, 2012 +# MSVC_BASE_VER: Baseline MSVC 201x version to copy/process project files from (10 for 2010, 11 for 2012, 12 for 2013, 14 for 2015 and so on) +# MSVC_BASE_VER_LONG: Long Version of baseline Visual Studio 201x version (2010, 2012, 2013, 14 and so on) # MSVC_VER_LONG: Long Version of Visual Studio (2012, 2013, 14 and so on) # MSVC_VER: Short Version of Visual Studio (11 for 2012, 12 for 2013, 14 for 2015 and so on) # MSVC_FORMAT_VER: Use 12 for MSVC 2012 through 2015 %.sln: - sed 's/11\.00/$(MSVC_FORMAT_VER)\.00/g' < $(top_srcdir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp - sed 's/2010/$(MSVC_VER_LONG)/g' < $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@ + sed 's/11\.00/$(MSVC_FORMAT_VER)\.00/g' < $(top_srcdir)/build/win32/vs$(MSVC_BASE_VER)/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp + sed 's/$(MSVC_BASE_VER_LONG)/$(MSVC_VER_LONG)/g' < $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@ rm $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp %.txt: - sed 's/vs10/vs$(MSVC_VER)/g' < $(top_srcdir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp - sed 's/VS10/VS$(MSVC_VER)/g' < $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@ + sed 's/vs$(MSVC_BASE_VER)/vs$(MSVC_VER)/g' < $(top_srcdir)/build/win32/vs$(MSVC_BASE_VER)/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp + sed 's/VS$(MSVC_BASE_VER)/VS$(MSVC_VER)/g' < $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@ rm $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp %.vcxproj: - if test -e $(top_srcdir)/build/win32/vs10/$@; then \ - sed 's/v100/v$(MSVC_VER)0/g' < $(top_srcdir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \ + if test -e $(top_srcdir)/build/win32/vs$(MSVC_BASE_VER)/$@; then \ + sed 's/v$(MSVC_BASE_VER)0/v$(MSVC_VER)0/g' < $(top_srcdir)/build/win32/vs$(MSVC_BASE_VER)/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \ else \ - sed 's/v100/v$(MSVC_VER)0/g' < $(top_builddir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \ + sed 's/v$(MSVC_BASE_VER)0/v$(MSVC_VER)0/g' < $(top_builddir)/build/win32/vs$(MSVC_BASE_VER)/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \ fi -%.props: $(top_builddir)/build/win32/vs10/Makefile - if test -e $(top_srcdir)/build/win32/vs10/$@; then \ - sed 's/<VSVer>10<\/VSVer>/<VSVer>$(MSVC_VER)<\/VSVer>/g' < $(top_srcdir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \ +%.props: $(top_builddir)/build/win32/vs$(MSVC_BASE_VER)/Makefile + if test -e $(top_srcdir)/build/win32/vs$(MSVC_BASE_VER)/$@; then \ + sed 's/<VSVer>$(MSVC_BASE_VER)<\/VSVer>/<VSVer>$(MSVC_VER)<\/VSVer>/g' < $(top_srcdir)/build/win32/vs$(MSVC_BASE_VER)/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \ else \ - sed 's/<VSVer>10<\/VSVer>/<VSVer>$(MSVC_VER)<\/VSVer>/g' < $(top_builddir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \ + sed 's/<VSVer>$(MSVC_BASE_VER)<\/VSVer>/<VSVer>$(MSVC_VER)<\/VSVer>/g' < $(top_builddir)/build/win32/vs$(MSVC_BASE_VER)/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \ fi %.vcxproj.filters: - if test -e $(top_srcdir)/build/win32/vs10/$@; then \ - cp $(top_srcdir)/build/win32/vs10/$@ $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \ + if test -e $(top_srcdir)/build/win32/vs$(MSVC_BASE_VER)/$@; then \ + cp $(top_srcdir)/build/win32/vs$(MSVC_BASE_VER)/$@ $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \ else \ - cp $(top_builddir)/build/win32/vs10/$@ $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \ + cp $(top_builddir)/build/win32/vs$(MSVC_BASE_VER)/$@ $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \ fi diff --git a/build/Makefile.msvcproj b/build/Makefile.msvcproj index f127eea5..a4e93a5d 100644 --- a/build/Makefile.msvcproj +++ b/build/Makefile.msvcproj @@ -17,14 +17,19 @@ # MSVCPROJS = YourProject (can be multiple projects in a single srcdir) # YourProject_FILES = $(libyourlib_1_0_SOURCES) # YourProject_EXCLUDES = ... # list of sources to exclude, separated by '|', wildcards allowed; use random unsed value if none +# (the following 3 lines if headers need to be installed) # YourProject_HEADERS_DIR = $(libyourlibincludedir) # YourProject_HEADERS_INST = $(libyourlib_1_0_HEADERS) # YourProject_HEADERS_EXCLUDES = ... # <list of headers to exclude from installation, separated by '|', wildcards allowed; use random unsed value if none> # # dist-hook: \ # (or add to it if it is already there, note the vs9 items will also call the vs10 items in the process) # $(top_builddir)/build/win32/vs9/YourProject.vcproj \ -# $(top_builddir)/build/win32/vs9/YourProject.headers - +# $(top_builddir)/build/win32/vs9/YourProject.headers # if headers need to be installed +# +# --or, if Visual Studio 2013 or later is required-- +# dist-hook: \ # (or add to it if it is already there, this does -not- call other vs items in the process) +# $(top_builddir)/build/win32/vs12/YourProject.vcxproj \ +# $(top_builddir)/build/win32/vs12/YourProject.vs12.headers # if headers need to be installed # Private functions @@ -109,6 +114,41 @@ $(top_builddir)/build/win32/vs9/$(1).headers: Makefile esac; \ done +$(top_builddir)/build/win32/vs12/$(1).vcxproj.filters: $(top_builddir)/build/win32/vs12/$(1).vcxproj + +$(top_builddir)/build/win32/vs12/$(1).vcxproj: Makefile + -$(RM) $(top_builddir)/build/win32/vs14/$(1).vcxproj + -$(RM) $(top_builddir)/build/win32/vs14/$(1).vcxproj.filters + + for F in $(_proj_files); do \ + case $$$$F in \ + $(_proj_filters)) \ + ;; \ + *.c|*.cpp|*.cc|*.cxx) \ + echo ' <ClCompile Include="..\..\..'$(_proj_subdir)$$$$F'" />' >>$(1).vs12.sourcefiles && \ + echo ' <ClCompile Include="..\..\..'$(_proj_subdir)$$$$F'"><Filter>Source Files</Filter></ClCompile>' >>$(1).vs12.sourcefiles.filters \ + ;; \ + esac; \ + done + + $(CPP) -P - <$(top_srcdir)/build/win32/vs12/$(1).vcxprojin >$(top_builddir)/build/win32/vs12/$(1).vcxproj + $(CPP) -P - <$(top_srcdir)/build/win32/vs12/$(1).vcxproj.filtersin >$(top_builddir)/build/win32/vs12/$(1).vcxproj.filters + $(RM) $(1).vs12.sourcefiles + $(RM) $(1).vs12.sourcefiles.filters + +$(top_builddir)/build/win32/vs12/$(1).vs12.headers: Makefile + -$(RM) $(top_builddir)/build/win32/vs12/$(1).vs12.headers + + for F in $(_proj_headers); do \ + case $$$$F in \ + $(_proj_headers_excludes)) \ + ;; \ + *.h|*.hpp|*.hh|*.hxx) \ + echo 'copy ..\..\..'$(_proj_subdir)$$$$F' $$$$(CopyDir)\include'$(_headers_destdir)'\'$$$$F >>$(top_builddir)/build/win32/vs12/$(1).vs12.headers \ + ;; \ + esac; \ + done + endef $(foreach proj,$(MSVCPROJS),$(eval $(call msvcproj-builder,$(proj)))) diff --git a/build/win32/vs11/Makefile.am b/build/win32/vs11/Makefile.am index db34061b..bf9a78fc 100644 --- a/build/win32/vs11/Makefile.am +++ b/build/win32/vs11/Makefile.am @@ -28,6 +28,8 @@ EXTRA_DIST = \ DISTCLEANFILES = $(EXTRA_DIST) +MSVC_BASE_VER = 10 +MSVC_BASE_VER_LONG = 2010 MSVC_VER = 11 MSVC_FORMAT_VER = 12 MSVC_VER_LONG = 2012 diff --git a/build/win32/vs12/Makefile.am b/build/win32/vs12/Makefile.am index 868979d2..a4379939 100644 --- a/build/win32/vs12/Makefile.am +++ b/build/win32/vs12/Makefile.am @@ -28,6 +28,8 @@ EXTRA_DIST = \ DISTCLEANFILES = $(EXTRA_DIST) +MSVC_BASE_VER = 10 +MSVC_BASE_VER_LONG = 2010 MSVC_VER = 12 MSVC_FORMAT_VER = 12 MSVC_VER_LONG = 2013 diff --git a/build/win32/vs14/Makefile.am b/build/win32/vs14/Makefile.am index 12a162c7..1d928a47 100644 --- a/build/win32/vs14/Makefile.am +++ b/build/win32/vs14/Makefile.am @@ -28,6 +28,8 @@ EXTRA_DIST = \ DISTCLEANFILES = $(EXTRA_DIST) +MSVC_BASE_VER = 10 +MSVC_BASE_VER_LONG = 2010 MSVC_VER = 14 MSVC_FORMAT_VER = 12 MSVC_VER_LONG = 14 |