[glibmm/glibmm-2-64] NMake Makefiles: Distinguish between MSVC 2015, 2017 and 2019



commit 6cea974d7a05059db6ef589ebfe2a675f60f9ad2
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Fri Jun 12 21:31:05 2020 +0800

    NMake Makefiles: Distinguish between MSVC 2015, 2017 and 2019
    
    It was found that we cannot rely on the fact that Visual Studio
    2015~2019 tried very hard to be binary compatible, as there are corner
    cases when linking against glibmm built with Visual Studio 2015 with
    builds done by Visual Studio 2017 and 2019 where the code will fail to
    link and the DLLs are therefore not ABI-compatible.  Note that the
    libsigc++ DLLs, however, are ABI compatible between these 3 Visual
    Studio versions.
    
    As a result, for the DLL and LIB names, use 'vc140' for Visual Studio
    2015 builds, 'vc141' for Visual Studio 2017 builds and 'vc142' for
    Visual Studio 2019 builds, according to the toolset versions as defined
    by Microsoft.
    
    For people that may have previously built glibmm with Visual Studio 2017
    or 2019, which had 'vc140' in the built .lib and DLL, an NMake option
    'USE_COMPAT_LIBS' is added to make building such binaries with 'vc140'
    easier, if needed.

 MSVC_NMake/build-rules-msvc.mak  | 336 +++++++++++++++++++--------------------
 MSVC_NMake/config-msvc.mak       |  28 ++--
 MSVC_NMake/create-lists-msvc.mak |  26 +--
 MSVC_NMake/detectenv-msvc.mak    |  43 +++--
 MSVC_NMake/generate-msvc.mak     |  26 +--
 MSVC_NMake/install.mak           |  26 +--
 6 files changed, 248 insertions(+), 237 deletions(-)
---
diff --git a/MSVC_NMake/build-rules-msvc.mak b/MSVC_NMake/build-rules-msvc.mak
index f3f5cf03..3b3d836e 100644
--- a/MSVC_NMake/build-rules-msvc.mak
+++ b/MSVC_NMake/build-rules-msvc.mak
@@ -13,74 +13,74 @@
 #      $(CC)|$(CXX) $(cflags) /Fo$(destdir) /c @<<
 # $<
 # <<
-{vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\}.cc{vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\}.obj::
-       $(CXX) $(LIBGLIBMM_CFLAGS) $(CFLAGS_NOGL) /Fovs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\ 
/Fdvs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\ /c @<<
+{vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\}.cc{vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\}.obj::
+       $(CXX) $(LIBGLIBMM_CFLAGS) $(CFLAGS_NOGL) /Fovs$(VSVER)\$(CFG)\$(PLAT)\glibmm\ 
/Fdvs$(VSVER)\$(CFG)\$(PLAT)\glibmm\ /c @<<
 $<
 <<
 
-{..\untracked\glib\glibmm\}.cc{vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\}.obj::
+{..\untracked\glib\glibmm\}.cc{vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\}.obj::
        $(CXX) $(LIBGLIBMM_CFLAGS) $(CFLAGS_NOGL) /Fovs$(VSVER)\$(CFG)\$(PLAT)\glibmm\ 
/Fdvs$(VSVER)\$(CFG)\$(PLAT)\glibmm\ /c @<<
 $<
 <<
 
-{..\glib\glibmm\}.cc{vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\}.obj::
-       $(CXX) $(LIBGLIBMM_CFLAGS) $(CFLAGS_NOGL) /Fovs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\ 
/Fdvs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\ /c @<<
+{..\glib\glibmm\}.cc{vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\}.obj::
+       $(CXX) $(LIBGLIBMM_CFLAGS) $(CFLAGS_NOGL) /Fovs$(VSVER)\$(CFG)\$(PLAT)\glibmm\ 
/Fdvs$(VSVER)\$(CFG)\$(PLAT)\glibmm\ /c @<<
 $<
 <<
 
-{..\glib\src\}.cc.m4{vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\}.obj:
+{..\glib\src\}.cc.m4{vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\}.obj:
        @if not exist $(@D)\ $(MAKE) /f Makefile.vc CFG=$(CFG) $(@D)
        @for %%s in ($(<D)\*.cc.m4 $(<D)\*.h.m4) do @if not exist ..\glib\glibmm\%%~ns if not exist 
..\untracked\glib\glibmm\%%~ns if not exist $(@D)\%%~ns $(M4) -I$(<D:\=/) %%s $(<D:\=/)/template.macros.m4 > 
$(@D)\%%~ns
        @if exist $(@D)\$(<B) $(CXX) $(LIBGLIBMM_CFLAGS) $(CFLAGS_NOGL) /Fo$(@D)\ /Fd$(@D)\ /c $(@D)\$(<B)
        @if exist ..\glib\glibmm\$(<B) $(CXX) $(LIBGLIBMM_CFLAGS) $(CFLAGS_NOGL) /Fo$(@D)\ /Fd$(@D)\ /c 
..\glib\glibmm\$(<B)
        @if exist ..\untracked\glib\glibmm\$(<B) $(CXX) $(LIBGLIBMM_CFLAGS) $(CFLAGS_NOGL) /Fo$(@D)\ 
/Fd$(@D)\ /c ..\untracked\glib\glibmm\$(<B)
 
-{..\glib\src\}.ccg{vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\}.obj:
+{..\glib\src\}.ccg{vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\}.obj:
        @if not exist $(@D)\private\ $(MAKE) /f Makefile.vc CFG=$(CFG) $(@D)\private
        @for %%s in ($(<D)\*.ccg) do @if not exist ..\glib\glibmm\%%~ns.cc if not exist $(@D)\%%~ns.cc 
$(PERL) -I ../tools/pm -- ../tools/gmmproc -I ../tools/m4 --defs $(<D:\=/) %%~ns $(<D:\=/) $(@D)
        @if exist $(@D)\$(<B).cc $(CXX) $(LIBGLIBMM_CFLAGS) $(CFLAGS_NOGL) /Fo$(@D)\ /Fd$(@D)\ /c 
$(@D)\$(<B).cc
        @if exist ..\glib\glibmm\$(<B).cc $(CXX) $(LIBGLIBMM_CFLAGS) $(CFLAGS_NOGL) /Fo$(@D)\ /Fd$(@D)\ /c 
..\glib\glibmm\$(<B).cc
 
-{vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\}.cc{vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\}.obj::
-       $(CXX) $(LIBGIOMM_CFLAGS) $(CFLAGS_NOGL) /Fovs$(PDBVER)\$(CFG)\$(PLAT)\giomm\ 
/Fdvs$(PDBVER)\$(CFG)\$(PLAT)\giomm\ /c @<<
+{vs$(VSVER)\$(CFG)\$(PLAT)\giomm\}.cc{vs$(VSVER)\$(CFG)\$(PLAT)\giomm\}.obj::
+       $(CXX) $(LIBGIOMM_CFLAGS) $(CFLAGS_NOGL) /Fovs$(VSVER)\$(CFG)\$(PLAT)\giomm\ 
/Fdvs$(VSVER)\$(CFG)\$(PLAT)\giomm\ /c @<<
 $<
 <<
 
-{..\untracked\gio\giomm\}.cc{vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\}.obj::
+{..\untracked\gio\giomm\}.cc{vs$(VSVER)\$(CFG)\$(PLAT)\giomm\}.obj::
        $(CXX) $(LIBGIOMM_CFLAGS) $(CFLAGS_NOGL) /Fovs$(VSVER)\$(CFG)\$(PLAT)\giomm\ 
