diff -Naur mariadb-5.5.46/cmake/install_macros.cmake mariadb-5.5.46.new/cmake/install_macros.cmake
--- mariadb-5.5.46/cmake/install_macros.cmake	2015-10-09 19:50:17.000000000 +0300
+++ mariadb-5.5.46.new/cmake/install_macros.cmake	2015-10-25 18:27:50.382934600 +0200
@@ -34,9 +34,19 @@
   FOREACH(target ${targets})
     GET_TARGET_PROPERTY(type ${target} TYPE)
     GET_TARGET_PROPERTY(location ${target} LOCATION)
+	
+	GET_TARGET_PROPERTY(__POSTFIX ${target} DEBUG_POSTFIX)
+	
     STRING(REPLACE ".exe" ".pdb" pdb_location ${location})
-    STRING(REPLACE ".dll" ".pdb" pdb_location ${pdb_location})
-    STRING(REPLACE ".lib" ".pdb" pdb_location ${pdb_location})
+	
+	IF(__POSTFIX)
+		STRING(REPLACE ".dll" "${__POSTFIX}.pdb" pdb_location ${pdb_location})
+		STRING(REPLACE ".lib" "${__POSTFIX}.pdb" pdb_location ${pdb_location})
+	ELSE()
+		STRING(REPLACE ".dll" ".pdb" pdb_location ${pdb_location})
+		STRING(REPLACE ".lib" ".pdb" pdb_location ${pdb_location})		
+	ENDIF()
+	
     IF(CMAKE_GENERATOR MATCHES "Visual Studio")
       STRING(REPLACE
         "${CMAKE_CFG_INTDIR}" "\${CMAKE_INSTALL_CONFIG_NAME}"
diff -Naur mariadb-5.5.46/cmake/libutils.cmake mariadb-5.5.46.new/cmake/libutils.cmake
--- mariadb-5.5.46/cmake/libutils.cmake	2015-10-09 19:50:17.000000000 +0300
+++ mariadb-5.5.46.new/cmake/libutils.cmake	2015-10-25 18:27:50.388934900 +0200
@@ -101,6 +101,9 @@
   SET(SOURCES ${ARGN})
   LIST(REMOVE_AT SOURCES 0)
   ADD_LIBRARY(${TARGET} STATIC ${SOURCES})
+  IF(CMAKE_DEBUG_POSTFIX)
+	SET_TARGET_PROPERTIES(${TARGET} PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX})
+  ENDIF()
   IF(NOT _SKIP_PIC)
     SET_TARGET_PROPERTIES(${TARGET} PROPERTIES  COMPILE_FLAGS
     "${CMAKE_SHARED_LIBRARY_C_FLAGS}")
@@ -136,6 +139,8 @@
   FOREACH(LIB ${LIBS_TO_MERGE})
     GET_TARGET_PROPERTY(LIB_LOCATION ${LIB} LOCATION)
     GET_TARGET_PROPERTY(LIB_TYPE ${LIB} TYPE)
+	GET_TARGET_PROPERTY(LIB_OUTNAME ${LIB} OUTPUT_NAME)
+	STRING(REPLACE ".lib" "${CMAKE_DEBUG_POSTFIX}.lib" LIB_LOCATION ${LIB_LOCATION})
     IF(NOT LIB_LOCATION)
        # 3rd party library like libz.so. Make sure that everything
        # that links to our library links to this one as well.
diff -Naur mariadb-5.5.46/cmake/os/Windows.cmake mariadb-5.5.46.new/cmake/os/Windows.cmake
--- mariadb-5.5.46/cmake/os/Windows.cmake	2015-10-09 19:50:17.000000000 +0300
+++ mariadb-5.5.46.new/cmake/os/Windows.cmake	2015-10-25 18:39:16.663187600 +0200
@@ -187,6 +187,7 @@
 CHECK_SYMBOL_REPLACEMENT(SIGPIPE SIGINT signal.h)
 CHECK_SYMBOL_REPLACEMENT(isnan _isnan float.h)
 CHECK_SYMBOL_REPLACEMENT(finite _finite float.h)
