MSVC: Move MSVC year detection to DetectMachine.cmake.

This commit is contained in:
Shmuel H
2019-10-17 03:03:26 +03:00
parent d7a78fe121
commit d005eec1aa
2 changed files with 27 additions and 20 deletions

View File

@@ -30,6 +30,25 @@ IF(WIN32)
ELSE(WIN64)
SET(IS_X86 TRUE)
ENDIF(WIN64)
if(MSVC)
SET(MSVC_VER ${CMAKE_CXX_COMPILER_VERSION})
IF(MSVC_VER VERSION_GREATER 19.20 OR MSVC_VER VERSION_EQUAL 19.20)
SET(LMMS_MSVC_GENERATOR "Visual Studio 16 2019")
SET(LMMS_MSVC_YEAR 2019) # Qt only provides binaries for MSVC 2017, but 2019 is binary compatible
ELSEIF(MSVC_VER VERSION_GREATER 19.10 OR MSVC_VER VERSION_EQUAL 19.10)
SET(LMMS_MSVC_GENERATOR "Visual Studio 15 2017")
SET(LMMS_MSVC_YEAR 2017)
ELSEIF(MSVC_VER VERSION_GREATER 19.0 OR MSVC_VER VERSION_EQUAL 19.0)
SET(LMMS_MSVC_GENERATOR "Visual Studio 14 2015")
SET(LMMS_MSVC_YEAR 2015)
ELSE()
MESSAGE(SEND_WARNING "Can't detect MSVC version: ${MSVC_VER}")
ENDIF()
unset(MSVC_VER)
endif()
ELSE(WIN32)
EXEC_PROGRAM( ${CMAKE_C_COMPILER} ARGS "-dumpmachine ${CMAKE_C_FLAGS}" OUTPUT_VARIABLE Machine )
MESSAGE("Machine: ${Machine}")

View File

@@ -17,27 +17,15 @@ ENDMACRO()
IF(LMMS_BUILD_WIN32 AND NOT LMMS_BUILD_WIN64)
ADD_SUBDIRECTORY(RemoteVstPlugin)
ELSEIF(LMMS_BUILD_WIN64 AND MSVC)
SET(MSVC_VER ${CMAKE_CXX_COMPILER_VERSION})
IF(NOT CMAKE_GENERATOR_32)
IF(MSVC_VER VERSION_GREATER 19.20 OR MSVC_VER VERSION_EQUAL 19.20)
SET(CMAKE_GENERATOR_32 "Visual Studio 16 2019")
SET(MSVC_YEAR 2017) # Qt only provides binaries for MSVC 2017, but 2019 is binary compatible
ELSEIF(MSVC_VER VERSION_GREATER 19.10 OR MSVC_VER VERSION_EQUAL 19.10)
SET(CMAKE_GENERATOR_32 "Visual Studio 15 2017")
SET(MSVC_YEAR 2017)
ELSEIF(MSVC_VER VERSION_GREATER 19.0 OR MSVC_VER VERSION_EQUAL 19.0)
SET(CMAKE_GENERATOR_32 "Visual Studio 14 2015")
SET(MSVC_YEAR 2015)
ELSE()
MESSAGE(SEND_WARNING "Can't build RemoteVstPlugin32, unknown MSVC version ${MSVC_VER} and no CMAKE_GENERATOR_32 set")
RETURN()
ENDIF()
ENDIF()
IF(NOT QT_32_PREFIX)
SET(LMMS_MSVC_YEAR_FOR_QT ${LMMS_MSVC_YEAR})
if(LMMS_MSVC_YEAR_FOR_QT EQUAL 2019)
SET(LMMS_MSVC_YEAR_FOR_QT 2017) # Qt only provides binaries for MSVC 2017, but 2019 is binary compatible
endif()
GET_FILENAME_COMPONENT(QT_BIN_DIR ${QT_QMAKE_EXECUTABLE} DIRECTORY)
SET(QT_32_PREFIX "${QT_BIN_DIR}/../../msvc${MSVC_YEAR}")
SET(QT_32_PREFIX "${QT_BIN_DIR}/../../msvc${LMMS_MSVC_YEAR_FOR_QT}")
ENDIF()
#TODO: qt5 installed using vcpkg: I don't know how to detect if the user built the x86 version of qt5 from here. At least not cleanly.
@@ -48,7 +36,7 @@ ELSEIF(LMMS_BUILD_WIN64 AND MSVC)
ExternalProject_Add(RemoteVstPlugin32
"${EXTERNALPROJECT_ARGS}"
CMAKE_GENERATOR "${CMAKE_GENERATOR_32}"
CMAKE_GENERATOR "${LMMS_MSVC_GENERATOR}"
CMAKE_GENERATOR_PLATFORM Win32
#CMAKE_GENERATOR_TOOLSET "${CMAKE_GENERATOR_TOOLSET}"
CMAKE_ARGS