summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Krause <felix.krause@devoteam.com>2014-05-06 06:27:59 (GMT)
committerBrad King <brad.king@kitware.com>2014-05-06 12:54:39 (GMT)
commitc0a6646d2fdff6ccd6f217096d60a9f004c14b51 (patch)
tree2b5dfeed11d73fec4dcb6f496e5ea64dcd63ce6b
parentc553d68798b277506efc361f70987c81fea55fec (diff)
downloadCMake-c0a6646d2fdff6ccd6f217096d60a9f004c14b51.zip
CMake-c0a6646d2fdff6ccd6f217096d60a9f004c14b51.tar.gz
CMake-c0a6646d2fdff6ccd6f217096d60a9f004c14b51.tar.bz2
InstallRequiredSystemLibraries: MBCS MFC is optional on VS 12 (#14903)
The MBCS (Multi-Byte Character Set) has been deprecated with VS 2013, and MSVC no longer ships with an MBCS-version of MFC by default. However, it can be downloaded as an add-on. Teach InstallRequiredSystemLibraries to install the MBCS MFC only for VS < 12 or if it happens to exist on the system.
-rw-r--r--Modules/InstallRequiredSystemLibraries.cmake25
1 files changed, 21 insertions, 4 deletions
diff --git a/Modules/InstallRequiredSystemLibraries.cmake b/Modules/InstallRequiredSystemLibraries.cmake
index 013a028..86033e6 100644
--- a/Modules/InstallRequiredSystemLibraries.cmake
+++ b/Modules/InstallRequiredSystemLibraries.cmake
@@ -295,25 +295,42 @@ if(MSVC)
macro(MFC_FILES_FOR_VERSION version)
set(v "${version}")
+ # Multi-Byte Character Set versions of MFC are available as optional
+ # addon since Visual Studio 12. So for version 12 or higher, check
+ # whether they are available and exclude them if they are not.
+ if("${v}" LESS 12 OR EXISTS "${MSVC${v}_MFC_DIR}/mfc${v}0d.dll")
+ set(mbcs ON)
+ else()
+ set(mbcs OFF)
+ endif()
+
if(CMAKE_INSTALL_DEBUG_LIBRARIES)
set(MSVC${v}_MFC_DIR
"${MSVC${v}_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.DebugMFC")
set(__install__libs ${__install__libs}
- "${MSVC${v}_MFC_DIR}/mfc${v}0d.dll"
"${MSVC${v}_MFC_DIR}/mfc${v}0ud.dll"
- "${MSVC${v}_MFC_DIR}/mfcm${v}0d.dll"
"${MSVC${v}_MFC_DIR}/mfcm${v}0ud.dll"
)
+ if(mbcs)
+ set(__install__libs ${__install__libs}
+ "${MSVC${v}_MFC_DIR}/mfc${v}0d.dll"
+ "${MSVC${v}_MFC_DIR}/mfcm${v}0d.dll"
+ )
+ endif()
endif()
set(MSVC${v}_MFC_DIR "${MSVC${v}_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.MFC")
if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
set(__install__libs ${__install__libs}
- "${MSVC${v}_MFC_DIR}/mfc${v}0.dll"
"${MSVC${v}_MFC_DIR}/mfc${v}0u.dll"
- "${MSVC${v}_MFC_DIR}/mfcm${v}0.dll"
"${MSVC${v}_MFC_DIR}/mfcm${v}0u.dll"
)
+ if(mbcs)
+ set(__install__libs ${__install__libs}
+ "${MSVC${v}_MFC_DIR}/mfc${v}0.dll"
+ "${MSVC${v}_MFC_DIR}/mfcm${v}0.dll"
+ )
+ endif()
endif()
# include the language dll's as well as the actuall dll's