CMake build: Fix static build of cdbext and sdktool

Remove workaround for building statically, which was required for CMake
< 3.15. Since we increase the CMake requirement to 3.16, the /MD option
is no longer part of the CXX_FLAGS variables, so the old workaround
breaks the static build of these tools.

Change-Id: Ifc4b1c81210777e1274b4907feb3b023f7454191
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
Eike Ziller
2022-02-04 10:23:17 +01:00
parent 394bfb508f
commit 8e900a83e8
2 changed files with 11 additions and 21 deletions

View File

@@ -25,18 +25,6 @@ if (CMAKE_SIZEOF_VOID_P EQUAL 8)
set(ArchSuffix 64)
endif()
# statically link MSVC runtime
# see https://gitlab.kitware.com/cmake/community/-/wikis/FAQ#how-can-i-build-my-msvc-application-with-a-static-runtime
# TODO change to MSVC_RUNTIME_LIBRARY when CMake 3.15 is required
# set_property(TARGET qtcreatorcdbext PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
foreach(flag_var
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
if(${flag_var} MATCHES "/MD")
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
endif()
endforeach()
add_qtc_library(qtcreatorcdbext
COMPONENT qtcreatorcdbext
DEPENDS ${DbgEngLib}
@@ -60,6 +48,9 @@ add_qtc_library(qtcreatorcdbext
qtc_library_enabled(_library_enabled qtcreatorcdbext)
if (_library_enabled)
# statically link MSVC runtime
set_property(TARGET qtcreatorcdbext PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
find_package(Python3 3.8 COMPONENTS Development)
if (NOT ${Python3_Development_FOUND})

View File

@@ -25,15 +25,6 @@ find_package(Qt5
REQUIRED
)
if (MSVC)
# find out if Qt is static and set /MT if so
get_target_property(_input_type Qt5::Core TYPE)
if (${_input_type} STREQUAL "STATIC_LIBRARY")
string(REPLACE "/MD" "/MT" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
string(REPLACE "/MDd" "/MTd" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
endif()
endif()
if (APPLE)
find_library(FWFoundation Foundation)
endif()
@@ -74,6 +65,14 @@ add_qtc_executable(sdktool
settings.cpp settings.h
)
if (MSVC AND TARGET sdktool)
# find out if Qt is static and set /MT if so
get_target_property(_input_type Qt5::Core TYPE)
if (${_input_type} STREQUAL "STATIC_LIBRARY")
set_property(TARGET sdktool PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
endif()
endif()
extend_qtc_executable(sdktool
SOURCES_PREFIX "${UtilsSourcesDir}"
DEFINES QTCREATOR_UTILS_STATIC_LIB