82 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
		
		
			
		
	
	
			82 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| 
								 | 
							
								# - Try to find hamlib
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# Once done, this will define:
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								#  hamlib_FOUND - system has Hamlib
							 | 
						||
| 
								 | 
							
								#  hamlib_INCLUDE_DIRS - the Hamlib include directories
							 | 
						||
| 
								 | 
							
								#  hamlib_LIBRARIES - link these to use Hamlib
							 | 
						||
| 
								 | 
							
								#  hamlib_LIBRARY_DIRS - required shared/dynamic libraries are here
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								# If hamlib_STATIC is TRUE then static linking will be assumed
							 | 
						||
| 
								 | 
							
								#
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								include (LibFindMacros)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								set (hamlib_LIBRARY_DIRS)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# pkg-config?
							 | 
						||
| 
								 | 
							
								find_path (__hamlib_pc_path NAMES hamlib.pc
							 | 
						||
| 
								 | 
							
								  PATH_SUFFIXES lib/pkgconfig
							 | 
						||
| 
								 | 
							
								  )
							 | 
						||
| 
								 | 
							
								if (__hamlib_pc_path)
							 | 
						||
| 
								 | 
							
								  set (ENV{PKG_CONFIG_PATH} "${__hamlib_pc_path}" "$ENV{PKG_CONFIG_PATH}")
							 | 
						||
| 
								 | 
							
								  unset (__hamlib_pc_path CACHE)
							 | 
						||
| 
								 | 
							
								endif ()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Use pkg-config to get hints about paths, libs and, flags
							 | 
						||
| 
								 | 
							
								unset (__pkg_config_checked_hamlib CACHE)
							 | 
						||
| 
								 | 
							
								# pkg_config will fail on Windows if the Hamlib USB backends are
							 | 
						||
| 
								 | 
							
								# configured since libusb-1.0 does not ship with a pkg_config file on
							 | 
						||
| 
								 | 
							
								# Windows, that's OK because we fix it up below
							 | 
						||
| 
								 | 
							
								libfind_pkg_check_modules (PC_HAMLIB hamlib)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (NOT PC_HAMLIB_FOUND)
							 | 
						||
| 
								 | 
							
								  # The headers
							 | 
						||
| 
								 | 
							
								  find_path (hamlib_INCLUDEDIR hamlib/rig.h)
							 | 
						||
| 
								 | 
							
								  # The libraries
							 | 
						||
| 
								 | 
							
								  if (hamlib_STATIC)
							 | 
						||
| 
								 | 
							
								    libfind_library (hamlib libhamlib.a)
							 | 
						||
| 
								 | 
							
								  else ()
							 | 
						||
| 
								 | 
							
								    libfind_library (hamlib hamlib)
							 | 
						||
| 
								 | 
							
								  endif ()
							 | 
						||
| 
								 | 
							
								  if (WIN32)
							 | 
						||
| 
								 | 
							
								    set (hamlib_EXTRA_LIBRARIES ws2_32)
							 | 
						||
| 
								 | 
							
								  else ()
							 | 
						||
| 
								 | 
							
								    set (hamlib_EXTRA_LIBRARIES m dl)
							 | 
						||
| 
								 | 
							
								  endif ()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  # libusb-1.0 has no pkg-config file on Windows so we have to find it
							 | 
						||
| 
								 | 
							
								  # ourselves
							 | 
						||
| 
								 | 
							
								  find_library (LIBUSB NAMES usb-1.0 PATH_SUFFIXES MinGW32/dll)
							 | 
						||
| 
								 | 
							
								  if (LIBUSB)
							 | 
						||
| 
								 | 
							
								    set (hamlib_EXTRA_LIBRARIES ${LIBUSB} ${hamlib_EXTRA_LIBRARIES})
							 | 
						||
| 
								 | 
							
								    get_filename_component (hamlib_libusb_path ${LIBUSB} PATH)
							 | 
						||
| 
								 | 
							
								    set (hamlib_LIBRARY_DIRS ${hamlib_LIBRARY_DIRS} ${hamlib_libusb_path})
							 | 
						||
| 
								 | 
							
								  endif (LIBUSB)
							 | 
						||
| 
								 | 
							
								  set (hamlib_PROCESS_INCLUDES hamlib_INCLUDEDIR)
							 | 
						||
| 
								 | 
							
								  set (hamlib_PROCESS_LIBS hamlib_LIBRARY hamlib_EXTRA_LIBRARIES)
							 | 
						||
| 
								 | 
							
								else ()
							 | 
						||
| 
								 | 
							
								  if (hamlib_STATIC)
							 | 
						||
| 
								 | 
							
								    set (hamlib_PROCESS_INCLUDES PC_HAMLIB_STATIC_INCLUDE_DIRS)
							 | 
						||
| 
								 | 
							
								    set (hamlib_PROCESS_LIBS PC_HAMLIB_STATIC_LDFLAGS)
							 | 
						||
| 
								 | 
							
								    set (hamlib_LIBRARY_DIRS ${PC_HAMLIB_STATIC_LIBRARY_DIRS})
							 | 
						||
| 
								 | 
							
								  else ()
							 | 
						||
| 
								 | 
							
								    set (hamlib_PROCESS_INCLUDES PC_HAMLIB_INCLUDE_DIRS)
							 | 
						||
| 
								 | 
							
								    set (hamlib_PROCESS_LIBS PC_HAMLIB_LDFLAGS)
							 | 
						||
| 
								 | 
							
								    set (hamlib_LIBRARY_DIRS ${PC_HAMLIB_LIBRARY_DIRS})
							 | 
						||
| 
								 | 
							
								  endif ()
							 | 
						||
| 
								 | 
							
								endif ()
							 | 
						||
| 
								 | 
							
								libfind_process (hamlib)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (WIN32)
							 | 
						||
| 
								 | 
							
								  find_path (hamlib_dll_path libhamlib-2.dll)
							 | 
						||
| 
								 | 
							
								  if (hamlib_dll_path)
							 | 
						||
| 
								 | 
							
								    set (hamlib_LIBRARY_DIRS ${hamlib_LIBRARY_DIRS} ${hamlib_dll_path})
							 | 
						||
| 
								 | 
							
								  endif ()
							 | 
						||
| 
								 | 
							
								endif ()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								# Handle the  QUIETLY and REQUIRED  arguments and set  HAMLIB_FOUND to
							 | 
						||
| 
								 | 
							
								# TRUE if all listed variables are TRUE
							 | 
						||
| 
								 | 
							
								include (FindPackageHandleStandardArgs)
							 | 
						||
| 
								 | 
							
								find_package_handle_standard_args (hamlib DEFAULT_MSG hamlib_INCLUDE_DIRS hamlib_LIBRARIES hamlib_LIBRARY_DIRS)
							 |