Add windows NSIS artifact extensions (#5244)
* MSVC: Move MSVC year detection to DetectMachine.cmake. * NSIS: Add compiler to installer name
This commit is contained in:
@@ -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}")
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
SET(WIN_PLATFORM mingw)
|
||||
if(LMMS_MSVC_YEAR)
|
||||
SET(WIN_PLATFORM "msvc${LMMS_MSVC_YEAR}")
|
||||
endif()
|
||||
|
||||
SET(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/cmake/nsis/nsis_branding.bmp")
|
||||
IF(MSVC)
|
||||
STRING(REPLACE "/" "\\\\" CPACK_PACKAGE_ICON ${CPACK_PACKAGE_ICON})
|
||||
@@ -15,7 +20,7 @@ SET(CPACK_NSIS_DEFINES "
|
||||
!include FileAssociation.nsh
|
||||
!include LogicLib.nsh
|
||||
!include WinVer.nsh")
|
||||
SET(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-win32")
|
||||
SET(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-${WIN_PLATFORM}-win32")
|
||||
SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "
|
||||
\\\${registerExtension} \\\"$INSTDIR\\\\${CMAKE_PROJECT_NAME}.exe\\\" \\\".mmp\\\" \\\"${PROJECT_NAME_UCASE} Project\\\"
|
||||
\\\${registerExtension} \\\"$INSTDIR\\\\${CMAKE_PROJECT_NAME}.exe\\\" \\\".mmpz\\\" \\\"${PROJECT_NAME_UCASE} Project (compressed)\\\"
|
||||
@@ -31,7 +36,7 @@ SET(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "
|
||||
" PARENT_SCOPE)
|
||||
|
||||
IF(WIN64)
|
||||
SET(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-win64")
|
||||
SET(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-${WIN_PLATFORM}-win64")
|
||||
SET(CPACK_INSTALL_FIX "$PROGRAMFILES64\\\\${CPACK_PACKAGE_INSTALL_DIRECTORY}\\\\")
|
||||
SET(CPACK_NSIS_DEFINES "
|
||||
${CPACK_NSIS_DEFINES}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user