82 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			82 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | # - 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) |