+CHECK_SYMBOL_REPLACEMENT(tzname _tzname time.h)
 CHECK_FUNCTION_REPLACEMENT(popen _popen)
 CHECK_FUNCTION_REPLACEMENT(pclose _pclose)
 CHECK_FUNCTION_REPLACEMENT(access _access)
diff -Naur mariadb-5.5.46/cmake/os/WindowsCache.cmake mariadb-5.5.46.new/cmake/os/WindowsCache.cmake
--- mariadb-5.5.46/cmake/os/WindowsCache.cmake	2015-10-09 19:50:17.000000000 +0300
+++ mariadb-5.5.46.new/cmake/os/WindowsCache.cmake	2015-10-25 18:58:26.911978000 +0200
@@ -101,7 +101,11 @@
 SET(HAVE_IPV6 TRUE CACHE  INTERNAL "")
 SET(HAVE_IPV6_V6ONLY 1 CACHE  INTERNAL "")
 SET(HAVE_ISINF CACHE  INTERNAL "")
+IF(MSVC_VERSION LESS 1900)
 SET(HAVE_ISNAN CACHE  INTERNAL "")
+ELSE()
+SET(HAVE_ISNAN CACHE 1 INTERNAL "")
+ENDIF()
 SET(HAVE_ISSETUGID CACHE  INTERNAL "")
 SET(HAVE_GETUID CACHE  INTERNAL "")
 SET(HAVE_GETEUID CACHE  INTERNAL "")
@@ -231,7 +235,11 @@
 SET(HAVE_SIZEOF_U_INT32_T FALSE CACHE  INTERNAL "")
 SET(HAVE_SIZE_OF_SSIZE_T FALSE CACHE  INTERNAL "")
 SET(HAVE_SLEEP CACHE  INTERNAL "")
+IF(MSVC_VERSION LESS 1900)
 SET(HAVE_SNPRINTF CACHE  INTERNAL "")
+ELSE()
+SET(HAVE_SNPRINTF CACHE 1 INTERNAL "")
+ENDIF()
 SET(HAVE_SOCKADDR_STORAGE_SS_FAMILY 1 CACHE  INTERNAL "")
 SET(HAVE_SOLARIS_STYLE_GETHOST CACHE  INTERNAL "")
 SET(STACK_DIRECTION -1 CACHE INTERNAL "")
@@ -308,7 +316,11 @@
 SET(HAVE_TIMES CACHE  INTERNAL "")
 SET(HAVE_TIMESPEC_TS_SEC CACHE  INTERNAL "")
 SET(HAVE_TIME_H 1 CACHE  INTERNAL "")
+IF(MSVC_VERSION LESS 1900)
 SET(HAVE_TZNAME 1 CACHE  INTERNAL "")
+ELSE()
+SET(HAVE_TZNAME CACHE  INTERNAL "")
+ENDIF()
 SET(HAVE_UNISTD_H CACHE  INTERNAL "")
 SET(HAVE_UTIME_H CACHE  INTERNAL "")
 SET(HAVE_VALLOC CACHE  INTERNAL "")
@@ -335,6 +347,7 @@
 IF(MSVC_VERSION GREATER 1310)
  SET(HAVE_strtok_s 1 CACHE  INTERNAL "")
 ENDIF()
+SET(HAVE__tzname 1 CACHE  INTERNAL "")
 SET(STDC_HEADERS CACHE 1 INTERNAL "")
 SET(STRUCT_DIRENT_HAS_D_INO CACHE INTERNAL "")
 SET(STRUCT_DIRENT_HAS_D_INO CACHE INTERNAL "")
