mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-25 12:37:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			150 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			150 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| # GNSS-SDR is a Global Navigation Satellite System software-defined receiver.
 | |
| # This file is part of GNSS-SDR.
 | |
| #
 | |
| # SPDX-FileCopyrightText: 2022 C. Fernandez-Prades cfernandez(at)cttc.es
 | |
| # SPDX-License-Identifier: BSD-3-Clause
 | |
| 
 | |
| # - Find gnsstk library
 | |
| # Find the native gnsstk includes and library
 | |
| # This module defines
 | |
| #  GNSSTK_INCLUDE_DIR, where to find Rinex3ObsBase.hpp, etc.
 | |
| #  GNSSTK_FOUND, If false, do not try to use GNSSTK.
 | |
| #  GNSSTK_LIBRARY, where to find the GNSSTK library.
 | |
| #
 | |
| # Provides the following imported target:
 | |
| # Gnsstk::gnsstk
 | |
| #
 | |
| 
 | |
| if(NOT COMMAND feature_summary)
 | |
|     include(FeatureSummary)
 | |
| endif()
 | |
| 
 | |
| if(NOT GNSSTK_ROOT)
 | |
|     set(GNSSTK_ROOT_USER_DEFINED /usr/local)
 | |
| else()
 | |
|     set(GNSSTK_ROOT_USER_DEFINED ${GNSSTK_ROOT})
 | |
| endif()
 | |
| if(DEFINED ENV{GNSSTK_ROOT})
 | |
|     set(GNSSTK_ROOT_USER_DEFINED
 | |
|         ${GNSSTK_ROOT_USER_DEFINED}
 | |
|         $ENV{GNSSTK_ROOT}
 | |
|     )
 | |
| endif()
 | |
| 
 | |
| unset(GNSSTK_INCLUDE_DIR CACHE)
 | |
| unset(GNSSTK_USES_GPSTK_NAMESPACE CACHE)
 | |
| find_path(GNSSTK_INCLUDE_DIR gnsstk/Rinex3ObsBase.hpp
 | |
|     PATHS ${GNSSTK_ROOT_USER_DEFINED}/include
 | |
|           /usr/include
 | |
|           /usr/local/include
 | |
|           /opt/local/include
 | |
| )
 | |
| set(GNSSTK_NAMES ${CMAKE_FIND_LIBRARY_PREFIXES}gnsstk${CMAKE_SHARED_LIBRARY_SUFFIX})
 | |
| if(NOT GNSSTK_INCLUDE_DIR)
 | |
|     find_path(GNSSTK_INCLUDE_DIR gpstk/Rinex3ObsBase.hpp
 | |
|         PATHS ${GNSSTK_ROOT_USER_DEFINED}/include
 | |
|               /usr/include
 | |
|               /usr/local/include
 | |
|               /opt/local/include
 | |
|     )
 | |
|     if(GNSSTK_INCLUDE_DIR)
 | |
|         set(GNSSTK_NAMES gpstk ${CMAKE_FIND_LIBRARY_PREFIXES}gpstk${CMAKE_SHARED_LIBRARY_SUFFIX})
 | |
|         set(GNSSTK_USES_GPSTK_NAMESPACE TRUE)
 | |
|     endif()
 | |
| endif()
 | |
| 
 | |
| include(GNUInstallDirs)
 | |
| 
 | |
| find_library(GNSSTK_LIBRARY NAMES ${GNSSTK_NAMES}
 | |
|     PATHS ${GNSSTK_ROOT_USER_DEFINED}/lib
 | |
|           ${GNSSTK_ROOT_USER_DEFINED}/${CMAKE_INSTALL_LIBDIR}
 | |
|           /usr/local/lib
 | |
|           /usr/${CMAKE_INSTALL_LIBDIR}
 | |
|           /usr/local/${CMAKE_INSTALL_LIBDIR}
 | |
|           /opt/local/lib
 | |
| )
 | |
| 
 | |
| if(GNSSTK_LIBRARY AND GNSSTK_INCLUDE_DIR)
 | |
|     set(OLD_PACKAGE_VERSION ${PACKAGE_VERSION})
 | |
|     unset(PACKAGE_VERSION)
 | |
|     if(GNSSTK_USES_GPSTK_NAMESPACE)
 | |
|         if(EXISTS ${GNSSTK_INCLUDE_DIR}/../share/cmake/GPSTK/GPSTKConfigVersion.cmake)
 | |
|             include(${GNSSTK_INCLUDE_DIR}/../share/cmake/GPSTK/GPSTKConfigVersion.cmake)
 | |
|         endif()
 | |
|     else()
 | |
|         if(EXISTS ${GNSSTK_INCLUDE_DIR}/../share/cmake/GNSSTK/GNSSTKConfigVersion.cmake)
 | |