/Fdvs$(VSVER)\$(CFG)\$(PLAT)\giomm\ /c @<<
 $<
 <<
 
-{..\gio\giomm\}.cc{vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\}.obj::
-       $(CXX) $(LIBGIOMM_CFLAGS) $(CFLAGS_NOGL) /Fovs$(PDBVER)\$(CFG)\$(PLAT)\giomm\ 
/Fdvs$(PDBVER)\$(CFG)\$(PLAT)\giomm\ /c @<<
+{..\gio\giomm\}.cc{vs$(VSVER)\$(CFG)\$(PLAT)\giomm\}.obj::
+       $(CXX) $(LIBGIOMM_CFLAGS) $(CFLAGS_NOGL) /Fovs$(VSVER)\$(CFG)\$(PLAT)\giomm\ 
/Fdvs$(VSVER)\$(CFG)\$(PLAT)\giomm\ /c @<<
 $<
 <<
 
-{..\gio\src\}.ccg{vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\}.obj:
+{..\gio\src\}.ccg{vs$(VSVER)\$(CFG)\$(PLAT)\giomm\}.obj:
        @if not exist $(@D)\private\ $(MAKE) /f Makefile.vc CFG=$(CFG) $(@D)\private
        @for %%s in ($(<D)\*.ccg) do @if not exist ..\gio\giomm\%%~ns.cc if not exist $(@D)\%%~ns.cc $(PERL) 
-I ../tools/pm -- ../tools/gmmproc -I ../tools/m4 --defs $(<D:\=/) %%~ns $(<D:\=/) $(@D)
        @if exist $(@D)\$(<B).cc $(CXX) $(LIBGIOMM_CFLAGS) $(CFLAGS_NOGL) /Fo$(@D)\ /Fd$(@D)\ /c 
$(@D)\$(<B).cc
        @if exist ..\gio\giomm\$(<B).cc $(CXX) $(LIBGIOMM_CFLAGS) $(CFLAGS_NOGL) /Fo$(@D)\ /Fd$(@D)\ /c 
$(@D)\$(<B).cc
 
