CMakeForceCompiler: Deprecate this module and its macros

We originally deprecated this module in commit v3.5.0-rc1~295^2
(CMakeForceCompiler: Deprecate this module and its macros, 2015-10-19).
Then a use case was found to still require the module so the deprecation
was reverted for CMake 3.5 by commit v3.5.0-rc3~4^2 (CMakeForceCompiler:
De-deprecate until more use cases have alternatives, 2016-02-17).  Since
then `CMAKE_TRY_COMPILE_TARGET_TYPE` was introduced to provide an
alternative solution for that use case.  Deprecate the module again.
This commit is contained in:
Brad King 2016-03-08 10:32:38 -05:00
parent 4aaa8adf54
commit d929c35f08
3 changed files with 21 additions and 11 deletions

View File

@ -138,9 +138,10 @@ a path on the host to install to. The :variable:`CMAKE_INSTALL_PREFIX` is always
the runtime installation location, even when cross-compiling. the runtime installation location, even when cross-compiling.
The :variable:`CMAKE_<LANG>_COMPILER` variables may be set to full paths, or to The :variable:`CMAKE_<LANG>_COMPILER` variables may be set to full paths, or to
names of compilers to search for in standard locations. In cases where CMake does names of compilers to search for in standard locations. For toolchains that
not have enough information to extract information from the compiler, the do not support linking binaries without custom flags or scripts one may set
:module:`CMakeForceCompiler` module can be used to bypass some of the checks. the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable to ``STATIC_LIBRARY``
to tell CMake not to try to link executables during its checks.
CMake ``find_*`` commands will look in the sysroot, and the :variable:`CMAKE_FIND_ROOT_PATH` CMake ``find_*`` commands will look in the sysroot, and the :variable:`CMAKE_FIND_ROOT_PATH`
entries by default in all cases, as well as looking in the host system root prefix. entries by default in all cases, as well as looking in the host system root prefix.

View File

@ -0,0 +1,5 @@
deprecate-CMakeForceCompiler
----------------------------
* The :module:`CMakeForceCompiler` module and its macros are now deprecated.
See module documentation for an explanation.

View File

@ -2,9 +2,7 @@
# CMakeForceCompiler # CMakeForceCompiler
# ------------------ # ------------------
# #
# Discouraged. Avoid using this module if possible. It will be deprecated # Deprecated. Do not use.
# by a future version of CMake once alternatives have been provided for all
# toolchain file use cases.
# #
# The macros provided by this module were once intended for use by # The macros provided by this module were once intended for use by
# cross-compiling toolchain files when CMake was not able to automatically # cross-compiling toolchain files when CMake was not able to automatically
@ -14,11 +12,11 @@
# CMake detects from a compiler is now too extensive to be provided by # CMake detects from a compiler is now too extensive to be provided by
# toolchain files using these macros. # toolchain files using these macros.
# #
# The only known remaining use case for these macros is to write toolchain # One common use case for this module was to skip CMake's checks for a
# files for cross-compilers that cannot link binaries without special flags or # working compiler when using a cross-compiler that cannot link binaries
# custom linker scripts. These macros cause CMake to skip checks it normally # without special flags or custom linker scripts. This case is now supported
# performs as part of enabling a language and introspecting the toolchain. # by setting the :variable:`CMAKE_TRY_COMPILE_TARGET_TYPE` variable in the
# However, skipping these checks may limit some generation functionality. # toolchain file instead.
# #
# ------------------------------------------------------------------------- # -------------------------------------------------------------------------
# #
@ -78,6 +76,8 @@
# License text for the above reference.) # License text for the above reference.)
macro(CMAKE_FORCE_C_COMPILER compiler id) macro(CMAKE_FORCE_C_COMPILER compiler id)
message(DEPRECATION "The CMAKE_FORCE_C_COMPILER macro is deprecated. "
"Instead just set CMAKE_C_COMPILER and allow CMake to identify the compiler.")
set(CMAKE_C_COMPILER "${compiler}") set(CMAKE_C_COMPILER "${compiler}")
set(CMAKE_C_COMPILER_ID_RUN TRUE) set(CMAKE_C_COMPILER_ID_RUN TRUE)
set(CMAKE_C_COMPILER_ID ${id}) set(CMAKE_C_COMPILER_ID ${id})
@ -90,6 +90,8 @@ macro(CMAKE_FORCE_C_COMPILER compiler id)
endmacro() endmacro()
macro(CMAKE_FORCE_CXX_COMPILER compiler id) macro(CMAKE_FORCE_CXX_COMPILER compiler id)
message(DEPRECATION "The CMAKE_FORCE_CXX_COMPILER macro is deprecated. "
"Instead just set CMAKE_CXX_COMPILER and allow CMake to identify the compiler.")
set(CMAKE_CXX_COMPILER "${compiler}") set(CMAKE_CXX_COMPILER "${compiler}")
set(CMAKE_CXX_COMPILER_ID_RUN TRUE) set(CMAKE_CXX_COMPILER_ID_RUN TRUE)
set(CMAKE_CXX_COMPILER_ID ${id}) set(CMAKE_CXX_COMPILER_ID ${id})
@ -102,6 +104,8 @@ macro(CMAKE_FORCE_CXX_COMPILER compiler id)
endmacro() endmacro()
macro(CMAKE_FORCE_Fortran_COMPILER compiler id) macro(CMAKE_FORCE_Fortran_COMPILER compiler id)
message(DEPRECATION "The CMAKE_FORCE_Fortran_COMPILER macro is deprecated. "
"Instead just set CMAKE_Fortran_COMPILER and allow CMake to identify the compiler.")
set(CMAKE_Fortran_COMPILER "${compiler}") set(CMAKE_Fortran_COMPILER "${compiler}")
set(CMAKE_Fortran_COMPILER_ID_RUN TRUE) set(CMAKE_Fortran_COMPILER_ID_RUN TRUE)
set(CMAKE_Fortran_COMPILER_ID ${id}) set(CMAKE_Fortran_COMPILER_ID ${id})