diff -Naur mariadb-5.5.46/CMakeLists.txt mariadb-5.5.46.new/CMakeLists.txt
--- mariadb-5.5.46/CMakeLists.txt	2015-10-09 19:50:17.000000000 +0300
+++ mariadb-5.5.46.new/CMakeLists.txt	2015-10-25 19:01:17.221719200 +0200
@@ -26,6 +26,8 @@
   CMAKE_POLICY(SET CMP0022 OLD)
 ENDIF()
 
+set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ON)
+
 # We use the LOCATION target property (CMP0026)
 # and get_target_property() for non-existent targets (CMP0045)
 # and INSTALL_NAME_DIR (CMP0042)
@@ -253,9 +255,11 @@
   SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -fprofile-arcs -ftest-coverage -lgcov")
 ENDIF()
 
+IF(NOT WIN32)
 MY_CHECK_C_COMPILER_FLAG(-ggdb3 HAVE_GGDB3)
 SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -ggdb3")
 SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb3")
+ENDIF()
 
 OPTION(ENABLED_LOCAL_INFILE
  "If we should should enable LOAD DATA LOCAL by default" ${IF_WIN})
@@ -328,7 +332,7 @@
   "PATH to MySQL TMP dir. Defaults to the P_tmpdir macro in <stdio.h>")
 IF(TMPDIR STREQUAL "")
   # Do not quote it, to refer to the P_tmpdir macro.
-  SET(DEFAULT_TMPDIR "P_tmpdir")
+  SET(DEFAULT_TMPDIR "\"tmp\"")
 ELSE()
   # Quote it, to make it a const char string.
   SET(DEFAULT_TMPDIR "\"${TMPDIR}\"")
@@ -421,7 +425,7 @@
 INCLUDE(cmake/tags.cmake)
 
 IF(WIN32)
-  ADD_SUBDIRECTORY(win/upgrade_wizard)
+  #ADD_SUBDIRECTORY(win/upgrade_wizard)
   ADD_SUBDIRECTORY(win/packaging)
 ENDIF()
 ADD_SUBDIRECTORY(packaging/solaris)
diff -Naur mariadb-5.5.46/config.h.cmake mariadb-5.5.46.new/config.h.cmake
--- mariadb-5.5.46/config.h.cmake	2015-10-09 19:50:17.000000000 +0300
+++ mariadb-5.5.46.new/config.h.cmake	2015-10-25 18:39:42.159645900 +0200
@@ -514,6 +514,7 @@
 #cmakedefine strtok_r @strtok_r@
 #cmakedefine strtoll @strtoll@
 #cmakedefine strtoull @strtoull@
+#cmakedefine tzname @tzname@
 #cmakedefine vsnprintf @vsnprintf@
 #if (_MSC_VER > 1310)
 # define HAVE_SETENV
diff -Naur mariadb-5.5.46/include/my_pthread.h mariadb-5.5.46.new/include/my_pthread.h
--- mariadb-5.5.46/include/my_pthread.h	2015-10-09 19:50:17.000000000 +0300
+++ mariadb-5.5.46.new/include/my_pthread.h	2015-10-25 18:42:39.957815400 +0200
@@ -86,11 +86,15 @@
 #define MY_PTHREAD_ONCE_INPROGRESS 1
 #define MY_PTHREAD_ONCE_DONE 2
 
+#if _MSC_VER < 1900
+
 struct timespec {
   time_t tv_sec;
   long tv_nsec;
 };
 
+#endif
+
 int win_pthread_mutex_trylock(pthread_mutex_t *mutex);
 int pthread_create(pthread_t *, const pthread_attr_t *, pthread_handler, void *);
 int pthread_cond_init(pthread_cond_t *cond, const pthread_condattr_t *attr);
diff -Naur mariadb-5.5.46/libmysql/CMakeLists.txt mariadb-5.5.46.new/libmysql/CMakeLists.txt
--- mariadb-5.5.46/libmysql/CMakeLists.txt	2015-10-09 19:50:17.000000000 +0300
+++ mariadb-5.5.46.new/libmysql/CMakeLists.txt	2015-10-25 18:44:52.215380100 +0200
@@ -379,6 +379,15 @@
   ../sql/password.c
   ${CLIENT_SOURCES_EXTRA}
 )