-{..\tools\extra_defs_gen\}.cc{vs$(PDBVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\}.obj::
-       @if not exist vs$(PDBVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\ $(MAKE) /f Makefile.vc CFG=$(CFG) 
vs$(PDBVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen
-       $(CXX) $(GLIBMM_BASE_CFLAGS) /DGLIBMM_GEN_EXTRA_DEFS_BUILD $(GLIBMM_EXTRA_INCLUDES) $(CFLAGS_NOGL) 
/Fovs$(PDBVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\ /Fdvs$(PDBVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\ /c @<<
+{..\tools\extra_defs_gen\}.cc{vs$(VSVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\}.obj::
+       @if not exist vs$(VSVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\ $(MAKE) /f Makefile.vc CFG=$(CFG) 
vs$(VSVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen
+       $(CXX) $(GLIBMM_BASE_CFLAGS) /DGLIBMM_GEN_EXTRA_DEFS_BUILD $(GLIBMM_EXTRA_INCLUDES) $(CFLAGS_NOGL) 
/Fovs$(VSVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\ /Fdvs$(VSVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\ /c @<<
 $<
 <<
 
-{.\glibmm\}.rc{vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\}.res:
+{.\glibmm\}.rc{vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\}.res:
        rc /fo$@ $<
 
-{.\giomm\}.rc{vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\}.res:
+{.\giomm\}.rc{vs$(VSVER)\$(CFG)\$(PLAT)\giomm\}.res:
        rc /fo$@ $<
 
-vs$(PDBVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\generate_extra_defs.obj:  
..\tools\extra_defs_gen\generate_extra_defs.cc  ..\tools\extra_defs_gen\generate_extra_defs.h
+vs$(VSVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\generate_extra_defs.obj:  
..\tools\extra_defs_gen\generate_extra_defs.cc  ..\tools\extra_defs_gen\generate_extra_defs.h
 # Rules for building .lib files
 $(GLIBMM_LIB): $(GLIBMM_DLL)
 $(GIOMM_LIB): $(GIOMM_DLL)
 
 $(GLIBMM_EXTRA_DEFS_GEN_LIB): $(GLIBMM_EXTRA_DEFS_GEN_DLL)
-$(GLIBMM_EXTRA_DEFS_GEN_DLL): vs$(PDBVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\generate_extra_defs.obj
+$(GLIBMM_EXTRA_DEFS_GEN_DLL): vs$(VSVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\generate_extra_defs.obj
        link /DLL $(LDFLAGS_NOLTCG) $(GOBJECT_LIBS) /implib:$(GLIBMM_EXTRA_DEFS_GEN_LIB) -out:$@ @<<
 $**
 <<
@@ -93,13 +93,13 @@ $**
 # $(dependent_objects)
 # <<
 #      @-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
-$(GLIBMM_DLL): vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm $(glibmm_OBJS)
+$(GLIBMM_DLL): vs$(VSVER)\$(CFG)\$(PLAT)\glibmm $(glibmm_OBJS)
        link /DLL $(LDFLAGS_NOLTCG) $(GOBJECT_LIBS) $(LIBSIGC_LIB) /implib:$(GLIBMM_LIB) -out:$@ @<<
 $(glibmm_OBJS)
 <<
        @-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
 
-$(GIOMM_DLL): vs$(PDBVER)\$(CFG)\$(PLAT)\giomm $(GLIBMM_LIB) $(giomm_OBJS)
+$(GIOMM_DLL): vs$(VSVER)\$(CFG)\$(PLAT)\giomm $(GLIBMM_LIB) $(giomm_OBJS)
        link /DLL $(LDFLAGS_NOLTCG) $(GLIBMM_LIB) $(GIO_LIBS) $(LIBSIGC_LIB) /implib:$(GIOMM_LIB) -out:$@ @<<
 $(giomm_OBJS)
 <<
@@ -114,135 +114,135 @@ $(giomm_OBJS)
 #      @-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
 
 # For the buildable glibmm examples
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex-compose.exe: ..\examples\compose\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex-dispatcher2.exe: ..\examples\thread\dispatcher2.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex-keyfile.exe: ..\examples\keyfile\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex-markup.exe: ..\examples\markup\parser.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex-options.exe: ..\examples\options\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex-properties.exe: ..\examples\properties\properties_example.cc 
$(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex-regex.exe: ..\examples\regex\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex-compose.exe: ..\examples\compose\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex-dispatcher2.exe: ..\examples\thread\dispatcher2.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex-keyfile.exe: ..\examples\keyfile\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex-markup.exe: ..\examples\markup\parser.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex-options.exe: ..\examples\options\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex-properties.exe: ..\examples\properties\properties_example.cc 
$(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex-regex.exe: ..\examples\regex\main.cc $(GLIBMM_LIB)
 
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex-compose.exe       \
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex-dispatcher2.exe   \
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex-keyfile.exe       \
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex-markup.exe        \
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex-options.exe       \
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex-properties.exe    \
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex-regex.exe:
-       @if not exist vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex $(MAKE) -f Makefile.vc CFG=$(CFG) 
vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex-compose.exe        \
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex-dispatcher2.exe    \
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex-keyfile.exe        \
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex-markup.exe \
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex-options.exe        \
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex-properties.exe     \
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex-regex.exe:
+       @if not exist vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex $(MAKE) -f Makefile.vc CFG=$(CFG) 
vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex
        $(CXX) $(GLIBMM_EX_CFLAGS) $(CFLAGS) /Fo$(@D)\glibmm-ex\ /Fd$(@D)\glibmm-ex\ $** /link $(LDFLAGS) 
$(GLIBMM_EX_LIBS) /out:$@
 
 # For the buildable giomm examples
 
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex-dbus-client_bus_listnames.exe: ..\examples\dbus\client_bus_listnames.cc 
$(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex-dbus-session_bus_service.exe: ..\examples\dbus\session_bus_service.cc 
$(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex-dbus-server_without_bus.exe: ..\examples\dbus\server_without_bus.cc 
$(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex-network-resolver.exe: ..\examples\network\resolver.cc $(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex-network-socket-client.exe: ..\examples\network\socket-client.cc 
$(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex-network-socket-server.exe: ..\examples\network\socket-server.cc 
$(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex-settings.exe: ..\examples\settings\settings.cc $(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex-dbus-client_bus_listnames.exe: ..\examples\dbus\client_bus_listnames.cc 
$(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex-dbus-session_bus_service.exe: ..\examples\dbus\session_bus_service.cc 
$(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex-dbus-server_without_bus.exe: ..\examples\dbus\server_without_bus.cc 
$(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex-network-resolver.exe: ..\examples\network\resolver.cc $(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex-network-socket-client.exe: ..\examples\network\socket-client.cc 
$(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex-network-socket-server.exe: ..\examples\network\socket-server.cc 
$(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex-settings.exe: ..\examples\settings\settings.cc $(GIOMM_LIB)
 
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex-dbus-client_bus_listnames.exe      \
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex-dbus-session_bus_service.exe       \
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex-dbus-server_without_bus.exe        \
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex-network-resolver.exe       \
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex-network-socket-client.exe  \
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex-network-socket-server.exe  \
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex-settings.exe:
-       @if not exist vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex $(MAKE) -f Makefile.vc CFG=$(CFG) 
vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex
-       @if "$@" == "vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex-settings.exe" $(MAKE) -f Makefile.vc CFG=$(CFG) 
vs$(PDBVER)\$(CFG)\$(PLAT)\gschema.compiled
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex-dbus-client_bus_listnames.exe       \
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex-dbus-session_bus_service.exe        \
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex-dbus-server_without_bus.exe \
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex-network-resolver.exe        \
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex-network-socket-client.exe   \
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex-network-socket-server.exe   \
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex-settings.exe:
+       @if not exist vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex $(MAKE) -f Makefile.vc CFG=$(CFG) 
vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex
+       @if "$@" == "vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex-settings.exe" $(MAKE) -f Makefile.vc CFG=$(CFG) 
vs$(VSVER)\$(CFG)\$(PLAT)\gschema.compiled
        $(CXX) $(GIOMM_EX_CFLAGS) $(CFLAGS) /Fo$(@D)\giomm-ex\ /Fd$(@D)\giomm-ex\ $** /link $(LDFLAGS) 
$(GIOMM_EX_LIBS) /out:$@
 
 # For building the glibmm tests
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_base64.exe: ..\tests\glibmm_base64\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_binding.exe: ..\tests\glibmm_binding\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_bool_arrayhandle.exe: ..\tests\glibmm_bool_arrayhandle\main.cc 
$(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_bool_vector.exe: ..\tests\glibmm_bool_vector\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_btree.exe: ..\tests\glibmm_btree\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_buildfilename.exe: ..\tests\glibmm_buildfilename\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_bytearray.exe: ..\tests\glibmm_bytearray\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_date.exe: ..\tests\glibmm_date\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_mainloop.exe: ..\tests\glibmm_mainloop\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_nodetree.exe: ..\tests\glibmm_nodetree\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_object.exe: ..\tests\glibmm_object\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_objectbase.exe: ..\tests\glibmm_objectbase\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_objectbase_move.exe: ..\tests\glibmm_objectbase_move\main.cc 
$(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_object_move.exe: ..\tests\glibmm_object_move\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_refptr.exe: ..\tests\glibmm_refptr\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_refptr_sigc_bind.exe: ..\tests\glibmm_refptr_sigc_bind\main.cc 
$(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_compose.exe: ..\tests\glibmm_ustring_compose\main.cc 
$(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_format.exe: ..\tests\glibmm_ustring_format\main.cc 
$(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_make_valid.exe: ..\tests\glibmm_ustring_make_valid\main.cc 
$(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_sprintf.exe: ..\tests\glibmm_ustring_sprintf\main.cc 
$(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_value.exe: ..\tests\glibmm_value\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_valuearray.exe: ..\tests\glibmm_valuearray\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_variant.exe: ..\tests\glibmm_variant\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_base64.exe: ..\tests\glibmm_base64\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_binding.exe: ..\tests\glibmm_binding\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_bool_arrayhandle.exe: ..\tests\glibmm_bool_arrayhandle\main.cc 
$(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_bool_vector.exe: ..\tests\glibmm_bool_vector\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_btree.exe: ..\tests\glibmm_btree\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_buildfilename.exe: ..\tests\glibmm_buildfilename\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_bytearray.exe: ..\tests\glibmm_bytearray\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_date.exe: ..\tests\glibmm_date\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_mainloop.exe: ..\tests\glibmm_mainloop\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_nodetree.exe: ..\tests\glibmm_nodetree\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_object.exe: ..\tests\glibmm_object\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_objectbase.exe: ..\tests\glibmm_objectbase\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_objectbase_move.exe: ..\tests\glibmm_objectbase_move\main.cc 
$(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_object_move.exe: ..\tests\glibmm_object_move\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_refptr.exe: ..\tests\glibmm_refptr\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_refptr_sigc_bind.exe: ..\tests\glibmm_refptr_sigc_bind\main.cc 
$(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_compose.exe: ..\tests\glibmm_ustring_compose\main.cc 
$(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_format.exe: ..\tests\glibmm_ustring_format\main.cc 
$(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_make_valid.exe: ..\tests\glibmm_ustring_make_valid\main.cc 
$(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_sprintf.exe: ..\tests\glibmm_ustring_sprintf\main.cc 
$(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_value.exe: ..\tests\glibmm_value\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_valuearray.exe: ..\tests\glibmm_valuearray\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_variant.exe: ..\tests\glibmm_variant\main.cc $(GLIBMM_LIB)
 
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_base64.exe      \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_binding.exe     \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_bool_arrayhandle.exe    \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_bool_vector.exe \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_btree.exe       \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_buildfilename.exe       \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_bytearray.exe   \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_date.exe        \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_interface_move.exe      \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_mainloop.exe    \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_nodetree.exe    \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_object.exe      \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_objectbase.exe  \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_objectbase_move.exe     \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_object_move.exe \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_refptr.exe      \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_refptr_sigc_bind.exe    \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_compose.exe     \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_format.exe      \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_make_valid.exe  \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_sprintf.exe     \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_value.exe       \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_valuearray.exe  \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_variant.exe:
-       @if not exist vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-tests $(MAKE) -f Makefile.vc CFG=$(CFG) 
vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-tests
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_base64.exe       \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_binding.exe      \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_bool_arrayhandle.exe     \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_bool_vector.exe  \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_btree.exe        \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_buildfilename.exe        \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_bytearray.exe    \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_date.exe \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_interface_move.exe       \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_mainloop.exe     \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_nodetree.exe     \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_object.exe       \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_objectbase.exe   \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_objectbase_move.exe      \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_object_move.exe  \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_refptr.exe       \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_refptr_sigc_bind.exe     \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_compose.exe      \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_format.exe       \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_make_valid.exe   \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_ustring_sprintf.exe      \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_value.exe        \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_valuearray.exe   \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_variant.exe:
+       @if not exist vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-tests $(MAKE) -f Makefile.vc CFG=$(CFG) 
vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-tests
        $(CXX) $(GLIBMM_EX_CFLAGS) $(CFLAGS) /Fo$(@D)\glibmm-tests\ /Fd$(@D)\glibmm-tests\ $** /link 
$(LDFLAGS) $(GLIBMM_EX_LIBS) /out:$@
 
 # For giomm tests
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_asyncresult_sourceobject.exe: 
..\tests\giomm_asyncresult_sourceobject\main.cc $(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_ioerror.exe: ..\tests\giomm_ioerror\main.cc $(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_ioerror_and_iodbuserror.exe: 
..\tests\giomm_ioerror_and_iodbuserror\main.cc $(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_listmodel.exe: ..\tests\giomm_listmodel\main.cc $(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_memoryinputstream.exe: ..\tests\giomm_memoryinputstream\main.cc 
$(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_simple.exe: ..\tests\giomm_simple\main.cc $(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_stream_vfuncs.exe: ..\tests\giomm_stream_vfuncs\main.cc $(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_tls_client.exe: ..\tests\giomm_tls_client\main.cc $(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_interface_implementation.exe: 
..\tests\glibmm_interface_implementation\main.cc $(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_null_containerhandle.exe: 
..\tests\glibmm_null_containerhandle\main.cc $(GLIBMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_null_vectorutils.exe: ..\tests\glibmm_null_vectorutils\main.cc 
$(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_vector.exe: ..\tests\glibmm_vector\main.cc $(GIOMM_LIB)
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_weakref.exe: ..\tests\glibmm_weakref\main.cc $(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_asyncresult_sourceobject.exe: 
..\tests\giomm_asyncresult_sourceobject\main.cc $(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_ioerror.exe: ..\tests\giomm_ioerror\main.cc $(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_ioerror_and_iodbuserror.exe: 
..\tests\giomm_ioerror_and_iodbuserror\main.cc $(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_listmodel.exe: ..\tests\giomm_listmodel\main.cc $(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_memoryinputstream.exe: ..\tests\giomm_memoryinputstream\main.cc 
$(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_simple.exe: ..\tests\giomm_simple\main.cc $(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_stream_vfuncs.exe: ..\tests\giomm_stream_vfuncs\main.cc $(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_tls_client.exe: ..\tests\giomm_tls_client\main.cc $(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_interface_implementation.exe: 
..\tests\glibmm_interface_implementation\main.cc $(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_null_containerhandle.exe: ..\tests\glibmm_null_containerhandle\main.cc 
$(GLIBMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_null_vectorutils.exe: ..\tests\glibmm_null_vectorutils\main.cc 
$(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_vector.exe: ..\tests\glibmm_vector\main.cc $(GIOMM_LIB)
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_weakref.exe: ..\tests\glibmm_weakref\main.cc $(GLIBMM_LIB)
 
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_asyncresult_sourceobject.exe     \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_ioerror.exe      \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_ioerror_and_iodbuserror.exe      \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_listmodel.exe    \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_memoryinputstream.exe    \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_simple.exe       \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_stream_vfuncs.exe        \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-giomm_tls_client.exe   \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_interface_implementation.exe    \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_null_containerhandle.exe        \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_null_vectorutils.exe    \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_vector.exe      \
-vs$(PDBVER)\$(CFG)\$(PLAT)\test-glibmm_weakref.exe:
-       @if not exist vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-tests $(MAKE) -f Makefile.vc CFG=$(CFG) 
vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-tests
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_asyncresult_sourceobject.exe      \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_ioerror.exe       \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_ioerror_and_iodbuserror.exe       \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_listmodel.exe     \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_memoryinputstream.exe     \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_simple.exe        \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_stream_vfuncs.exe \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-giomm_tls_client.exe    \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_interface_implementation.exe     \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_null_containerhandle.exe \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_null_vectorutils.exe     \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_vector.exe       \
+vs$(VSVER)\$(CFG)\$(PLAT)\test-glibmm_weakref.exe:
+       @if not exist vs$(VSVER)\$(CFG)\$(PLAT)\giomm-tests $(MAKE) -f Makefile.vc CFG=$(CFG) 
vs$(VSVER)\$(CFG)\$(PLAT)\giomm-tests
        $(CXX) $(GIOMM_EX_CFLAGS) $(CFLAGS) /Fo$(@D)\giomm-tests\ /Fd$(@D)\giomm-tests\ $** /link $(LDFLAGS) 
$(GIOMM_EX_LIBS) /out:$@
 
 clean:
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\*.exe
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\*.dll
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\*.pdb
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\*.ilk
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\*.exp
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\*.lib
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.exe
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.dll
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.pdb
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.ilk
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.exp
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.lib
        @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.exe
        @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.dll
        @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.pdb
@@ -251,39 +251,39 @@ clean:
        @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\*.lib
        @-del ..\tools\generate_wrap_init.pl
        @-del ..\tools\gmmproc
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\gschemas.compiled
-       @-del vs$(PDBVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\*.pdb
-       @-del vs$(PDBVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\*.obj
-       @-if exist vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-tests del /f /q 
vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-tests\*.obj
-       @-if exist vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-tests del /f /q 
vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-tests\*.pdb
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex\*.obj
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex\*.pdb
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\*.def
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\*.res
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\*.obj
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\*.pdb
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\*.cc
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\private\*.h
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\*.h
-       @-if exist vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-tests del /f /q 
vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-tests\*.obj
-       @-if exist vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-tests del /f /q 
vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-tests\*.pdb
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex\*.obj
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex\*.pdb
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\*.def
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\*.res
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\*.obj
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\*.pdb
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\*.cc
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\private\*.h
-       @-del /f /q vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\*.h
-       @-if exist vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-tests rd vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-tests
-       @-rd vs$(PDBVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen
-       @-rd vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex
-       @-rd vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\private
-       @-rd vs$(PDBVER)\$(CFG)\$(PLAT)\giomm
-       @-if exist vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-tests rd vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-tests
-       @-rd vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex
-       @-rd vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\private
-       @-rd vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\gschemas.compiled
+       @-del vs$(VSVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\*.pdb
+       @-del vs$(VSVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen\*.obj
+       @-if exist vs$(VSVER)\$(CFG)\$(PLAT)\giomm-tests del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\giomm-tests\*.obj
+       @-if exist vs$(VSVER)\$(CFG)\$(PLAT)\giomm-tests del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\giomm-tests\*.pdb
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex\*.obj
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex\*.pdb
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\giomm\*.def
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\giomm\*.res
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\giomm\*.obj
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\giomm\*.pdb
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\giomm\*.cc
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\giomm\private\*.h
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\giomm\*.h
+       @-if exist vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-tests del /f /q 
vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-tests\*.obj
+       @-if exist vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-tests del /f /q 
vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-tests\*.pdb
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex\*.obj
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex\*.pdb
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\*.def
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\*.res
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\*.obj
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\*.pdb
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\*.cc
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\private\*.h
+       @-del /f /q vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\*.h
+       @-if exist vs$(VSVER)\$(CFG)\$(PLAT)\giomm-tests rd vs$(VSVER)\$(CFG)\$(PLAT)\giomm-tests
+       @-rd vs$(VSVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen
+       @-rd vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex
+       @-rd vs$(VSVER)\$(CFG)\$(PLAT)\giomm\private
+       @-rd vs$(VSVER)\$(CFG)\$(PLAT)\giomm
+       @-if exist vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-tests rd vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-tests
+       @-rd vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex
+       @-rd vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\private
+       @-rd vs$(VSVER)\$(CFG)\$(PLAT)\glibmm
 
 .SUFFIXES: .cc .h .ccg .hg .obj .cc.m4 .h.m4
diff --git a/MSVC_NMake/config-msvc.mak b/MSVC_NMake/config-msvc.mak
index 93029a0c..e26fa2a7 100644
--- a/MSVC_NMake/config-msvc.mak
+++ b/MSVC_NMake/config-msvc.mak
@@ -23,14 +23,14 @@ M4 = m4
 !endif
 
 GLIBMM_BASE_CFLAGS =                   \
-       /Ivs$(PDBVER)\$(CFG)\$(PLAT)    \
+       /Ivs$(VSVER)\$(CFG)\$(PLAT)     \
        /I..\untracked\glib /I..\untracked\glib\glibmm          \
        /I..\glib /I..\glib\glibmm /I.\glibmm           \
        /wd4530 /wd4251 /wd4275 /EHsc   \
        /FImsvc_recommended_pragmas.h
 
 GIOMM_BASE_CFLAGS =    \
-       /Ivs$(PDBVER)\$(CFG)\$(PLAT)    \
+       /Ivs$(VSVER)\$(CFG)\$(PLAT)     \
        /I..\untracked\gio /I..\untracked\gio\giomm     \
        /I..\gio /I..\gio\giomm /I.\giomm       \
        $(GLIBMM_BASE_CFLAGS)
@@ -47,10 +47,10 @@ LIBGIOMM_CFLAGS = /DGIOMM_BUILD /DSIZEOF_WCHAR_T=2 $(GIOMM_BASE_CFLAGS) $(GLIBMM
 GLIBMM_EX_CFLAGS = $(GLIBMM_BASE_CFLAGS) $(GLIBMM_EXTRA_INCLUDES)
 GIOMM_EX_CFLAGS = $(GIOMM_BASE_CFLAGS) $(GLIBMM_EXTRA_INCLUDES)
 
-# We build glibmm-vc$(PDBVER)0-$(GLIBMM_MAJOR_VERSION)_$(GLIBMM_MINOR_VERSION).dll or
-#          glibmm-vc$(PDBVER)0-d-$(GLIBMM_MAJOR_VERSION)_$(GLIBMM_MINOR_VERSION).dll at least
-#          giomm-vc$(PDBVER)0-$(GLIBMM_MAJOR_VERSION)_$(GLIBMM_MINOR_VERSION).dll or
-#          giomm-vc$(PDBVER)0-d-$(GLIBMM_MAJOR_VERSION)_$(GLIBMM_MINOR_VERSION).dll at least
+# We build glibmm-vc$(VSVER_LIB)-$(GLIBMM_MAJOR_VERSION)_$(GLIBMM_MINOR_VERSION).dll or
+#          glibmm-vc$(VSVER_LIB)-d-$(GLIBMM_MAJOR_VERSION)_$(GLIBMM_MINOR_VERSION).dll at least
+#          giomm-vc$(VSVER_LIB)-$(GLIBMM_MAJOR_VERSION)_$(GLIBMM_MINOR_VERSION).dll or
+#          giomm-vc$(VSVER_LIB)-d-$(GLIBMM_MAJOR_VERSION)_$(GLIBMM_MINOR_VERSION).dll at least
 
 !ifdef USE_MESON_LIBS
 LIBSIGC_LIBNAME = sigc-$(LIBSIGC_MAJOR_VERSION).$(LIBSIGC_MINOR_VERSION)
@@ -62,18 +62,18 @@ LIBSIGC_DLL = $(LIBSIGC_LIBNAME).dll
 
 LIBSIGC_LIB = $(LIBSIGC_LIBNAME).lib
 
-GLIBMM_LIBNAME = glibmm-vc$(PDBVER)0$(DEBUG_SUFFIX)-$(GLIBMM_MAJOR_VERSION)_$(GLIBMM_MINOR_VERSION)
+GLIBMM_LIBNAME = glibmm-vc$(VSVER_LIB)$(DEBUG_SUFFIX)-$(GLIBMM_MAJOR_VERSION)_$(GLIBMM_MINOR_VERSION)
 
-GLIBMM_DLL = vs$(PDBVER)\$(CFG)\$(PLAT)\$(GLIBMM_LIBNAME).dll
-GLIBMM_LIB = vs$(PDBVER)\$(CFG)\$(PLAT)\$(GLIBMM_LIBNAME).lib
+GLIBMM_DLL = vs$(VSVER)\$(CFG)\$(PLAT)\$(GLIBMM_LIBNAME).dll
+GLIBMM_LIB = vs$(VSVER)\$(CFG)\$(PLAT)\$(GLIBMM_LIBNAME).lib
 GLIBMM_EXTRA_DEFS_GEN_LIBNAME = glibmm_generate_extra_defs-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)
-GLIBMM_EXTRA_DEFS_GEN_LIB = vs$(PDBVER)\$(CFG)\$(PLAT)\$(GLIBMM_EXTRA_DEFS_GEN_LIBNAME).lib
-GLIBMM_EXTRA_DEFS_GEN_DLL = vs$(PDBVER)\$(CFG)\$(PLAT)\$(GLIBMM_EXTRA_DEFS_GEN_LIBNAME).dll
+GLIBMM_EXTRA_DEFS_GEN_LIB = vs$(VSVER)\$(CFG)\$(PLAT)\$(GLIBMM_EXTRA_DEFS_GEN_LIBNAME).lib
+GLIBMM_EXTRA_DEFS_GEN_DLL = vs$(VSVER)\$(CFG)\$(PLAT)\$(GLIBMM_EXTRA_DEFS_GEN_LIBNAME).dll
 
-GIOMM_LIBNAME = giomm-vc$(PDBVER)0$(DEBUG_SUFFIX)-$(GLIBMM_MAJOR_VERSION)_$(GLIBMM_MINOR_VERSION)
+GIOMM_LIBNAME = giomm-vc$(VSVER_LIB)$(DEBUG_SUFFIX)-$(GLIBMM_MAJOR_VERSION)_$(GLIBMM_MINOR_VERSION)
 
-GIOMM_DLL = vs$(PDBVER)\$(CFG)\$(PLAT)\$(GIOMM_LIBNAME).dll
-GIOMM_LIB = vs$(PDBVER)\$(CFG)\$(PLAT)\$(GIOMM_LIBNAME).lib
+GIOMM_DLL = vs$(VSVER)\$(CFG)\$(PLAT)\$(GIOMM_LIBNAME).dll
+GIOMM_LIB = vs$(VSVER)\$(CFG)\$(PLAT)\$(GIOMM_LIBNAME).lib
 
 GOBJECT_LIBS = gobject-2.0.lib gmodule-2.0.lib glib-2.0.lib
 GIO_LIBS = gio-2.0.lib $(GOBJECT_LIBS)
diff --git a/MSVC_NMake/create-lists-msvc.mak b/MSVC_NMake/create-lists-msvc.mak
index b7eb5f98..b0ce441c 100644
--- a/MSVC_NMake/create-lists-msvc.mak
+++ b/MSVC_NMake/create-lists-msvc.mak
@@ -46,13 +46,13 @@ glibmm_files_extra_ph_int = $(glibmm_files_extra_ph:/=\)
 !if [call create-lists.bat header glibmm.mak glibmm_OBJS]
 !endif
 
-!if [for %c in ($(glibmm_files_built_cc)) do @if "%~xc" == ".cc" @call create-lists.bat file glibmm.mak 
vs^$(PDBVER)\^$(CFG)\^$(PLAT)\glibmm\%~nc.obj]
+!if [for %c in ($(glibmm_files_built_cc)) do @if "%~xc" == ".cc" @call create-lists.bat file glibmm.mak 
vs^$(VSVER)\^$(CFG)\^$(PLAT)\glibmm\%~nc.obj]
 !endif
 
-!if [for %c in ($(glibmm_files_extra_cc)) do @if "%~xc" == ".cc" @call create-lists.bat file glibmm.mak 
vs^$(PDBVER)\^$(CFG)\^$(PLAT)\glibmm\%~nc.obj]
+!if [for %c in ($(glibmm_files_extra_cc)) do @if "%~xc" == ".cc" @call create-lists.bat file glibmm.mak 
vs^$(VSVER)\^$(CFG)\^$(PLAT)\glibmm\%~nc.obj]
 !endif
 
-!if [@call create-lists.bat file glibmm.mak vs^$(PDBVER)\^$(CFG)\^$(PLAT)\glibmm\glibmm.res]
+!if [@call create-lists.bat file glibmm.mak vs^$(VSVER)\^$(CFG)\^$(PLAT)\glibmm\glibmm.res]
 !endif
 
 !if [call create-lists.bat footer glibmm.mak]
@@ -72,13 +72,13 @@ glibmm_files_extra_ph_int = $(glibmm_files_extra_ph:/=\)
 !if [call create-lists.bat header glibmm.mak giomm_OBJS]
 !endif
 
-!if [for %c in ($(giomm_generated_sources)) do @if "%~xc" == ".cc" @call create-lists.bat file glibmm.mak 
vs^$(PDBVER)\^$(CFG)\^$(PLAT)\giomm\%~nc.obj]
+!if [for %c in ($(giomm_generated_sources)) do @if "%~xc" == ".cc" @call create-lists.bat file glibmm.mak 
vs^$(VSVER)\^$(CFG)\^$(PLAT)\giomm\%~nc.obj]
 !endif
 
-!if [for %c in ($(giomm_files_extra_cc)) do @if "%~xc" == ".cc" @call create-lists.bat file glibmm.mak 
vs^$(PDBVER)\^$(CFG)\^$(PLAT)\giomm\%~nc.obj]
+!if [for %c in ($(giomm_files_extra_cc)) do @if "%~xc" == ".cc" @call create-lists.bat file glibmm.mak 
vs^$(VSVER)\^$(CFG)\^$(PLAT)\giomm\%~nc.obj]
 !endif
 
-!if [@call create-lists.bat file glibmm.mak vs^$(PDBVER)\^$(CFG)\^$(PLAT)\giomm\giomm.res]
+!if [@call create-lists.bat file glibmm.mak vs^$(VSVER)\^$(CFG)\^$(PLAT)\giomm\giomm.res]
 !endif
 
 !if [call create-lists.bat footer glibmm.mak]
@@ -99,7 +99,7 @@ glibmm_files_extra_ph_int = $(glibmm_files_extra_ph:/=\)
 # We skip building the following examples:
 # child_watch, iochannel_stream: Builds on *NIX only
 # thread\dispatcher.cc: Not C++-17 compliant
-!if [for %e in (compose dispatcher2 keyfile markup options properties regex) do @call create-lists.bat file 
glibmm.mak vs^$(PDBVER)\^$(CFG)\^$(PLAT)\glibmm-ex-%e.exe]
+!if [for %e in (compose dispatcher2 keyfile markup options properties regex) do @call create-lists.bat file 
glibmm.mak vs^$(VSVER)\^$(CFG)\^$(PLAT)\glibmm-ex-%e.exe]
 !endif
 
 !if [call create-lists.bat footer glibmm.mak]
@@ -108,13 +108,13 @@ glibmm_files_extra_ph_int = $(glibmm_files_extra_ph:/=\)
 !if [call create-lists.bat header glibmm.mak giomm_ex]
 !endif
 
-!if [for %e in (resolver socket-client socket-server) do @call create-lists.bat file glibmm.mak 
vs^$(PDBVER)\^$(CFG)\^$(PLAT)\giomm-ex-network-%e.exe]
+!if [for %e in (resolver socket-client socket-server) do @call create-lists.bat file glibmm.mak 
vs^$(VSVER)\^$(CFG)\^$(PLAT)\giomm-ex-network-%e.exe]
 !endif
 
-!if [for %e in (settings) do @call create-lists.bat file glibmm.mak 
vs^$(PDBVER)\^$(CFG)\^$(PLAT)\giomm-ex-%e.exe]
+!if [for %e in (settings) do @call create-lists.bat file glibmm.mak 
vs^$(VSVER)\^$(CFG)\^$(PLAT)\giomm-ex-%e.exe]
 !endif
 
-!if [for %e in (client_bus_listnames session_bus_service server_without_bus) do @call create-lists.bat file 
glibmm.mak vs^$(PDBVER)\^$(CFG)\^$(PLAT)\giomm-ex-dbus-%e.exe]
+!if [for %e in (client_bus_listnames session_bus_service server_without_bus) do @call create-lists.bat file 
glibmm.mak vs^$(VSVER)\^$(CFG)\^$(PLAT)\giomm-ex-dbus-%e.exe]
 !endif
 
 !if [call create-lists.bat footer glibmm.mak]
@@ -126,7 +126,7 @@ glibmm_files_extra_ph_int = $(glibmm_files_extra_ph:/=\)
 # Skip the following:
 # glibmm_interface_implementation, glibmm_null_vectorutils, glibmm_vector: Are actually using giomm
 # glibmm_interface_move: Relies on g_autoptr_*()
-!if [for /f %d in ('dir /ad /b ..\tests\glibmm_*') do @if not "%d" == "glibmm_interface_implementation" if 
not "%d" == "glibmm_interface_move" if not "%d" == "glibmm_null_vectorutils" if not "%d" == "glibmm_vector" 
@call create-lists.bat file glibmm.mak vs^$(PDBVER)\^$(CFG)\^$(PLAT)\test-%d.exe]
+!if [for /f %d in ('dir /ad /b ..\tests\glibmm_*') do @if not "%d" == "glibmm_interface_implementation" if 
not "%d" == "glibmm_interface_move" if not "%d" == "glibmm_null_vectorutils" if not "%d" == "glibmm_vector" 
@call create-lists.bat file glibmm.mak vs^$(VSVER)\^$(CFG)\^$(PLAT)\test-%d.exe]
 !endif
 
 !if [call create-lists.bat footer glibmm.mak]
@@ -135,10 +135,10 @@ glibmm_files_extra_ph_int = $(glibmm_files_extra_ph:/=\)
 !if [call create-lists.bat header glibmm.mak giomm_tests]
 !endif
 
-!if [for /f %d in ('dir /ad /b ..\tests\giomm_*') do @call create-lists.bat file glibmm.mak 
vs^$(PDBVER)\^$(CFG)\^$(PLAT)\test-%d.exe]
+!if [for /f %d in ('dir /ad /b ..\tests\giomm_*') do @call create-lists.bat file glibmm.mak 
vs^$(VSVER)\^$(CFG)\^$(PLAT)\test-%d.exe]
 !endif
 
-!if [for %d in (interface_implementation null_vectorutils vector) do @call create-lists.bat file glibmm.mak 
vs^$(PDBVER)\^$(CFG)\^$(PLAT)\test-glibmm_%d.exe]
+!if [for %d in (interface_implementation null_vectorutils vector) do @call create-lists.bat file glibmm.mak 
vs^$(VSVER)\^$(CFG)\^$(PLAT)\test-glibmm_%d.exe]
 !endif
 
 !if [call create-lists.bat footer glibmm.mak]
diff --git a/MSVC_NMake/detectenv-msvc.mak b/MSVC_NMake/detectenv-msvc.mak
index 848887e1..c59e0299 100644
--- a/MSVC_NMake/detectenv-msvc.mak
+++ b/MSVC_NMake/detectenv-msvc.mak
@@ -8,7 +8,7 @@
 # in $(GLIB_PREFIX)\lib.
 
 !if "$(PREFIX)" == ""
-PREFIX = ..\..\vs$(PDBVER)\$(PLAT)
+PREFIX = ..\..\vs$(VSVER)\$(PLAT)
 !endif
 
 # Location of the PERL interpreter, for running glib-mkenums.  glib-mkenums
@@ -79,34 +79,45 @@ _HASH=^#
 !if ![del $(ERRNUL) /q/f vercl.x vercl.i vercl.vc]
 !endif
 
+VSVER = 0
+PDBVER = 0
+VSVER_SUFFIX = 0
+
 !if $(VCVERSION) > 1499 && $(VCVERSION) < 1600
-VSVER = 9
+PDBVER = 9
 !elseif $(VCVERSION) > 1599 && $(VCVERSION) < 1700
-VSVER = 10
+PDBVER = 10
 !elseif $(VCVERSION) > 1699 && $(VCVERSION) < 1800
-VSVER = 11
+PDBVER = 11
 !elseif $(VCVERSION) > 1799 && $(VCVERSION) < 1900
-VSVER = 12
-!elseif $(VCVERSION) > 1899 && $(VCVERSION) < 1910
-VSVER = 14
-!elseif $(VCVERSION) > 1909 && $(VCVERSION) < 2000
+PDBVER = 12
+!elseif $(VCVERSION) > 1899 && $(VCVERSION) < 2000
+PDBVER = 14
+!if $(VCVERSION) > 1909 && $(VCVERSION) < 1920
+VSVER_SUFFIX = 1
 VSVER = 15
+!elseif $(VCVERSION) > 1919 && $(VCVERSION) < 2000
+VSVER_SUFFIX = 2
+VSVER = 16
 !else
-VSVER = 0
+VSVER = $(PDBVER)
+!endif
+!else
+VSVER = $(PDBVER)
+!endif
+
+!if $(VSVER) > 14 && "$(USE_COMPAT_LIBS)" != ""
+VSVER_LIB = $(PDBVER)0
+!else
+VSVER_LIB = $(PDBVER)$(VSVER_SUFFIX)
 !endif
 
 !if "$(VSVER)" == "0"
 MSG = ^
 This NMake Makefile set supports Visual Studio^
-9 (2008) through 15 (2017).  Your Visual Studio^
+9 (2008) through 16 (2019).  Your Visual Studio^
 version is not supported.
 !error $(MSG)
-!else
-!if $(VSVER) < 15
-PDBVER = $(VSVER)
-!else
-PDBVER = 14
-!endif
 !endif
 
 VALID_CFGSET = FALSE
diff --git a/MSVC_NMake/generate-msvc.mak b/MSVC_NMake/generate-msvc.mak
index bd9a9dd6..528ed585 100644
--- a/MSVC_NMake/generate-msvc.mak
+++ b/MSVC_NMake/generate-msvc.mak
@@ -4,27 +4,27 @@
 # one is maintaining the NMake build files.
 
 # Create the build directories
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm      \
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\private      \
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm       \
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\private       \
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-ex   \
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-ex    \
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm-tests        \
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm-tests \
-vs$(PDBVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen:
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm       \
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\private       \
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm        \
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm\private        \
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-ex    \
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-ex     \
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm-tests \
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm-tests  \
+vs$(VSVER)\$(CFG)\$(PLAT)\glib-extra-defs-gen:
        @-md $@
 
 # Compile schema for giomm settings example
-vs$(PDBVER)\$(CFG)\$(PLAT)\gschema.compiled: ..\examples\settings\org.gtkmm.demo.gschema.xml
-       $(GLIB_COMPILE_SCHEMAS) --targetdir=vs$(PDBVER)\$(CFG)\$(PLAT) ..\examples\settings
+vs$(VSVER)\$(CFG)\$(PLAT)\gschema.compiled: ..\examples\settings\org.gtkmm.demo.gschema.xml
+       $(GLIB_COMPILE_SCHEMAS) --targetdir=vs$(VSVER)\$(CFG)\$(PLAT) ..\examples\settings
 
 # Generate wrap_init.cc files
 
-vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\wrap_init.cc: $(glibmm_real_hg)
+vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\wrap_init.cc: $(glibmm_real_hg)
        @if not exist ..\glib\glibmm\wrap_init.cc $(PERL) -- "../tools/generate_wrap_init.pl" 
--namespace=Glib --parent_dir=glibmm $(glibmm_real_hg:\=/)>$@
 
-vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\wrap_init.cc: $(giomm_real_hg)
+vs$(VSVER)\$(CFG)\$(PLAT)\giomm\wrap_init.cc: $(giomm_real_hg)
        @if not exist ..\gio\giomm\wrap_init.cc $(PERL) -- "../tools/generate_wrap_init.pl" --namespace=Gio 
--parent_dir=giomm $(giomm_real_hg:\=/)>$@
 
 # Generate pre-generated resources and configuration headers (builds from GIT)
diff --git a/MSVC_NMake/install.mak b/MSVC_NMake/install.mak
index 5bb2ce3a..dad2977b 100644
--- a/MSVC_NMake/install.mak
+++ b/MSVC_NMake/install.mak
@@ -9,30 +9,30 @@ install: all
        @if not exist $(PREFIX)\lib\giomm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\include\ md 
$(PREFIX)\lib\giomm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\include
        @if not exist $(PREFIX)\include\giomm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\giomm\private\ 
@md $(PREFIX)\include\giomm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\giomm\private
        @-for %d in (m4 pm) do @md 
$(PREFIX)\share\glibmm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\proc\%d
-       @copy /b vs$(PDBVER)\$(CFG)\$(PLAT)\$(GLIBMM_LIBNAME).dll $(PREFIX)\bin
-       @copy /b vs$(PDBVER)\$(CFG)\$(PLAT)\$(GLIBMM_LIBNAME).pdb $(PREFIX)\bin
-       @copy /b vs$(PDBVER)\$(CFG)\$(PLAT)\$(GLIBMM_LIBNAME).lib $(PREFIX)\lib
-       @copy /b vs$(PDBVER)\$(CFG)\$(PLAT)\$(GIOMM_LIBNAME).dll $(PREFIX)\bin
-       @copy /b vs$(PDBVER)\$(CFG)\$(PLAT)\$(GIOMM_LIBNAME).pdb $(PREFIX)\bin
-       @copy /b vs$(PDBVER)\$(CFG)\$(PLAT)\$(GIOMM_LIBNAME).lib $(PREFIX)\lib
-       @copy /b vs$(PDBVER)\$(CFG)\$(PLAT)\$(GLIBMM_EXTRA_DEFS_GEN_LIBNAME).dll $(PREFIX)\bin
-       @copy /b vs$(PDBVER)\$(CFG)\$(PLAT)\$(GLIBMM_EXTRA_DEFS_GEN_LIBNAME).pdb $(PREFIX)\bin
-       @copy /b vs$(PDBVER)\$(CFG)\$(PLAT)\$(GLIBMM_EXTRA_DEFS_GEN_LIBNAME).lib $(PREFIX)\lib
+       @copy /b vs$(VSVER)\$(CFG)\$(PLAT)\$(GLIBMM_LIBNAME).dll $(PREFIX)\bin
+       @copy /b vs$(VSVER)\$(CFG)\$(PLAT)\$(GLIBMM_LIBNAME).pdb $(PREFIX)\bin
+       @copy /b vs$(VSVER)\$(CFG)\$(PLAT)\$(GLIBMM_LIBNAME).lib $(PREFIX)\lib
+       @copy /b vs$(VSVER)\$(CFG)\$(PLAT)\$(GIOMM_LIBNAME).dll $(PREFIX)\bin
+       @copy /b vs$(VSVER)\$(CFG)\$(PLAT)\$(GIOMM_LIBNAME).pdb $(PREFIX)\bin
+       @copy /b vs$(VSVER)\$(CFG)\$(PLAT)\$(GIOMM_LIBNAME).lib $(PREFIX)\lib
+       @copy /b vs$(VSVER)\$(CFG)\$(PLAT)\$(GLIBMM_EXTRA_DEFS_GEN_LIBNAME).dll $(PREFIX)\bin
+       @copy /b vs$(VSVER)\$(CFG)\$(PLAT)\$(GLIBMM_EXTRA_DEFS_GEN_LIBNAME).pdb $(PREFIX)\bin
+       @copy /b vs$(VSVER)\$(CFG)\$(PLAT)\$(GLIBMM_EXTRA_DEFS_GEN_LIBNAME).lib $(PREFIX)\lib
        @copy ..\glib\glibmm.h "$(PREFIX)\include\glibmm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\"
        @copy ..\gio\giomm.h "$(PREFIX)\include\giomm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\"
        @for %h in ($(glibmm_files_all_h)) do @if exist ..\glib\glibmm\%h copy ..\glib\glibmm\%h 
"$(PREFIX)\include\glibmm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\glibmm\%h"
        @for %h in ($(glibmm_files_all_h)) do @if exist ..\untracked\glib\glibmm\%h copy 
..\untracked\glib\glibmm\%h 
"$(PREFIX)\include\glibmm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\glibmm\%h"
-       @for %h in ($(glibmm_files_all_h)) do @if exist vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\%h copy 
vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\%h 
"$(PREFIX)\include\glibmm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\glibmm\%h"
+       @for %h in ($(glibmm_files_all_h)) do @if exist vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\%h copy 
vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\%h 
"$(PREFIX)\include\glibmm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\glibmm\%h"
        @for %h in ($(glibmm_generated_private_headers)) do @if exist ..\glib\glibmm\private\%h copy 
..\glib\glibmm\private\%h 
"$(PREFIX)\include\glibmm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\glibmm\private\%h"
        @for %h in ($(glibmm_generated_private_headers)) do @if exist ..\untracked\glib\glibmm\private\%h 
copy ..\untracked\glib\glibmm\private\%h 
"$(PREFIX)\include\glibmm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\glibmm\private\%h"
-       @for %h in ($(glibmm_generated_private_headers)) do @if exist 
vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\private\%h copy vs$(PDBVER)\$(CFG)\$(PLAT)\glibmm\private\%h 
"$(PREFIX)\include\glibmm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\glibmm\private\%h"
+       @for %h in ($(glibmm_generated_private_headers)) do @if exist 
vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\private\%h copy vs$(VSVER)\$(CFG)\$(PLAT)\glibmm\private\%h 
"$(PREFIX)\include\glibmm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\glibmm\private\%h"
        @for %h in ($(glibmm_files_extra_ph_int)) do @copy ..\glib\glibmm\%h 
"$(PREFIX)\include\glibmm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\glibmm\%h"
        @for %h in ($(giomm_generated_headers) $(giomm_files_extra_h)) do @if exist ..\gio\giomm\%h copy 
..\gio\giomm\%h "$(PREFIX)\include\giomm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\giomm\%h"
        @for %h in ($(giomm_generated_headers) $(giomm_files_extra_h)) do @if exist ..\untracked\gio\giomm\%h 
copy ..\untracked\gio\giomm\%h 
"$(PREFIX)\include\giomm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\giomm\%h"
-       @for %h in ($(giomm_generated_headers) $(giomm_files_extra_h)) do @if exist 
vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\%h copy vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\%h 
"$(PREFIX)\include\giomm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\giomm\%h"
+       @for %h in ($(giomm_generated_headers) $(giomm_files_extra_h)) do @if exist 
vs$(VSVER)\$(CFG)\$(PLAT)\giomm\%h copy vs$(VSVER)\$(CFG)\$(PLAT)\giomm\%h 
"$(PREFIX)\include\giomm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\giomm\%h"
        @for %h in ($(giomm_generated_private_headers)) do @if exist ..\gio\giomm\private\%h copy 
..\gio\giomm\private\%h 
"$(PREFIX)\include\giomm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\giomm\private\%h"
        @for %h in ($(giomm_generated_private_headers)) do @if exist ..\untracked\gio\giomm\private\%h copy 
..\untracked\gio\giomm\private\%h 
"$(PREFIX)\include\giomm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\giomm\private\%h"
-       @for %h in ($(giomm_generated_private_headers)) do @if exist 
vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\private\%h copy vs$(PDBVER)\$(CFG)\$(PLAT)\giomm\private\%h 
"$(PREFIX)\include\giomm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\giomm\private\%h"
+       @for %h in ($(giomm_generated_private_headers)) do @if exist 
vs$(VSVER)\$(CFG)\$(PLAT)\giomm\private\%h copy vs$(VSVER)\$(CFG)\$(PLAT)\giomm\private\%h 
"$(PREFIX)\include\giomm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\giomm\private\%h"
        @copy ".\glibmm\glibmmconfig.h" 
"$(PREFIX)\lib\glibmm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\include\"
        @copy ".\giomm\giommconfig.h" 
"$(PREFIX)\lib\giomm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\include\"
        @copy "..\tools\extra_defs_gen\generate_extra_defs.h" 
"$(PREFIX)\include\glibmm-$(GLIBMM_MAJOR_VERSION).$(GLIBMM_MINOR_VERSION)\glibmm_generate_extra_defs\"


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