Private
Public Access
2
0
Files
mraa/cmake/modules/FindFtd4222.cmake

81 lines
2.3 KiB
CMake
Raw Normal View History

# - Try to find LIBFT4222
# Once done this will define
#
# LIBFT4222_FOUND - system has LIBFT4222
# LIBFT4222_INCLUDE_DIRS - the LIBFT4222 include directory
# LIBFT4222_LIBRARIES - Link these to use LIBFT4222
# LIBFT4222_DEFINITIONS - Compiler switches required for using LIBFT4222
#
# Adapted from cmake-modules Google Code project
#
# Copyright (c) 2006 Andreas Schneider <mail@cynapses.org>
#
# (Changes for LIBFTD2XX) Copyright (c) 2008 Kyle Machulis <kyle@nonpolynomial.com>
# (Changes for LIBFT4222) Henry Bruce <henry.bruce@intel.com> Copyright (c) 2015 Intel Corporation.
#
# Redistribution and use is allowed according to the terms of the New BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
# SPDX-License-Identifier: BSD-3-Clause
if (LIBFT4222_LIBRARIES AND LIBFT4222_INCLUDE_DIRS)
# in cache already
set(LIBFT4222_FOUND TRUE)
else (LIBFT4222_LIBRARIES AND LIBFT4222_INCLUDE_DIRS)
find_path(LIBFT4222_INCLUDE_DIR
NAMES
libft4222.h
PATHS
/usr/include
/usr/local/include
/opt/local/include
/sw/include
Platform_extender: FT4222 library refactor Updates to make the FT4222 platform extender more usable. Previous implementation opened libft4222.so and loaded symbols as needed. This implementation removes dynamic loading of libft4222 in favor of creating a new shared libary which links against libft4222.so. The dynamic loading is now done in mraa.c. One C method is exposed in libmraa-platform-ft4222.so for finding/initializing an FT4222: mraa_platform_t mraa_usb_platform_extender(mraa_board_t* board); Mraa.c attempts to open this platform library and calls the mraa_usb_platform_extender method. If an ftdi4222 is connected, the user gets added IO from the extender. If no FT4222 device is connected, continue as normal. * Create a new platform library for the FT4222 * Expose only 1 C method from the library - mraa_usb_platform_extender * libmraa-platform-ft4222.so contains CXX code (as well as previous C code). All *allocs have been removed in favor of global C++ stl containers. * Previously, the FT4222 would only initialize correctly if 2 ftdi devices existed. Now, initialize FT4222 devices based on the device id. * Many fixes for various problems with the FT4222 * Added unit test for platform extender (minimal functionality w/o hw) * Updated to FindFtd4222.cmake module to handle standard arguments * Removed CMAKE_C_FLAGS addition of -DFTDID2XX and -DFTDI4222 since these are NOT used anywhere in source. * Building the FTDI4222 shim requires libft4222.h which requires ftd2xx.h. Updated CMakeLists.txt to require both when building the shim. Signed-off-by: Noel Eck <noel.eck@intel.com>
2018-06-01 14:59:39 -07:00
)
SET(FTD4222_LIBNAME ft4222)
IF(WIN32)
Platform_extender: FT4222 library refactor Updates to make the FT4222 platform extender more usable. Previous implementation opened libft4222.so and loaded symbols as needed. This implementation removes dynamic loading of libft4222 in favor of creating a new shared libary which links against libft4222.so. The dynamic loading is now done in mraa.c. One C method is exposed in libmraa-platform-ft4222.so for finding/initializing an FT4222: mraa_platform_t mraa_usb_platform_extender(mraa_board_t* board); Mraa.c attempts to open this platform library and calls the mraa_usb_platform_extender method. If an ftdi4222 is connected, the user gets added IO from the extender. If no FT4222 device is connected, continue as normal. * Create a new platform library for the FT4222 * Expose only 1 C method from the library - mraa_usb_platform_extender * libmraa-platform-ft4222.so contains CXX code (as well as previous C code). All *allocs have been removed in favor of global C++ stl containers. * Previously, the FT4222 would only initialize correctly if 2 ftdi devices existed. Now, initialize FT4222 devices based on the device id. * Many fixes for various problems with the FT4222 * Added unit test for platform extender (minimal functionality w/o hw) * Updated to FindFtd4222.cmake module to handle standard arguments * Removed CMAKE_C_FLAGS addition of -DFTDID2XX and -DFTDI4222 since these are NOT used anywhere in source. * Building the FTDI4222 shim requires libft4222.h which requires ftd2xx.h. Updated CMakeLists.txt to require both when building the shim. Signed-off-by: Noel Eck <noel.eck@intel.com>
2018-06-01 14:59:39 -07:00
SET(FTD4222_LIBNAME LibFT4222.lib)
ENDIF(WIN32)
find_library(LIBFT4222_LIBRARY
NAMES
${FTD4222_LIBNAME}
PATHS
/usr/lib
/usr/local/lib
/opt/local/lib
/sw/lib
Platform_extender: FT4222 library refactor Updates to make the FT4222 platform extender more usable. Previous implementation opened libft4222.so and loaded symbols as needed. This implementation removes dynamic loading of libft4222 in favor of creating a new shared libary which links against libft4222.so. The dynamic loading is now done in mraa.c. One C method is exposed in libmraa-platform-ft4222.so for finding/initializing an FT4222: mraa_platform_t mraa_usb_platform_extender(mraa_board_t* board); Mraa.c attempts to open this platform library and calls the mraa_usb_platform_extender method. If an ftdi4222 is connected, the user gets added IO from the extender. If no FT4222 device is connected, continue as normal. * Create a new platform library for the FT4222 * Expose only 1 C method from the library - mraa_usb_platform_extender * libmraa-platform-ft4222.so contains CXX code (as well as previous C code). All *allocs have been removed in favor of global C++ stl containers. * Previously, the FT4222 would only initialize correctly if 2 ftdi devices existed. Now, initialize FT4222 devices based on the device id. * Many fixes for various problems with the FT4222 * Added unit test for platform extender (minimal functionality w/o hw) * Updated to FindFtd4222.cmake module to handle standard arguments * Removed CMAKE_C_FLAGS addition of -DFTDID2XX and -DFTDI4222 since these are NOT used anywhere in source. * Building the FTDI4222 shim requires libft4222.h which requires ftd2xx.h. Updated CMakeLists.txt to require both when building the shim. Signed-off-by: Noel Eck <noel.eck@intel.com>
2018-06-01 14:59:39 -07:00
)
if(LIBFT4222_INCLUDE_DIR)
Platform_extender: FT4222 library refactor Updates to make the FT4222 platform extender more usable. Previous implementation opened libft4222.so and loaded symbols as needed. This implementation removes dynamic loading of libft4222 in favor of creating a new shared libary which links against libft4222.so. The dynamic loading is now done in mraa.c. One C method is exposed in libmraa-platform-ft4222.so for finding/initializing an FT4222: mraa_platform_t mraa_usb_platform_extender(mraa_board_t* board); Mraa.c attempts to open this platform library and calls the mraa_usb_platform_extender method. If an ftdi4222 is connected, the user gets added IO from the extender. If no FT4222 device is connected, continue as normal. * Create a new platform library for the FT4222 * Expose only 1 C method from the library - mraa_usb_platform_extender * libmraa-platform-ft4222.so contains CXX code (as well as previous C code). All *allocs have been removed in favor of global C++ stl containers. * Previously, the FT4222 would only initialize correctly if 2 ftdi devices existed. Now, initialize FT4222 devices based on the device id. * Many fixes for various problems with the FT4222 * Added unit test for platform extender (minimal functionality w/o hw) * Updated to FindFtd4222.cmake module to handle standard arguments * Removed CMAKE_C_FLAGS addition of -DFTDID2XX and -DFTDI4222 since these are NOT used anywhere in source. * Building the FTDI4222 shim requires libft4222.h which requires ftd2xx.h. Updated CMakeLists.txt to require both when building the shim. Signed-off-by: Noel Eck <noel.eck@intel.com>
2018-06-01 14:59:39 -07:00
set(LIBFT4222_INCLUDE_DIRS
${LIBFT4222_INCLUDE_DIR}
Platform_extender: FT4222 library refactor Updates to make the FT4222 platform extender more usable. Previous implementation opened libft4222.so and loaded symbols as needed. This implementation removes dynamic loading of libft4222 in favor of creating a new shared libary which links against libft4222.so. The dynamic loading is now done in mraa.c. One C method is exposed in libmraa-platform-ft4222.so for finding/initializing an FT4222: mraa_platform_t mraa_usb_platform_extender(mraa_board_t* board); Mraa.c attempts to open this platform library and calls the mraa_usb_platform_extender method. If an ftdi4222 is connected, the user gets added IO from the extender. If no FT4222 device is connected, continue as normal. * Create a new platform library for the FT4222 * Expose only 1 C method from the library - mraa_usb_platform_extender * libmraa-platform-ft4222.so contains CXX code (as well as previous C code). All *allocs have been removed in favor of global C++ stl containers. * Previously, the FT4222 would only initialize correctly if 2 ftdi devices existed. Now, initialize FT4222 devices based on the device id. * Many fixes for various problems with the FT4222 * Added unit test for platform extender (minimal functionality w/o hw) * Updated to FindFtd4222.cmake module to handle standard arguments * Removed CMAKE_C_FLAGS addition of -DFTDID2XX and -DFTDI4222 since these are NOT used anywhere in source. * Building the FTDI4222 shim requires libft4222.h which requires ftd2xx.h. Updated CMakeLists.txt to require both when building the shim. Signed-off-by: Noel Eck <noel.eck@intel.com>
2018-06-01 14:59:39 -07:00
)
endif(LIBFT4222_INCLUDE_DIR)
set(LIBFT4222_LIBRARIES
${LIBFT4222_LIBRARY}
Platform_extender: FT4222 library refactor Updates to make the FT4222 platform extender more usable. Previous implementation opened libft4222.so and loaded symbols as needed. This implementation removes dynamic loading of libft4222 in favor of creating a new shared libary which links against libft4222.so. The dynamic loading is now done in mraa.c. One C method is exposed in libmraa-platform-ft4222.so for finding/initializing an FT4222: mraa_platform_t mraa_usb_platform_extender(mraa_board_t* board); Mraa.c attempts to open this platform library and calls the mraa_usb_platform_extender method. If an ftdi4222 is connected, the user gets added IO from the extender. If no FT4222 device is connected, continue as normal. * Create a new platform library for the FT4222 * Expose only 1 C method from the library - mraa_usb_platform_extender * libmraa-platform-ft4222.so contains CXX code (as well as previous C code). All *allocs have been removed in favor of global C++ stl containers. * Previously, the FT4222 would only initialize correctly if 2 ftdi devices existed. Now, initialize FT4222 devices based on the device id. * Many fixes for various problems with the FT4222 * Added unit test for platform extender (minimal functionality w/o hw) * Updated to FindFtd4222.cmake module to handle standard arguments * Removed CMAKE_C_FLAGS addition of -DFTDID2XX and -DFTDI4222 since these are NOT used anywhere in source. * Building the FTDI4222 shim requires libft4222.h which requires ftd2xx.h. Updated CMakeLists.txt to require both when building the shim. Signed-off-by: Noel Eck <noel.eck@intel.com>
2018-06-01 14:59:39 -07:00
)
if (LIBFT4222_INCLUDE_DIRS AND LIBFT4222_LIBRARIES)
set(LIBFT4222_FOUND TRUE)
endif (LIBFT4222_INCLUDE_DIRS AND LIBFT4222_LIBRARIES)
if (LIBFT4222_FOUND)
if (NOT LIBFT4222_FIND_QUIETLY)
Platform_extender: FT4222 library refactor Updates to make the FT4222 platform extender more usable. Previous implementation opened libft4222.so and loaded symbols as needed. This implementation removes dynamic loading of libft4222 in favor of creating a new shared libary which links against libft4222.so. The dynamic loading is now done in mraa.c. One C method is exposed in libmraa-platform-ft4222.so for finding/initializing an FT4222: mraa_platform_t mraa_usb_platform_extender(mraa_board_t* board); Mraa.c attempts to open this platform library and calls the mraa_usb_platform_extender method. If an ftdi4222 is connected, the user gets added IO from the extender. If no FT4222 device is connected, continue as normal. * Create a new platform library for the FT4222 * Expose only 1 C method from the library - mraa_usb_platform_extender * libmraa-platform-ft4222.so contains CXX code (as well as previous C code). All *allocs have been removed in favor of global C++ stl containers. * Previously, the FT4222 would only initialize correctly if 2 ftdi devices existed. Now, initialize FT4222 devices based on the device id. * Many fixes for various problems with the FT4222 * Added unit test for platform extender (minimal functionality w/o hw) * Updated to FindFtd4222.cmake module to handle standard arguments * Removed CMAKE_C_FLAGS addition of -DFTDID2XX and -DFTDI4222 since these are NOT used anywhere in source. * Building the FTDI4222 shim requires libft4222.h which requires ftd2xx.h. Updated CMakeLists.txt to require both when building the shim. Signed-off-by: Noel Eck <noel.eck@intel.com>
2018-06-01 14:59:39 -07:00
message(STATUS "Found LIBFT4222: ${LIBFT4222_LIBRARIES}")
endif (NOT LIBFT4222_FIND_QUIETLY)
else (LIBFT4222_FOUND)
if (LIBFT4222_FIND_REQUIRED)
Platform_extender: FT4222 library refactor Updates to make the FT4222 platform extender more usable. Previous implementation opened libft4222.so and loaded symbols as needed. This implementation removes dynamic loading of libft4222 in favor of creating a new shared libary which links against libft4222.so. The dynamic loading is now done in mraa.c. One C method is exposed in libmraa-platform-ft4222.so for finding/initializing an FT4222: mraa_platform_t mraa_usb_platform_extender(mraa_board_t* board); Mraa.c attempts to open this platform library and calls the mraa_usb_platform_extender method. If an ftdi4222 is connected, the user gets added IO from the extender. If no FT4222 device is connected, continue as normal. * Create a new platform library for the FT4222 * Expose only 1 C method from the library - mraa_usb_platform_extender * libmraa-platform-ft4222.so contains CXX code (as well as previous C code). All *allocs have been removed in favor of global C++ stl containers. * Previously, the FT4222 would only initialize correctly if 2 ftdi devices existed. Now, initialize FT4222 devices based on the device id. * Many fixes for various problems with the FT4222 * Added unit test for platform extender (minimal functionality w/o hw) * Updated to FindFtd4222.cmake module to handle standard arguments * Removed CMAKE_C_FLAGS addition of -DFTDID2XX and -DFTDI4222 since these are NOT used anywhere in source. * Building the FTDI4222 shim requires libft4222.h which requires ftd2xx.h. Updated CMakeLists.txt to require both when building the shim. Signed-off-by: Noel Eck <noel.eck@intel.com>
2018-06-01 14:59:39 -07:00
message(FATAL_ERROR "Could not find LIBFT4222")
endif (LIBFT4222_FIND_REQUIRED)
endif (LIBFT4222_FOUND)
Platform_extender: FT4222 library refactor Updates to make the FT4222 platform extender more usable. Previous implementation opened libft4222.so and loaded symbols as needed. This implementation removes dynamic loading of libft4222 in favor of creating a new shared libary which links against libft4222.so. The dynamic loading is now done in mraa.c. One C method is exposed in libmraa-platform-ft4222.so for finding/initializing an FT4222: mraa_platform_t mraa_usb_platform_extender(mraa_board_t* board); Mraa.c attempts to open this platform library and calls the mraa_usb_platform_extender method. If an ftdi4222 is connected, the user gets added IO from the extender. If no FT4222 device is connected, continue as normal. * Create a new platform library for the FT4222 * Expose only 1 C method from the library - mraa_usb_platform_extender * libmraa-platform-ft4222.so contains CXX code (as well as previous C code). All *allocs have been removed in favor of global C++ stl containers. * Previously, the FT4222 would only initialize correctly if 2 ftdi devices existed. Now, initialize FT4222 devices based on the device id. * Many fixes for various problems with the FT4222 * Added unit test for platform extender (minimal functionality w/o hw) * Updated to FindFtd4222.cmake module to handle standard arguments * Removed CMAKE_C_FLAGS addition of -DFTDID2XX and -DFTDI4222 since these are NOT used anywhere in source. * Building the FTDI4222 shim requires libft4222.h which requires ftd2xx.h. Updated CMakeLists.txt to require both when building the shim. Signed-off-by: Noel Eck <noel.eck@intel.com>
2018-06-01 14:59:39 -07:00
find_package_handle_standard_args(Ftd4222
REQUIRED_VARS LIBFT4222_INCLUDE_DIRS LIBFT4222_LIBRARIES)
# show the LIBFT4222_INCLUDE_DIRS and LIBFT4222_LIBRARIES variables only in the advanced view
mark_as_advanced(LIBFT4222_INCLUDE_DIRS LIBFT4222_LIBRARIES)
endif (LIBFT4222_LIBRARIES AND LIBFT4222_INCLUDE_DIRS)