"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "Modules/CheckCXXSourceRuns.cmake" between
cmake-3.13.4.tar.gz and cmake-3.14.0-rc1.tar.gz

About: CMake is a cross-platform build system designed to build, test and package software. Release candidate.

CheckCXXSourceRuns.cmake  (cmake-3.13.4):CheckCXXSourceRuns.cmake  (cmake-3.14.0-rc1)
skipping to change at line 13 skipping to change at line 13
#[=======================================================================[.rst: #[=======================================================================[.rst:
CheckCXXSourceRuns CheckCXXSourceRuns
------------------ ------------------
Check if given C++ source compiles and links into an executable and can Check if given C++ source compiles and links into an executable and can
subsequently be run. subsequently be run.
.. command:: check_cxx_source_runs .. command:: check_cxx_source_runs
:: .. code-block:: cmake
check_cxx_source_runs(code resultVar) check_cxx_source_runs(<code> <resultVar>)
Check that the source supplied in ``code`` can be compiled as a C++ source Check that the source supplied in ``<code>`` can be compiled as a C++ source
file, linked as an executable and then run. The ``code`` must contain at file, linked as an executable and then run. The ``<code>`` must contain at
least a ``main()`` function. If the code could be built and run successfully, least a ``main()`` function. If the ``<code>`` could be built and run
the internal cache variable specified by ``resultVar`` will be set to 1, successfully, the internal cache variable specified by ``<resultVar>`` will
otherwise it will be set to an value that evaluates to boolean false (e.g. be set to 1, otherwise it will be set to an value that evaluates to boolean
an empty string or an error message). false (e.g. an empty string or an error message).
The underlying check is performed by the :command:`try_run` command. The The underlying check is performed by the :command:`try_run` command. The
compile and link commands can be influenced by setting any of the following compile and link commands can be influenced by setting any of the following
variables prior to calling ``check_cxx_source_runs()``: variables prior to calling ``check_cxx_source_runs()``:
``CMAKE_REQUIRED_FLAGS`` ``CMAKE_REQUIRED_FLAGS``
Additional flags to pass to the compiler. Note that the contents of Additional flags to pass to the compiler. Note that the contents of
:variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated :variable:`CMAKE_CXX_FLAGS <CMAKE_<LANG>_FLAGS>` and its associated
configuration-specific variable are automatically added to the compiler configuration-specific variable are automatically added to the compiler
command before the contents of ``CMAKE_REQUIRED_FLAGS``. command before the contents of ``CMAKE_REQUIRED_FLAGS``.
``CMAKE_REQUIRED_DEFINITIONS`` ``CMAKE_REQUIRED_DEFINITIONS``
A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form A :ref:`;-list <CMake Language Lists>` of compiler definitions of the form
``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by ``-DFOO`` or ``-DFOO=bar``. A definition for the name specified by
``resultVar`` will also be added automatically. ``<resultVar>`` will also be added automatically.
``CMAKE_REQUIRED_INCLUDES`` ``CMAKE_REQUIRED_INCLUDES``
A :ref:`;-list <CMake Language Lists>` of header search paths to pass to A :ref:`;-list <CMake Language Lists>` of header search paths to pass to
the compiler. These will be the only header search paths used by the compiler. These will be the only header search paths used by
``try_run()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES` ``try_run()``, i.e. the contents of the :prop_dir:`INCLUDE_DIRECTORIES`
directory property will be ignored. directory property will be ignored.
``CMAKE_REQUIRED_LINK_OPTIONS``
A :ref:`;-list <CMake Language Lists>` of options to add to the link
command (see :command:`try_run` for further details).
``CMAKE_REQUIRED_LIBRARIES`` ``CMAKE_REQUIRED_LIBRARIES``
A :ref:`;-list <CMake Language Lists>` of libraries to add to the link A :ref:`;-list <CMake Language Lists>` of libraries to add to the link
command. These can be the name of system libraries or they can be command. These can be the name of system libraries or they can be
:ref:`Imported Targets <Imported Targets>` (see :command:`try_run` for :ref:`Imported Targets <Imported Targets>` (see :command:`try_run` for
further details). further details).
``CMAKE_REQUIRED_QUIET`` ``CMAKE_REQUIRED_QUIET``
If this variable evaluates to a boolean true value, all status messages If this variable evaluates to a boolean true value, all status messages
associated with the check will be suppressed. associated with the check will be suppressed.
The check is only performed once, with the result cached in the variable The check is only performed once, with the result cached in the variable
named by ``resultVar``. Every subsequent CMake run will re-use this cached named by ``<resultVar>``. Every subsequent CMake run will re-use this cached
value rather than performing the check again, even if the ``code`` changes. value rather than performing the check again, even if the ``<code>`` changes.
In order to force the check to be re-evaluated, the variable named by In order to force the check to be re-evaluated, the variable named by
``resultVar`` must be manually removed from the cache. ``<resultVar>`` must be manually removed from the cache.
#]=======================================================================] #]=======================================================================]
include_guard(GLOBAL) include_guard(GLOBAL)
macro(CHECK_CXX_SOURCE_RUNS SOURCE VAR) macro(CHECK_CXX_SOURCE_RUNS SOURCE VAR)
if(NOT DEFINED "${VAR}") if(NOT DEFINED "${VAR}")
set(MACRO_CHECK_FUNCTION_DEFINITIONS set(MACRO_CHECK_FUNCTION_DEFINITIONS
"-D${VAR} ${CMAKE_REQUIRED_FLAGS}") "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
if(CMAKE_REQUIRED_LINK_OPTIONS)
set(CHECK_CXX_SOURCE_COMPILES_ADD_LINK_OPTIONS
LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
else()
set(CHECK_CXX_SOURCE_COMPILES_ADD_LINK_OPTIONS)
endif()
if(CMAKE_REQUIRED_LIBRARIES) if(CMAKE_REQUIRED_LIBRARIES)
set(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES set(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES
LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
else() else()
set(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES) set(CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES)
endif() endif()
if(CMAKE_REQUIRED_INCLUDES) if(CMAKE_REQUIRED_INCLUDES)
set(CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES set(CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
else() else()
skipping to change at line 91 skipping to change at line 101
file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx" file(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx"
"${SOURCE}\n") "${SOURCE}\n")
if(NOT CMAKE_REQUIRED_QUIET) if(NOT CMAKE_REQUIRED_QUIET)
message(STATUS "Performing Test ${VAR}") message(STATUS "Performing Test ${VAR}")
endif() endif()
try_run(${VAR}_EXITCODE ${VAR}_COMPILED try_run(${VAR}_EXITCODE ${VAR}_COMPILED
${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src.cxx
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
${CHECK_CXX_SOURCE_COMPILES_ADD_LINK_OPTIONS}
${CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES} ${CHECK_CXX_SOURCE_COMPILES_ADD_LIBRARIES}
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITION S} CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITION S}
-DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH} -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
"${CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES}" "${CHECK_CXX_SOURCE_COMPILES_ADD_INCLUDES}"
COMPILE_OUTPUT_VARIABLE OUTPUT) COMPILE_OUTPUT_VARIABLE OUTPUT)
# if it did not compile make the return value fail code of 1 # if it did not compile make the return value fail code of 1
if(NOT ${VAR}_COMPILED) if(NOT ${VAR}_COMPILED)
set(${VAR}_EXITCODE 1) set(${VAR}_EXITCODE 1)
endif() endif()
 End of changes. 9 change blocks. 
12 lines changed or deleted 23 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)