From 602adb256f131ef673adb18f8581ff249b356077 Mon Sep 17 00:00:00 2001 From: Michel Zou Date: Tue, 19 Feb 2013 10:44:32 +0100 Subject: [PATCH] Added confuse script and moved cmake files --- CMakeLists.txt | 2 +- FindUSB1.cmake | 38 ---------------------- cmake/FindConfuse.cmake | 74 ++++++++++++++++++++++++++++++++++++++++++++ cmake/FindUSB1.cmake | 38 ++++++++++++++++++++++ ftdi_eeprom/CMakeLists.txt | 56 +++++++++++++++------------------ 5 files changed, 139 insertions(+), 69 deletions(-) delete mode 100644 FindUSB1.cmake create mode 100644 cmake/FindConfuse.cmake create mode 100644 cmake/FindUSB1.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 3616c66..a17b226 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ set(MINOR_VERSION 0) set(PACKAGE libftdi1) set(VERSION_STRING ${MAJOR_VERSION}.${MINOR_VERSION}) set(VERSION ${VERSION_STRING}) -SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}") +set ( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ) # CMake if("${CMAKE_BUILD_TYPE}" STREQUAL "") diff --git a/FindUSB1.cmake b/FindUSB1.cmake deleted file mode 100644 index ebcac99..0000000 --- a/FindUSB1.cmake +++ /dev/null @@ -1,38 +0,0 @@ -# - Try to find the freetype library -# Once done this defines -# -# LIBUSB_FOUND - system has libusb -# LIBUSB_INCLUDE_DIR - the libusb include directory -# LIBUSB_LIBRARIES - Link these to use libusb - -# Copyright (c) 2006, 2008 Laurent Montel, -# -# Redistribution and use is allowed according to the terms of the BSD license. -# For details see the accompanying COPYING-CMAKE-SCRIPTS file. - - -if (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) - - # in cache already - set(LIBUSB_FOUND TRUE) - -else (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) - IF (NOT WIN32) - # use pkg-config to get the directories and then use these values - # in the FIND_PATH() and FIND_LIBRARY() calls - find_package(PkgConfig) - pkg_check_modules(PC_LIBUSB libusb-1.0) - ENDIF(NOT WIN32) - - FIND_PATH(LIBUSB_INCLUDE_DIR libusb.h - PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS}) - - FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb-1.0 - PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS}) - - include(FindPackageHandleStandardArgs) - FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR) - - MARK_AS_ADVANCED(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES) - -endif (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) diff --git a/cmake/FindConfuse.cmake b/cmake/FindConfuse.cmake new file mode 100644 index 0000000..ab25eef --- /dev/null +++ b/cmake/FindConfuse.cmake @@ -0,0 +1,74 @@ +# libConfuse is a configuration file parser library +# available at http://www.nongnu.org/confuse/ +# +# The module defines the following variables: +# CONFUSE_FOUND - the system has Confuse +# CONFUSE_INCLUDE_DIR - where to find confuse.h +# CONFUSE_INCLUDE_DIRS - confuse includes +# CONFUSE_LIBRARY - where to find the Confuse library +# CONFUSE_LIBRARIES - aditional libraries +# CONFUSE_ROOT_DIR - root dir (ex. /usr/local) + +#============================================================================= +# Copyright 2010-2013, Julien Schueller +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# The views and conclusions contained in the software and documentation are those +# of the authors and should not be interpreted as representing official policies, +# either expressed or implied, of the FreeBSD Project. +#============================================================================= + + +find_path ( CONFUSE_INCLUDE_DIR + NAMES confuse.h +) + +set ( CONFUSE_INCLUDE_DIRS ${CONFUSE_INCLUDE_DIR} ) + +find_library ( CONFUSE_LIBRARY + NAMES confuse +) + +set ( CONFUSE_LIBRARIES ${CONFUSE_LIBRARY} ) + + +# try to guess root dir from include dir +if ( CONFUSE_INCLUDE_DIR ) + string ( REGEX REPLACE "(.*)/include.*" "\\1" CONFUSE_ROOT_DIR ${CONFUSE_INCLUDE_DIR} ) +# try to guess root dir from library dir +elseif ( CONFUSE_LIBRARY ) + string ( REGEX REPLACE "(.*)/lib[/|32|64].*" "\\1" CONFUSE_ROOT_DIR ${CONFUSE_LIBRARY} ) +endif () + + +# handle the QUIETLY and REQUIRED arguments +include ( FindPackageHandleStandardArgs ) +find_package_handle_standard_args( Confuse DEFAULT_MSG CONFUSE_LIBRARY CONFUSE_INCLUDE_DIR ) + +mark_as_advanced ( + CONFUSE_LIBRARY + CONFUSE_LIBRARIES + CONFUSE_INCLUDE_DIR + CONFUSE_INCLUDE_DIRS + CONFUSE_ROOT_DIR +) diff --git a/cmake/FindUSB1.cmake b/cmake/FindUSB1.cmake new file mode 100644 index 0000000..ebcac99 --- /dev/null +++ b/cmake/FindUSB1.cmake @@ -0,0 +1,38 @@ +# - Try to find the freetype library +# Once done this defines +# +# LIBUSB_FOUND - system has libusb +# LIBUSB_INCLUDE_DIR - the libusb include directory +# LIBUSB_LIBRARIES - Link these to use libusb + +# Copyright (c) 2006, 2008 Laurent Montel, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +if (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) + + # in cache already + set(LIBUSB_FOUND TRUE) + +else (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) + IF (NOT WIN32) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + find_package(PkgConfig) + pkg_check_modules(PC_LIBUSB libusb-1.0) + ENDIF(NOT WIN32) + + FIND_PATH(LIBUSB_INCLUDE_DIR libusb.h + PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS}) + + FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb-1.0 + PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS}) + + include(FindPackageHandleStandardArgs) + FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR) + + MARK_AS_ADVANCED(LIBUSB_INCLUDE_DIR LIBUSB_LIBRARIES) + +endif (LIBUSB_INCLUDE_DIR AND LIBUSB_LIBRARIES) diff --git a/ftdi_eeprom/CMakeLists.txt b/ftdi_eeprom/CMakeLists.txt index a843b8e..573b8ec 100644 --- a/ftdi_eeprom/CMakeLists.txt +++ b/ftdi_eeprom/CMakeLists.txt @@ -1,43 +1,39 @@ -set(FTDI_BUILD_EEPROM False PARENT_SCOPE) option(FTDI_EEPROM "Build ftdi_eeprom" ON) -if (FTDI_EEPROM) - include(FindPkgConfig) - pkg_check_modules(Confuse libconfuse) - INCLUDE_DIRECTORIES(${Confuse_INCLUDE_DIRS}) - LINK_DIRECTORIES(${Confuse_LIBRARY_DIRS}) - SET(libs ${libs} ${Confuse_LIBRARIES}) +if ( FTDI_EEPROM ) + find_package ( Confuse ) +else(FTDI_EEPROM) + message(STATUS "ftdi_eeprom build is disabled") +endif () - if(Confuse_FOUND) - set(FTDI_BUILD_EEPROM True PARENT_SCOPE) - message(STATUS "Building ftdi_eeprom") - # Version defines - set(EEPROM_MAJOR_VERSION 0) - set(EEPROM_MINOR_VERSION 17) - set(EEPROM_VERSION_STRING ${EEPROM_MAJOR_VERSION}.${EEPROM_MINOR_VERSION}) +if ( CONFUSE_FOUND ) + message(STATUS "Building ftdi_eeprom") - include_directories(BEFORE ${CMAKE_SOURCE_DIR}/src) - include_directories(BEFORE ${CMAKE_BINARY_DIR}/ftdi_eeprom) + include_directories ( ${CONFUSE_INCLUDE_DIRS} ) - configure_file( - "ftdi_eeprom_version.h.in" - "${CMAKE_BINARY_DIR}/ftdi_eeprom/ftdi_eeprom_version.h" - ) + list ( APPEND libs ${CONFUSE_LIBRARIES} ) - add_executable(ftdi_eeprom main.c) - target_link_libraries(ftdi_eeprom ftdi1) - target_link_libraries(ftdi_eeprom ${Confuse_LIBRARIES}) + # Version defines + set ( EEPROM_MAJOR_VERSION 0 ) + set ( EEPROM_MINOR_VERSION 17 ) + set ( EEPROM_VERSION_STRING ${EEPROM_MAJOR_VERSION}.${EEPROM_MINOR_VERSION} ) - install(TARGETS ftdi_eeprom DESTINATION bin) + include_directories ( BEFORE ${CMAKE_SOURCE_DIR}/src ) + include_directories ( BEFORE ${CMAKE_CURRENT_BINARY_DIR} ) - else(Confuse_FOUND) - message(STATUS "libConfuse not found, won't build ftdi_eeprom") - endif(Confuse_FOUND) + configure_file( + ftdi_eeprom_version.h.in + ${CMAKE_CURRENT_BINARY_DIR}/ftdi_eeprom_version.h + ) -else(FTDI_EEPROM) + add_executable ( ftdi_eeprom main.c ) + target_link_libraries ( ftdi_eeprom ftdi1 ) + target_link_libraries ( ftdi_eeprom ${CONFUSE_LIBRARIES} ) - message(STATUS "ftdi_eeprom build is disabled") + install ( TARGETS ftdi_eeprom DESTINATION bin ) +else () + message ( STATUS "libConfuse not found, won't build ftdi_eeprom" ) +endif () -endif(FTDI_EEPROM) -- 1.7.1