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
135 lines
4.1 KiB
CMake
135 lines
4.1 KiB
CMake
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
# file LICENSE.rst or https://cmake.org/licensing for details.
|
|
|
|
#[=======================================================================[.rst:
|
|
FindRTI
|
|
-------
|
|
|
|
Finds HLA RTI standard libraries and their include directories:
|
|
|
|
.. code-block:: cmake
|
|
|
|
find_package(RTI [...])
|
|
|
|
`RTI <https://en.wikipedia.org/wiki/Run-time_infrastructure_(simulation)>`_
|
|
(Run-Time Infrastructure) is a simulation infrastructure standardized by IEEE
|
|
and SISO, required when implementing HLA (High Level Architecture). It provides
|
|
a well-defined C++ API, ensuring that M&S (Modeling and Simulation) applications
|
|
remain independent of a particular RTI implementation.
|
|
|
|
Result Variables
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
This module defines the following variables:
|
|
|
|
``RTI_FOUND``
|
|
Boolean indicating whether HLA RTI was found.
|
|
``RTI_LIBRARIES``
|
|
The libraries to link against to use RTI.
|
|
``RTI_DEFINITIONS``
|
|
Compile definitions for using RTI. Default value is set to
|
|
``-DRTI_USES_STD_FSTREAM``.
|
|
|
|
Cache Variables
|
|
^^^^^^^^^^^^^^^
|
|
|
|
The following cache variables may also be set:
|
|
|
|
``RTI_INCLUDE_DIR``
|
|
Directory where RTI include files are found.
|
|
|
|
Examples
|
|
^^^^^^^^
|
|
|
|
Finding RTI and creating an imported interface target for linking it to a
|
|
project target:
|
|
|
|
.. code-block:: cmake
|
|
|
|
find_package(RTI)
|
|
|
|
if(RTI_FOUND AND NOT TARGET RTI::RTI)
|
|
add_library(RTI::RTI INTERFACE IMPORTED)
|
|
set_target_properties(
|
|
RTI::RTI
|
|
PROPERTIES
|
|
INTERFACE_INCLUDE_DIRECTORIES "${RTI_INCLUDE_DIR}"
|
|
INTERFACE_LINK_LIBRARIES "${RTI_LIBRARIES}"
|
|
INTERFACE_COMPILE_DEFINITIONS "${RTI_DEFINITIONS}"
|
|
)
|
|
endif()
|
|
|
|
target_link_libraries(example PRIVATE RTI::RTI)
|
|
#]=======================================================================]
|
|
|
|
macro(RTI_MESSAGE_QUIETLY QUIET TYPE MSG)
|
|
if(NOT ${QUIET})
|
|
message(${TYPE} "${MSG}")
|
|
endif()
|
|
endmacro()
|
|
|
|
set(RTI_DEFINITIONS "-DRTI_USES_STD_FSTREAM")
|
|
|
|
# noqa: spellcheck off
|
|
# Detect the CERTI installation:
|
|
# - https://www.nongnu.org/certi/
|
|
# - Mailing list for reporting issues and development discussions:
|
|
# <certi-devel@nongnu.org>
|
|
# Detect the MAK Technologies RTI installation:
|
|
# - https://www.mak.com/mak-one/tools/mak-rti
|
|
# note: the following list is ordered to find the most recent version first
|
|
set(RTI_POSSIBLE_DIRS
|
|
ENV CERTI_HOME
|
|
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MAK Technologies\\MAK RTI 3.2 MSVC++ 8.0;Location]"
|
|
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\MAK RTI 3.2-win32-msvc++8.0;InstallLocation]"
|
|
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MAK Technologies\\MAK RTI 2.2;Location]"
|
|
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\MAK RTI 2.2;InstallLocation]")
|
|
|
|
set(RTI_OLD_FIND_LIBRARY_PREFIXES "${CMAKE_FIND_LIBRARY_PREFIXES}")
|
|
# The MAK RTI has the "lib" prefix even on Windows.
|
|
set(CMAKE_FIND_LIBRARY_PREFIXES "lib" "")
|
|
# noqa: spellcheck on
|
|
|
|
find_library(RTI_LIBRARY
|
|
NAMES RTI RTI-NG
|
|
PATHS ${RTI_POSSIBLE_DIRS}
|
|
PATH_SUFFIXES lib
|
|
DOC "The RTI Library")
|
|
|
|
if (RTI_LIBRARY)
|
|
set(RTI_LIBRARIES ${RTI_LIBRARY})
|
|
RTI_MESSAGE_QUIETLY(RTI_FIND_QUIETLY STATUS "RTI library found: ${RTI_LIBRARY}")
|
|
else ()
|
|
RTI_MESSAGE_QUIETLY(RTI_FIND_QUIETLY STATUS "RTI library NOT found")
|
|
endif ()
|
|
|
|
find_library(RTI_FEDTIME_LIBRARY
|
|
NAMES FedTime
|
|
PATHS ${RTI_POSSIBLE_DIRS}
|
|
PATH_SUFFIXES lib
|
|
DOC "The FedTime Library")
|
|
|
|
if (RTI_FEDTIME_LIBRARY)
|
|
set(RTI_LIBRARIES ${RTI_LIBRARIES} ${RTI_FEDTIME_LIBRARY})
|
|
RTI_MESSAGE_QUIETLY(RTI_FIND_QUIETLY STATUS "RTI FedTime found: ${RTI_FEDTIME_LIBRARY}")
|
|
endif ()
|
|
|
|
find_path(RTI_INCLUDE_DIR
|
|
NAMES RTI.hh
|
|
PATHS ${RTI_POSSIBLE_DIRS}
|
|
PATH_SUFFIXES include
|
|
DOC "The RTI Include Files")
|
|
|
|
if (RTI_INCLUDE_DIR)
|
|
RTI_MESSAGE_QUIETLY(RTI_FIND_QUIETLY STATUS "RTI headers found: ${RTI_INCLUDE_DIR}")
|
|
else ()
|
|
RTI_MESSAGE_QUIETLY(RTI_FIND_QUIETLY STATUS "RTI headers NOT found")
|
|
endif ()
|
|
|
|
# Set the modified system variables back to the original value.
|
|
set(CMAKE_FIND_LIBRARY_PREFIXES "${RTI_OLD_FIND_LIBRARY_PREFIXES}")
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(RTI DEFAULT_MSG
|
|
RTI_LIBRARY RTI_INCLUDE_DIR)
|