diff options
Diffstat (limited to 'win/upgrade_wizard/CMakeLists.txt')
-rw-r--r-- | win/upgrade_wizard/CMakeLists.txt | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/win/upgrade_wizard/CMakeLists.txt b/win/upgrade_wizard/CMakeLists.txt new file mode 100644 index 00000000..20a06a41 --- /dev/null +++ b/win/upgrade_wizard/CMakeLists.txt @@ -0,0 +1,46 @@ +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'" +) |