+
+IF (WIN32 AND MSVC_VERSION GREATER 1820)
+  SET_SOURCE_FILES_PROPERTIES(
+    ../sql-common/my_time.c
+    PROPERTIES COMPILE_FLAGS /Zc:inline-
+  )
+ENDIF()
+
+
 ADD_CONVENIENCE_LIBRARY(clientlib ${CLIENT_SOURCES})
 DTRACE_INSTRUMENT(clientlib)
 ADD_DEPENDENCIES(clientlib GenError)
diff -Naur mariadb-5.5.46/libmysqld/CMakeLists.txt mariadb-5.5.46.new/libmysqld/CMakeLists.txt
--- mariadb-5.5.46/libmysqld/CMakeLists.txt	2015-10-09 19:50:17.000000000 +0300
+++ mariadb-5.5.46.new/libmysqld/CMakeLists.txt	2015-10-25 18:45:44.037344100 +0200
@@ -99,6 +99,12 @@
            ${MYSYS_LIBWRAP_SOURCE}
 )
 
+IF (WIN32 AND MSVC_VERSION GREATER 1820)
+  SET_SOURCE_FILES_PROPERTIES(
+    ../sql-common/my_time.c
+    PROPERTIES COMPILE_FLAGS /Zc:inline-
+  )
+ENDIF()
 
 ADD_CONVENIENCE_LIBRARY(sql_embedded ${SQL_EMBEDDED_SOURCES})
 DTRACE_INSTRUMENT(sql_embedded)
