Fixes for CMake build when using wxBUILD_USE_STATIC_RUNTIME and more.

See https://github.com/wxWidgets/wxWidgets/pull/1154
This commit is contained in:
Vadim Zeitlin
2019-01-21 23:45:39 +01:00
3 changed files with 23 additions and 7 deletions

View File

@@ -32,8 +32,13 @@ macro(wx_get_dependencies var lib)
if(TARGET ${lib})
get_target_property(deps ${lib} LINK_LIBRARIES)
foreach(dep IN LISTS deps)
get_filename_component(name ${dep} NAME)
wx_string_append(${var} "${name} ")
if(TARGET ${dep})
get_target_property(dep_name ${dep} OUTPUT_NAME)
set(dep_name "-l${dep_name}")
else()
get_filename_component(dep_name ${dep} NAME)
endif()
wx_string_append(${var} "${dep_name} ")
endforeach()
string(STRIP ${${var}} ${var})
endif()

View File

@@ -178,7 +178,9 @@ function(wx_set_target_properties target_name is_base)
set_target_properties(${target_name}
PROPERTIES
OUTPUT_NAME wx_${lib_toolkit}${lib_unicode}${lib_suffix}-${lib_version}
OUTPUT_NAME_DEBUG wx_${lib_toolkit}${lib_unicode}d${lib_suffix}-${lib_version}
# NOTE: wx-config can not be used to connect the libraries with the debug suffix.
#OUTPUT_NAME_DEBUG wx_${lib_toolkit}${lib_unicode}d${lib_suffix}-${lib_version}
OUTPUT_NAME_DEBUG wx_${lib_toolkit}${lib_unicode}${lib_suffix}-${lib_version}
)
endif()
if(CYGWIN)

View File

@@ -11,13 +11,22 @@
if(DEFINED wxBUILD_USE_STATIC_RUNTIME AND wxBUILD_USE_STATIC_RUNTIME)
# Set MSVC runtime flags for all configurations
foreach(cfg "" ${CMAKE_CONFIGURATION_TYPES})
set(flag_var CMAKE_CXX_FLAGS)
set(c_flag_var CMAKE_C_FLAGS)
set(cxx_flag_var CMAKE_CXX_FLAGS)
if(cfg)
string(TOUPPER ${cfg} cfg_upper)
wx_string_append(flag_var "_${cfg_upper}")
wx_string_append(c_flag_var "_${cfg_upper}")
wx_string_append(cxx_flag_var "_${cfg_upper}")
endif()
if(${flag_var} MATCHES "/MD")
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
if(${c_flag_var} MATCHES "/MD")
string(REPLACE "/MD" "/MT" ${c_flag_var} "${${c_flag_var}}")
set(${c_flag_var} ${${c_flag_var}} CACHE STRING
"Flags used by the C compiler during ${cfg_upper} builds." FORCE)
endif()
if(${cxx_flag_var} MATCHES "/MD")
string(REPLACE "/MD" "/MT" ${cxx_flag_var} "${${cxx_flag_var}}")
set(${cxx_flag_var} ${${cxx_flag_var}} CACHE STRING
"Flags used by the CXX compiler during ${cfg_upper} builds." FORCE)
endif()
endforeach()
endif()