mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
f4cdf90d73
Changed the build to use /MD flag so that DDL version of C runtime is used. To make sure MariaDB is always runnable on target system, include redistributable CRT libraries into installer. For MSI package, use Microsoft's merge modules. For ZIP use "applocal" approach,i.e place redistributable dlls into the bin directory of the package(via InstallRequiredSystemLibraries cmake module) The space overhead of libraries in negligible, ~ 3MB unpacked. There are 2 cases, where we still link C runtime statically - Upgrade wizard, it uses MFC, and we link statically to avoid redistribute also whole MFC (for this single application, does not make much sense). - MSI installer's custom action dll wixca.dll.Here, we need static link so that MSI won't fail on a target system that does not have VC++2015 runtime already installed.
121 lines
4.7 KiB
CMake
121 lines
4.7 KiB
CMake
|
|
IF(ESSENTIALS)
|
|
SET(CPACK_COMPONENTS_USED "Server;Client")
|
|
SET(CPACK_WIX_UI "MyWixUI_Mondo")
|
|
IF(CMAKE_SIZEOF_VOID_P MATCHES 8)
|
|
SET(CPACK_PACKAGE_FILE_NAME "mariadb-essential-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-winx64")
|
|
ELSE()
|
|
SET(CPACK_PACKAGE_FILE_NAME "mariadb-essential-${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}-win32")
|
|
ENDIF()
|
|
ELSE()
|
|
SET(CPACK_COMPONENTS_USED
|
|
"Server;Client;Development;SharedLibraries;Documentation;Readme;Common;connect-engine;ClientPlugins;gssapi-server;gssapi-client;aws-key-management;rocksdb-engine;backup")
|
|
ENDIF()
|
|
|
|
SET( WIX_FEATURE_MySQLServer_EXTRA_FEATURES "DBInstance;SharedClientServerComponents")
|
|
# Some components like Embedded are optional
|
|
# We will build MSI without embedded if it was not selected for build
|
|
#(need to modify CPACK_COMPONENTS_ALL for that)
|
|
SET(CPACK_ALL)
|
|
FOREACH(comp1 ${CPACK_COMPONENTS_USED})
|
|
SET(found)
|
|
FOREACH(comp2 ${CPACK_COMPONENTS_ALL})
|
|
IF(comp1 STREQUAL comp2)
|
|
SET(found 1)
|
|
BREAK()
|
|
ENDIF()
|
|
ENDFOREACH()
|
|
IF(found)
|
|
SET(CPACK_ALL ${CPACK_ALL} ${comp1})
|
|
ENDIF()
|
|
ENDFOREACH()
|
|
SET(CPACK_COMPONENTS_ALL ${CPACK_ALL})
|
|
|
|
# Always install (hidden), includes Readme files
|
|
SET(CPACK_COMPONENT_GROUP_ALWAYSINSTALL_HIDDEN 1)
|
|
SET(CPACK_COMPONENT_README_GROUP "AlwaysInstall")
|
|
SET(CPACK_COMPONENT_COMMON_GROUP "AlwaysInstall")
|
|
SET(CPACK_COMPONENT_VCCRT_GROUP "AlwaysInstall")
|
|
|
|
# Feature MySQL Server
|
|
SET(CPACK_COMPONENT_GROUP_MYSQLSERVER_DISPLAY_NAME "MariaDB Server")
|
|
SET(CPACK_COMPONENT_GROUP_MYSQLSERVER_EXPANDED "1")
|
|
SET(CPACK_COMPONENT_GROUP_MYSQLSERVER_DESCRIPTION "Install server")
|
|
# Subfeature "Server" (hidden)
|
|
SET(CPACK_COMPONENT_SERVER_GROUP "MySQLServer")
|
|
SET(CPACK_COMPONENT_SERVER_HIDDEN 1)
|
|
# Subfeature "Client"
|
|
SET(CPACK_COMPONENT_CLIENT_GROUP "MySQLServer")
|
|
SET(CPACK_COMPONENT_CLIENT_DISPLAY_NAME "Client Programs")
|
|
SET(CPACK_COMPONENT_CLIENT_DESCRIPTION
|
|
"Various helpful (commandline) tools including the mysql command line client" )
|
|
# Subfeature "Debug binaries"
|
|
SET(CPACK_COMPONENT_DEBUGBINARIES_GROUP "MySQLServer")
|
|
SET(CPACK_COMPONENT_DEBUGBINARIES_DISPLAY_NAME "Debug binaries")
|
|
SET(CPACK_COMPONENT_DEBUGBINARIES_DESCRIPTION
|
|
"Debug/trace versions of executables and libraries" )
|
|
#SET(CPACK_COMPONENT_DEBUGBINARIES_WIX_LEVEL 2)
|
|
|
|
# Subfeature "Backup"
|
|
SET(CPACK_COMPONENT_BACKUP_GROUP "MySQLServer")
|
|
SET(CPACK_COMPONENT_BACKUP_DISPLAY_NAME "Backup utilities")
|
|
SET(CPACK_COMPONENT_BACKUP_DESCRIPTION "Installs backup utilities(mariabackup and mbstream)")
|
|
|
|
|
|
#Miscellaneous (hidden) components, part of server / or client programs
|
|
FOREACH(comp connect-engine ClientPlugins gssapi-server gssapi-client aws-key-management rocksdb-engine)
|
|
STRING(TOUPPER "${comp}" comp)
|
|
SET(CPACK_COMPONENT_${comp}_GROUP "MySQLServer")
|
|
SET(CPACK_COMPONENT_${comp}_HIDDEN 1)
|
|
ENDFOREACH()
|
|
|
|
#Feature "Devel"
|
|
SET(CPACK_COMPONENT_GROUP_DEVEL_DISPLAY_NAME "Development Components")
|
|
SET(CPACK_COMPONENT_GROUP_DEVEL_DESCRIPTION "Installs C/C++ header files and libraries")
|
|
#Subfeature "Development"
|
|
SET(CPACK_COMPONENT_DEVELOPMENT_GROUP "Devel")
|
|
SET(CPACK_COMPONENT_DEVELOPMENT_HIDDEN 1)
|
|
|
|
#Subfeature "Shared libraries"
|
|
SET(CPACK_COMPONENT_SHAREDLIBRARIES_GROUP "Devel")
|
|
SET(CPACK_COMPONENT_SHAREDLIBRARIES_DISPLAY_NAME "Client C API library (shared)")
|
|
SET(CPACK_COMPONENT_SHAREDLIBRARIES_DESCRIPTION "Installs shared client library")
|
|
|
|
#Subfeature "Embedded"
|
|
SET(CPACK_COMPONENT_EMBEDDED_GROUP "Devel")
|
|
SET(CPACK_COMPONENT_EMBEDDED_DISPLAY_NAME "Embedded server library")
|
|
SET(CPACK_COMPONENT_EMBEDDED_DESCRIPTION "Installs embedded server library")
|
|
SET(CPACK_COMPONENT_EMBEDDED_WIX_LEVEL 2)
|
|
|
|
#Feature Debug Symbols
|
|
SET(CPACK_COMPONENT_GROUP_DEBUGSYMBOLS_DISPLAY_NAME "Debug Symbols")
|
|
SET(CPACK_COMPONENT_GROUP_DEBUGSYMBOLS_DESCRIPTION "Installs Debug Symbols")
|
|
SET(CPACK_COMPONENT_DEBUGSYMBOLS_WIX_LEVEL 2)
|
|
SET(CPACK_COMPONENT_DEBUGINFO_GROUP "DebugSymbols")
|
|
SET(CPACK_COMPONENT_DEBUGINFO_HIDDEN 1)
|
|
|
|
#Feature Documentation
|
|
SET(CPACK_COMPONENT_DOCUMENTATION_DISPLAY_NAME "Documentation")
|
|
SET(CPACK_COMPONENT_DOCUMENTATION_DESCRIPTION "Installs documentation")
|
|
SET(CPACK_COMPONENT_DOCUMENTATION_WIX_LEVEL 2)
|
|
|
|
#Feature tests
|
|
SET(CPACK_COMPONENT_TEST_DISPLAY_NAME "Tests")
|
|
SET(CPACK_COMPONENT_TEST_DESCRIPTION "Installs unittests (requires Perl to run)")
|
|
SET(CPACK_COMPONENT_TEST_WIX_LEVEL 2)
|
|
|
|
|
|
#Feature Misc (hidden, installs only if everything is installed)
|
|
SET(CPACK_COMPONENT_GROUP_MISC_HIDDEN 1)
|
|
SET(CPACK_COMPONENT_GROUP_MISC_WIX_LEVEL 100)
|
|
SET(CPACK_COMPONENT_INIFILES_GROUP "Misc")
|
|
SET(CPACK_COMPONENT_SERVER_SCRIPTS_GROUP "Misc")
|
|
|
|
#Add Firewall exception for mysqld.exe
|
|
SET(bin.mysqld.exe.FILE_EXTRA "
|
|
<FirewallException Id='firewallexception.mysqld.exe' Name='[ProductName]' Scope='any'
|
|
IgnoreFailure='yes' xmlns='http://schemas.microsoft.com/wix/FirewallExtension'
|
|
/>
|
|
"
|
|
)
|
|
|