Tests: Fix MFC test w/ Make-based generators (#11213)
An explicit add_definitions of _AFXDLL is required for shared library builds with non-Visual Studio generators.
This commit is contained in:
parent
54595e6d89
commit
b297da615a
|
@ -6,15 +6,23 @@ macro(replace_flags var these those)
|
||||||
string(REGEX REPLACE "${these}" "${those}" ${var} "${${var}}")
|
string(REGEX REPLACE "${these}" "${those}" ${var} "${${var}}")
|
||||||
#message(STATUS "info: ${var} changed to '${${var}}'")
|
#message(STATUS "info: ${var} changed to '${${var}}'")
|
||||||
endif()
|
endif()
|
||||||
|
message(STATUS "info: ${var}='${${var}}'")
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
macro(msvc_link_to_static_crt)
|
macro(msvc_link_to_static_crt)
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
|
set(has_correct_flag 0)
|
||||||
foreach(lang C CXX)
|
foreach(lang C CXX)
|
||||||
foreach(suffix "" _DEBUG _MINSIZEREL _RELEASE _RELWITHDEBINFO)
|
foreach(suffix "" _DEBUG _MINSIZEREL _RELEASE _RELWITHDEBINFO)
|
||||||
replace_flags("CMAKE_${lang}_FLAGS${suffix}" "/MD" "/MT")
|
replace_flags("CMAKE_${lang}_FLAGS${suffix}" "/MD" "/MT")
|
||||||
|
if(CMAKE_${lang}_FLAGS${suffix} MATCHES "/MT")
|
||||||
|
set(has_correct_flag 1)
|
||||||
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
if(NOT has_correct_flag)
|
||||||
|
message(FATAL_ERROR "no CMAKE_*_FLAGS var contains /MT")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
@ -39,6 +47,10 @@ set(CMAKE_MFC_FLAG "@CMAKE_MFC_FLAG_VALUE@")
|
||||||
|
|
||||||
if("${CMAKE_MFC_FLAG}" STREQUAL "1")
|
if("${CMAKE_MFC_FLAG}" STREQUAL "1")
|
||||||
msvc_link_to_static_crt()
|
msvc_link_to_static_crt()
|
||||||
|
else()
|
||||||
|
# VS generators add this automatically based on the CMAKE_MFC_FLAG value,
|
||||||
|
# but generators matching "Make" require:
|
||||||
|
add_definitions(-D_AFXDLL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_executable(mfc1 WIN32 ${files})
|
add_executable(mfc1 WIN32 ${files})
|
||||||
|
|
Loading…
Reference in New Issue