mirror of
https://github.com/MariaDB/server.git
synced 2025-01-27 09:14:17 +01:00
7541080214
The post-build custom command to embed Vista elevation manifest into mariadb-upgrade-wizard.exe seems to do something nasty to the executable, perhaps it removes and recreates it. Thus the previously created hardlink mysql_upgrade_wizard is not marked to require elevation. Solved by using MANIFESTUAC linker flag, rather than invoke mt.exe. This avoids an extra post-build step that modifies mariadb-upgrade-wizard.exe
46 lines
1.3 KiB
CMake
46 lines
1.3 KiB
CMake
IF((NOT MSVC) OR CLANG_CL OR WITH_ASAN)
|
|
RETURN()
|
|
ENDIF()
|
|
|
|
# We need MFC
|
|
# /permissive- flag does not play well with MFC, disable it.
|
|
STRING(REPLACE "/permissive-" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
|
|
FIND_PACKAGE(MFC)
|
|
IF(NOT MFC_FOUND)
|
|
IF(BUILD_RELEASE)
|
|
MESSAGE(FATAL_ERROR
|
|
"Can't find MFC. It is necessary for producing official package"
|
|
)
|
|
ENDIF()
|
|
RETURN()
|
|
ENDIF()
|
|
|
|
IF(MSVC_CRT_TYPE MATCHES "/MD")
|
|
# FORCE static CRT and MFC for upgrade wizard,
|
|
# so we do not have to redistribute MFC.
|
|
FORCE_STATIC_CRT()
|
|
SET(UPGRADE_WIZARD_SOURCES ${CMAKE_SOURCE_DIR}/sql/winservice.c)
|
|
ELSE()
|
|
SET(UPGRADE_WIZARD_LINK_LIBRARIES winservice)
|
|
ENDIF()
|
|
|
|
# MFC should be statically linked
|
|
SET(CMAKE_MFC_FLAG 1)
|
|
|
|
# Enable exception handling (avoids warnings)
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc -DNO_WARN_MBCS_MFC_DEPRECATION")
|
|
|
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/sql)
|
|
MYSQL_ADD_EXECUTABLE(mariadb-upgrade-wizard
|
|
upgrade.cpp upgradeDlg.cpp upgrade.rc ${UPGRADE_WIZARD_SOURCES}
|
|
COMPONENT Server)
|
|
|
|
|
|
TARGET_LINK_LIBRARIES(mariadb-upgrade-wizard ${UPGRADE_WIZARD_LINK_LIBRARIES})
|
|
# upgrade_wizard is Windows executable, set WIN32_EXECUTABLE so it does not
|
|
# create a console.
|
|
SET_TARGET_PROPERTIES(mariadb-upgrade-wizard PROPERTIES
|
|
WIN32_EXECUTABLE 1
|
|
LINK_FLAGS "/MANIFESTUAC:level='requireAdministrator'"
|
|
)
|