mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -06:00
Since 3.19, CMake generates a deprecation warning when using a minimum version less than 2.8.12. This eliminates those warnings generated during tests, which are typically hidden from the user and developer but are being generated nonetheless.
71 lines
1.7 KiB
CMake
71 lines
1.7 KiB
CMake
cmake_minimum_required(VERSION 2.8.12)
|
|
project(mfc1)
|
|
|
|
macro(replace_flags var these those)
|
|
if("${${var}}" MATCHES "${these}")
|
|
string(REGEX REPLACE "${these}" "${those}" ${var} "${${var}}")
|
|
#message(STATUS "info: ${var} changed to '${${var}}'")
|
|
endif()
|
|
message(STATUS "info: ${var}='${${var}}'")
|
|
endmacro()
|
|
|
|
macro(msvc_link_to_static_crt)
|
|
if(MSVC)
|
|
set(has_correct_flag 0)
|
|
foreach(lang C CXX)
|
|
foreach(suffix "" _DEBUG _MINSIZEREL _RELEASE _RELWITHDEBINFO)
|
|
replace_flags("CMAKE_${lang}_FLAGS${suffix}" "/MD" "/MT")
|
|
if(CMAKE_${lang}_FLAGS${suffix} MATCHES "/MT")
|
|
set(has_correct_flag 1)
|
|
endif()
|
|
endforeach()
|
|
endforeach()
|
|
if(NOT has_correct_flag)
|
|
message(FATAL_ERROR "no CMAKE_*_FLAGS var contains /MT")
|
|
endif()
|
|
endif()
|
|
endmacro()
|
|
|
|
set(files
|
|
ChildFrm.cpp
|
|
ChildFrm.h
|
|
MainFrm.cpp
|
|
MainFrm.h
|
|
mfc1.cpp
|
|
mfc1.h
|
|
mfc1.rc
|
|
mfc1Doc.cpp
|
|
mfc1Doc.h
|
|
mfc1View.cpp
|
|
mfc1View.h
|
|
Resource.h
|
|
stdafx.cpp
|
|
stdafx.h
|
|
)
|
|
|
|
set(CMAKE_MFC_FLAG "@CMAKE_MFC_FLAG_VALUE@")
|
|
|
|
FIND_PACKAGE(MFC)
|
|
IF (NOT MFC_FOUND)
|
|
MESSAGE(FATAL_ERROR "MFC Could not be found during the MFC test")
|
|
ENDIF()
|
|
|
|
if("${CMAKE_MFC_FLAG}" STREQUAL "1")
|
|
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()
|
|
|
|
add_executable(mfc1 WIN32 ${files})
|
|
install(TARGETS mfc1 DESTINATION bin)
|
|
|
|
if("${CMAKE_MFC_FLAG}" STREQUAL "2")
|
|
set(CMAKE_INSTALL_MFC_LIBRARIES ON)
|
|
include(InstallRequiredSystemLibraries)
|
|
endif()
|
|
|
|
# Encode the value inside a generator expression to test evaluation.
|
|
set(CMAKE_MFC_FLAG "$<1:${CMAKE_MFC_FLAG}>")
|