diff options
Diffstat (limited to 'Modules/FindRTI.cmake')
-rw-r--r-- | Modules/FindRTI.cmake | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/Modules/FindRTI.cmake b/Modules/FindRTI.cmake new file mode 100644 index 000000000..031c13854 --- /dev/null +++ b/Modules/FindRTI.cmake @@ -0,0 +1,102 @@ +# - Try to find M&S HLA RTI libraries +# This module finds if any HLA RTI is installed and locates the standard RTI +# include files and libraries. +# +# RTI is a simulation infrastructure standardized by IEEE and SISO. It has a +# well defined C++ API that assures that simulation applications are +# independent on a particular RTI implementation. +# http://en.wikipedia.org/wiki/Run-Time_Infrastructure_(simulation) +# +# This code sets the following variables: +# RTI_INCLUDE_DIR = the directory where RTI includes file are found +# RTI_LIBRARIES = The libraries to link against to use RTI +# RTI_DEFINITIONS = -DRTI_USES_STD_FSTREAM +# RTI_FOUND = Set to FALSE if any HLA RTI was not found +# +# Report problems to <certi-devel@nongnu.org> + +#============================================================================= +# Copyright 2008-2009 Kitware, Inc. +# Copyright 2008 Petr Gotthard <gotthard@honeywell.com> +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +MACRO(RTI_MESSAGE_QUIETLY QUIET TYPE MSG) + IF(NOT ${QUIET}) + MESSAGE(${TYPE} "${MSG}") + ENDIF(NOT ${QUIET}) +ENDMACRO(RTI_MESSAGE_QUIETLY QUIET TYPE MSG) + +# Detect the CERTI installation, http://www.cert.fr/CERTI +IF ("$ENV{CERTI_HOME}" STRGREATER "") + FILE(TO_CMAKE_PATH "$ENV{CERTI_HOME}" CERTI_HOME) + RTI_MESSAGE_QUIETLY(RTI_FIND_QUIETLY STATUS "Using environment defined CERTI_HOME: ${CERTI_HOME}") +ENDIF ("$ENV{CERTI_HOME}" STRGREATER "") + +SET(RTI_DEFINITIONS "-DRTI_USES_STD_FSTREAM") + +# Detect the MAK Technologies RTI installation, http://www.mak.com/products/rti.php +# note: the following list is ordered to find the most recent version first +SET(RTI_POSSIBLE_DIRS + ${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" "") + +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_LIBRARY) + RTI_MESSAGE_QUIETLY(RTI_FIND_QUIETLY STATUS "RTI library NOT found") +ENDIF (RTI_LIBRARY) + +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 (RTI_FEDTIME_LIBRARY) + +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_INCLUDE_DIR) + RTI_MESSAGE_QUIETLY(RTI_FIND_QUIETLY STATUS "RTI headers NOT found") +ENDIF (RTI_INCLUDE_DIR) + +# Set the modified system variables back to the original value. +SET(CMAKE_FIND_LIBRARY_PREFIXES "${RTI_OLD_FIND_LIBRARY_PREFIXES}") + +INCLUDE(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(RTI DEFAULT_MSG + RTI_LIBRARY RTI_INCLUDE_DIR) + +# $Id$ |