diff -Naur mariadb-5.5.46/mysys/lf_hash.c mariadb-5.5.46.new/mysys/lf_hash.c
--- mariadb-5.5.46/mysys/lf_hash.c	2015-10-09 19:50:27.000000000 +0300
+++ mariadb-5.5.46.new/mysys/lf_hash.c	2015-10-25 18:47:36.062751600 +0200
@@ -45,7 +45,7 @@
 
 /*
   a structure to pass the context (pointers two the three successive elements
-  in a list) from lfind to linsert/ldelete
+  in a list) from lf_lfind to linsert/ldelete
 */
 typedef struct {
   intptr volatile *prev;
@@ -72,7 +72,7 @@
     cursor is positioned in either case
     pins[0..2] are used, they are NOT removed on return
 */
-static int lfind(LF_SLIST * volatile *head, CHARSET_INFO *cs, uint32 hashnr,
+static int lf_lfind(LF_SLIST * volatile *head, CHARSET_INFO *cs, uint32 hashnr,
                  const uchar *key, uint keylen, CURSOR *cursor, LF_PINS *pins)
 {
   uint32       cur_hashnr;
@@ -140,7 +140,7 @@
 /*
   DESCRIPTION
     insert a 'node' in the list that starts from 'head' in the correct
-    position (as found by lfind)
+    position (as found by lf_lfind)
 
   RETURN
     0     - inserted
@@ -158,7 +158,7 @@
 
   for (;;)
   {
-    if (lfind(head, cs, node->hashnr, node->key, node->keylen,
+    if (lf_lfind(head, cs, node->hashnr, node->key, node->keylen,
               &cursor, pins) &&
         (flags & LF_HASH_UNIQUE))
     {
@@ -210,7 +210,7 @@
 
   for (;;)
   {
-    if (!lfind(head, cs, hashnr, key, keylen, &cursor, pins))
+    if (!lf_lfind(head, cs, hashnr, key, keylen, &cursor, pins))
     {
       res= 1; /* not found */
       break;
@@ -234,7 +234,7 @@
             (to ensure the number of "set DELETED flag" actions
             is equal to the number of "remove from the list" actions)
           */
-          lfind(head, cs, hashnr, key, keylen, &cursor, pins);
+          lf_lfind(head, cs, hashnr, key, keylen, &cursor, pins);
         }
         res= 0;
         break;
@@ -260,12 +260,12 @@
     it uses pins[0..2], on return the pin[2] keeps the node found
     all other pins are removed.
 */
-static LF_SLIST *lsearch(LF_SLIST * volatile *head, CHARSET_INFO *cs,
+static LF_SLIST *lf_lsearch(LF_SLIST * volatile *head, CHARSET_INFO *cs,
                          uint32 hashnr, const uchar *key, uint keylen,
                          LF_PINS *pins)
 {
   CURSOR cursor;
-  int res= lfind(head, cs, hashnr, key, keylen, &cursor, pins);
+  int res= lf_lfind(head, cs, hashnr, key, keylen, &cursor, pins);
   if (res)
     _lf_pin(pins, 2, cursor.curr);
   else
@@ -448,7 +448,7 @@
     MY_ERRPTR    if OOM
 
   NOTE
-    see lsearch() for pin usage notes
+    see lf_lsearch() for pin usage notes
 */
 void *lf_hash_search(LF_HASH *hash, LF_PINS *pins, const void *key, uint keylen)
 {
@@ -462,7 +462,7 @@
     return MY_ERRPTR;
   if (*el == NULL && unlikely(initialize_bucket(hash, el, bucket, pins)))
     return MY_ERRPTR;
-  found= lsearch(el, hash->charset, my_reverse_bits(hashnr) | 1,
+  found= lf_lsearch(el, hash->charset, my_reverse_bits(hashnr) | 1,
                  (uchar *)key, keylen, pins);
   lf_rwunlock_by_pins(pins);
   return found ? found+1 : 0;
diff -Naur mariadb-5.5.46/packaging/WiX/ca/CMakeLists.txt mariadb-5.5.46.new/packaging/WiX/ca/CMakeLists.txt
--- mariadb-5.5.46/packaging/WiX/ca/CMakeLists.txt	2015-10-09 19:50:27.000000000 +0300
+++ mariadb-5.5.46.new/packaging/WiX/ca/CMakeLists.txt	2015-10-25 18:50:20.151136900 +0200
@@ -30,6 +30,12 @@
   SET(WIX35_MSVC_SUFFIX "_2008")
 ELSEIF(MSVC_VERSION EQUAL 1600)
   SET(WIX35_MSVC_SUFFIX "_2010")
+ELSEIF(MSVC_VERSION EQUAL 1700)
+  SET(WIX35_MSVC_SUFFIX "_2012")
+ELSEIF(MSVC_VERSION EQUAL 1800)
+  SET(WIX35_MSVC_SUFFIX "_2013")
+ELSEIF(MSVC_VERSION EQUAL 1900)
+  SET(WIX35_MSVC_SUFFIX "_2015")
 ELSE()
   # When next VS is out, add the correct version here
   MESSAGE(FATAL_ERROR "Unknown VS version")
diff -Naur mariadb-5.5.46/sql/CMakeLists.txt mariadb-5.5.46.new/sql/CMakeLists.txt
--- mariadb-5.5.46/sql/CMakeLists.txt	2015-10-09 19:50:27.000000000 +0300
+++ mariadb-5.5.46.new/sql/CMakeLists.txt	2015-10-25 18:51:34.798406500 +0200
@@ -103,6 +103,13 @@
  ENDIF()
 ENDIF()
 
+IF (WIN32 AND MSVC_VERSION GREATER 1820)
+  SET_SOURCE_FILES_PROPERTIES(
+    ../sql-common/my_time.c
+    PROPERTIES COMPILE_FLAGS /Zc:inline-
+  )
+ENDIF()
+
 MYSQL_ADD_PLUGIN(partition ha_partition.cc STORAGE_ENGINE DEFAULT STATIC_ONLY
 RECOMPILE_FOR_EMBEDDED)
 