|             include(${GNSSTK_INCLUDE_DIR}/../share/cmake/GNSSTK/GNSSTKConfigVersion.cmake)
 | |
|         endif()
 | |
|     endif()
 | |
|     if(PACKAGE_VERSION)
 | |
|         set(GNSSTK_VERSION ${PACKAGE_VERSION})
 | |
|     endif()
 | |
|     set(PACKAGE_VERSION ${OLD_PACKAGE_VERSION})
 | |
| endif()
 | |
| 
 | |
| if(GNSSTK_VERSION)
 | |
|     if(GNSSTK_VERSION VERSION_LESS "9.0.0")
 | |
|         set(GNSSTK_OLDER_THAN_9 TRUE)
 | |
|     endif()
 | |
|     if(GNSSTK_VERSION VERSION_LESS "13.0.0")
 | |
|         set(GNSSTK_OLDER_THAN_13 TRUE)
 | |
|     endif()
 | |
| endif()
 | |
| 
 | |
| if(EXISTS ${GNSSTK_INCLUDE_DIR}/gnsstk/GPSEphemerisStore.hpp)
 | |
|     set(GNSSTK_OLDER_THAN_13 TRUE)
 | |
| endif()
 | |
| 
 | |
| # handle the QUIET and REQUIRED arguments and set GNSSTK_FOUND to TRUE if
 | |
| # all listed variables are TRUE
 | |
| include(FindPackageHandleStandardArgs)
 | |
| find_package_handle_standard_args(GNSSTK DEFAULT_MSG GNSSTK_LIBRARY GNSSTK_INCLUDE_DIR)
 | |
| 
 | |
| if(GNSSTK_FOUND AND GNSSTK_VERSION)
 | |
|     set_package_properties(GNSSTK PROPERTIES
 | |
|         DESCRIPTION "The GNSSTk C++ Library (found: v${GNSSTK_VERSION})"
 | |
|     )
 | |
| else()
 | |
|     set_package_properties(GNSSTK PROPERTIES
 | |
|         DESCRIPTION "The GNSSTk C++ Library"
 | |
|     )
 | |
| endif()
 | |
| 
 | |
| if(GNSSTK_FOUND AND GNSSTK_USES_GPSTK_NAMESPACE AND NOT EXISTS ${GNSSTK_INCLUDE_DIR}/gpstk/SatelliteSystem.hpp)
 | |
|     set(GNSSTK_OLDER_THAN_8 TRUE)
 | |
| endif()
 | |
| 
 | |
| set_package_properties(GNSSTK PROPERTIES
 | |
|     URL "https://github.com/SGL-UT/gnsstk/"
 | |
|     TYPE OPTIONAL
 | |
| )
 | |
| 
 | |
| if(GNSSTK_FOUND AND NOT ENABLE_OWN_GNSSTK AND NOT TARGET Gnsstk::gnsstk)
 | |
|     add_library(Gnsstk::gnsstk SHARED IMPORTED)
 | |
|     if(GNSSTK_USES_GPSTK_NAMESPACE)
 | |
|         set_target_properties(Gnsstk::gnsstk PROPERTIES
 | |
|             IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
 | |
|             IMPORTED_LOCATION "${GNSSTK_LIBRARY}"
 | |
|             INTERFACE_INCLUDE_DIRECTORIES "${GNSSTK_INCLUDE_DIR};${GNSSTK_INCLUDE_DIR}/gpstk"
 | |
|             INTERFACE_LINK_LIBRARIES "${GNSSTK_LIBRARY}"
 | |
|             IMPORTED_IMPLIB "${GNSSTK_LIBRARY}"
 | |
|         )
 | |
|     else()
 | |
|         set_target_properties(Gnsstk::gnsstk PROPERTIES
 | |
|             IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
 | |
|             IMPORTED_LOCATION "${GNSSTK_LIBRARY}"
 | |
|             INTERFACE_INCLUDE_DIRECTORIES "${GNSSTK_INCLUDE_DIR};${GNSSTK_INCLUDE_DIR}/gnsstk"
 | |
|             INTERFACE_LINK_LIBRARIES "${GNSSTK_LIBRARY}"
 | |
|             IMPORTED_IMPLIB "${GNSSTK_LIBRARY}"
 | |
|         )
 | |
|     endif()
 | |
| endif()
 | |
| 
 | |
| mark_as_advanced(GNSSTK_LIBRARY
 | |
|     GNSSTK_INCLUDE_DIR
 | |
|     GNSSTK_USES_GPSTK_NAMESPACE
 | |
|     GNSSTK_OLDER_THAN_8
 | |
|     GNSSTK_OLDER_THAN_9
 | |
|     GNSSTK_OLDER_THAN_13
 | |
| )
 | 
