mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-01 11:22:21 -06:00
This marks all `<PACKAGENAME>_FOUND` result variables as deprecated where possible (for `<PackageName>` find modules) to make it clearer which variable to use. In CMake 3.3, the FindPackageHandleStandardArgs module was refactored to set both `<PackageName>_FOUND` and uppercase `<PACKAGENAME>_FOUND` result variables to the same values. Before that, the FOUND_VAR argument could be used to set the result variable. * FindMatlab: Uppercased MATLAB_FOUND is not mentioned as it was never documented. * Documentation for FindPythonInterp and FindPythonLibs modules synced accordingly to their deprecation (3.12 instead of 4.2). * OPENGL_FOUND: deprecation version synced with other find modules. * DevIL_FOUND was introduced in CMake 3.8. The uppercased variant not mentioned as it was previously never documented. Fixes: #27242
95 lines
2.5 KiB
CMake
95 lines
2.5 KiB
CMake
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
# file LICENSE.rst or https://cmake.org/licensing for details.
|
|
|
|
#[=======================================================================[.rst:
|
|
FindMFC
|
|
-------
|
|
|
|
Finds the native Microsoft Foundation Class Library (MFC) for developing MFC
|
|
applications on Windows:
|
|
|
|
.. code-block:: cmake
|
|
|
|
find_package(MFC [...])
|
|
|
|
.. note::
|
|
|
|
MFC is an optional component in Visual Studio and must be installed
|
|
separately for this module to succeed.
|
|
|
|
Once the MFC libraries and headers are found, no additional manual linking is
|
|
needed, as they are part of the development environment.
|
|
|
|
Result Variables
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
This module defines the following variables:
|
|
|
|
``MFC_FOUND``
|
|
Boolean indicating whether MFC support was found.
|
|
|
|
Examples
|
|
^^^^^^^^
|
|
|
|
Using this module to check if the application can link to the MFC libraries:
|
|
|
|
.. code-block:: cmake
|
|
|
|
find_package(MFC)
|
|
|
|
if(MFC_FOUND)
|
|
# Example logic when MFC is available...
|
|
set(CMAKE_MFC_FLAG 2)
|
|
add_executable(app WIN32 main.cpp)
|
|
target_compile_definitions(app PRIVATE _AFXDLL)
|
|
endif()
|
|
|
|
See Also
|
|
^^^^^^^^
|
|
|
|
* The :variable:`CMAKE_MFC_FLAG` variable.
|
|
#]=======================================================================]
|
|
|
|
# Assume no MFC support
|
|
set(MFC_FOUND "NO")
|
|
|
|
# Only attempt the try_compile call if it has a chance to succeed:
|
|
set(MFC_ATTEMPT_TRY_COMPILE 0)
|
|
if(WIN32 AND NOT UNIX AND NOT BORLAND AND NOT MINGW)
|
|
set(MFC_ATTEMPT_TRY_COMPILE 1)
|
|
endif()
|
|
|
|
if(MFC_ATTEMPT_TRY_COMPILE)
|
|
if(NOT DEFINED MFC_HAVE_MFC)
|
|
set(CHECK_INCLUDE_FILE_VAR "afxwin.h")
|
|
file(READ ${CMAKE_ROOT}/Modules/CheckIncludeFile.cxx.in _CIF_SOURCE_CONTENT)
|
|
string(CONFIGURE "${_CIF_SOURCE_CONTENT}" _CIF_SOURCE_CONTENT)
|
|
message(CHECK_START "Looking for MFC")
|
|
# Try both shared and static as the root project may have set the /MT flag
|
|
try_compile(MFC_HAVE_MFC
|
|
SOURCE_FROM_VAR CheckIncludeFile.cxx _CIF_SOURCE_CONTENT
|
|
CMAKE_FLAGS
|
|
-DCMAKE_MFC_FLAG:STRING=2
|
|
-DCOMPILE_DEFINITIONS:STRING=-D_AFXDLL
|
|
OUTPUT_VARIABLE OUTPUT)
|
|
if(NOT MFC_HAVE_MFC)
|
|
try_compile(MFC_HAVE_MFC
|
|
SOURCE_FROM_VAR CheckIncludeFile.cxx _CIF_SOURCE_CONTENT
|
|
CMAKE_FLAGS
|
|
-DCMAKE_MFC_FLAG:STRING=1
|
|
OUTPUT_VARIABLE OUTPUT)
|
|
endif()
|
|
if(MFC_HAVE_MFC)
|
|
message(CHECK_PASS "found")
|
|
set(MFC_HAVE_MFC 1 CACHE INTERNAL "Have MFC?")
|
|
else()
|
|
message(CHECK_FAIL "not found")
|
|
set(MFC_HAVE_MFC 0 CACHE INTERNAL "Have MFC?")
|
|
endif()
|
|
endif()
|
|
|
|
if(MFC_HAVE_MFC)
|
|
set(MFC_FOUND "YES")
|
|
endif()
|
|
endif()
|