From 3510319048173043969e209846050446199acdcb Mon Sep 17 00:00:00 2001 From: NikitaFeodonit Date: Mon, 21 Jan 2019 13:45:46 +0300 Subject: [PATCH 1/4] CMake: add processing the C flags for wxBUILD_USE_STATIC_RUNTIME --- build/cmake/init.cmake | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/build/cmake/init.cmake b/build/cmake/init.cmake index cbbdb81dbf..4f85330814 100644 --- a/build/cmake/init.cmake +++ b/build/cmake/init.cmake @@ -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() From 1bc43c8d7a58103123e2c38631b3deebed916519 Mon Sep 17 00:00:00 2001 From: NikitaFeodonit Date: Mon, 21 Jan 2019 13:46:24 +0300 Subject: [PATCH 2/4] CMake: in wx_get_dependencies, for existing targets, use its LOCATION instead of the target name --- build/cmake/config.cmake | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/build/cmake/config.cmake b/build/cmake/config.cmake index 27e9f2a450..39a4257d9d 100644 --- a/build/cmake/config.cmake +++ b/build/cmake/config.cmake @@ -32,7 +32,12 @@ 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) + if(TARGET ${dep}) + get_target_property(dep_path ${dep} LOCATION) + else() + set(dep_path ${dep}) + endif() + get_filename_component(name ${dep_path} NAME) wx_string_append(${var} "${name} ") endforeach() string(STRIP ${${var}} ${var}) From ad9175d79b4026578ce746d9ddc5353901ba986d Mon Sep 17 00:00:00 2001 From: NikitaFeodonit Date: Mon, 21 Jan 2019 13:47:15 +0300 Subject: [PATCH 3/4] CMake: wx-config can not be used to connect the libraries with the debug suffix, remove 'd' suffix for the UNIX build in wx_set_target_properties --- build/cmake/functions.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build/cmake/functions.cmake b/build/cmake/functions.cmake index d5dafa2b65..709a59760f 100644 --- a/build/cmake/functions.cmake +++ b/build/cmake/functions.cmake @@ -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) From 537564ae1944bfb8ae3ce605b3234f0dadeb09d5 Mon Sep 17 00:00:00 2001 From: NikitaFeodonit Date: Mon, 21 Jan 2019 18:19:39 +0300 Subject: [PATCH 4/4] CMake: use the target property OUTPUT_NAME instead of LOCATION in wx_get_dependencies --- build/cmake/config.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build/cmake/config.cmake b/build/cmake/config.cmake index 39a4257d9d..90277f3955 100644 --- a/build/cmake/config.cmake +++ b/build/cmake/config.cmake @@ -33,12 +33,12 @@ macro(wx_get_dependencies var lib) get_target_property(deps ${lib} LINK_LIBRARIES) foreach(dep IN LISTS deps) if(TARGET ${dep}) - get_target_property(dep_path ${dep} LOCATION) + get_target_property(dep_name ${dep} OUTPUT_NAME) + set(dep_name "-l${dep_name}") else() - set(dep_path ${dep}) + get_filename_component(dep_name ${dep} NAME) endif() - get_filename_component(name ${dep_path} NAME) - wx_string_append(${var} "${name} ") + wx_string_append(${var} "${dep_name} ") endforeach() string(STRIP ${${var}} ${var}) endif()