Fix up build on Mac OS X:
authorEmmanuel Blot <eblot@moaningmarmot.info>
Sat, 19 Jun 2010 20:59:54 +0000 (22:59 +0200)
committerThomas Jarosch <thomas.jarosch@intra2net.com>
Mon, 21 Jun 2010 13:31:05 +0000 (15:31 +0200)
* Fix up Boost library management
* Fix up Python bindings
* Discard attempt to build C++ examples when Boost is not available

CMakeLists.txt
bindings/CMakeLists.txt
examples/CMakeLists.txt
ftdipp/CMakeLists.txt

index d082932..8a87178 100644 (file)
@@ -26,6 +26,9 @@ endif(${CMAKE_BUILD_TYPE} STREQUAL Debug)
 FIND_PACKAGE(USB1 REQUIRED)
 INCLUDE_DIRECTORIES(${LIBUSB_INCLUDE_DIR})
 
+# Find Boost (optional package)
+find_package(Boost)
+
 # Set components
 set(CPACK_COMPONENTS_ALL sharedlibs staticlibs headers)
 set(CPACK_COMPONENT_SHAREDLIBS_DISPLAY_NAME "Shared libraries")
@@ -43,14 +46,19 @@ set(CPACK_COMPONENT_SHAREDLIBS_GROUP "Development")
 set(CPACK_COMPONENT_STATICLIBS_GROUP "Development")
 set(CPACK_COMPONENT_HEADERS_GROUP    "Development")
 
-# Create suffix to eventually install in lib64
-IF(CMAKE_SIZEOF_VOID_P EQUAL 4)
-    SET(LIB_SUFFIX "")
-    SET(PACK_ARCH "")
-  ELSE(CMAKE_SIZEOF_VOID_P EQUAL 8)
-    SET(LIB_SUFFIX 64)
-    SET(PACK_ARCH .x86_64)
-endif(CMAKE_SIZEOF_VOID_P EQUAL 4)
+if(NOT APPLE)
+  # Create suffix to eventually install in lib64
+  if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+      SET(LIB_SUFFIX "")
+      SET(PACK_ARCH "")
+    else(CMAKE_SIZEOF_VOID_P EQUAL 8)
+      SET(LIB_SUFFIX 64)
+      SET(PACK_ARCH .x86_64)
+  endif(CMAKE_SIZEOF_VOID_P EQUAL 4)
+else(NOT APPLE)
+  SET(LIB_SUFFIX "")
+  SET(PACK_ARCH "")
+endif(NOT APPLE)
 
 # Package information
 set(CPACK_PACKAGE_VERSION              ${VERSION_STRING})
index 48f535c..5333035 100644 (file)
@@ -7,9 +7,10 @@ option(PYTHON_BINDINGS "Build python bindings via swig" ON)
 if(PYTHON_BINDINGS AND SWIG_FOUND AND PYTHONLIBS_FOUND)
     INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../src)
     INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
-
+    LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../src)
+    
     SWIG_ADD_MODULE(ftdi python ftdi.i)
-    SWIG_LINK_LIBRARIES(ftdi ${PYTHON_LIBRARIES})
+    SWIG_LINK_LIBRARIES(ftdi ftdi ${PYTHON_LIBRARIES})
 
     GET_FILENAME_COMPONENT(PYTHON_LIB_INSTALL ${PYTHON_LIBRARY} PATH)
     GET_FILENAME_COMPONENT(SITEPACKAGE ${PYTHON_LIB_INSTALL}/../site-packages ABSOLUTE)
index 7b702c2..af7f57a 100644 (file)
@@ -35,14 +35,17 @@ if (EXAMPLES)
 
     # libftdi++ examples
     if(FTDI_BUILD_CPP)
-        message(STATUS "Building libftdi++ examples.")
-        include_directories(${CMAKE_SOURCE_DIR}/ftdipp)
+        if(Boost_FOUND)
+            message(STATUS "Building libftdi++ examples.")
+            include_directories(${CMAKE_SOURCE_DIR}/ftdipp
+                                ${Boost_INCLUDE_DIRS})
 
-        # Targest
-        add_executable(find_all_pp find_all_pp.cpp)
+            # Target
+            add_executable(find_all_pp find_all_pp.cpp)
 
-        # Linkage
-        target_link_libraries(find_all_pp ftdipp)
+            # Linkage
+            target_link_libraries(find_all_pp ftdipp)
+        endif(Boost_FOUND)
     endif(FTDI_BUILD_CPP)
 else(EXAMPLES)
     message(STATUS "Not building example programs.")
index 8423b2e..43057ce 100644 (file)
@@ -5,80 +5,71 @@ option(FTDIPP "Build C++ binding library libftdi++" ON)
 
 if (FTDIPP)
 
-    # Includes
-    include_directories( ${CMAKE_CURRENT_BINARY_DIR}
-                        ${CMAKE_CURRENT_SOURCE_DIR}
-                        ${CMAKE_CURRENT_SOURCE_DIR}/../src
-                        )
-
-    # Targets
-    set(cpp_sources   ftdi.cpp)
-    set(cpp_headers   ftdi.hpp)
-
-    # Find Boost
-    find_package(Boost)
     if(Boost_FOUND)
-    set(FTDI_BUILD_CPP True PARENT_SCOPE)
-    message(STATUS "Building libftdi++")
-
-    # Targets
-    add_library(ftdipp SHARED ${cpp_sources})
-
-    math(EXPR VERSION_FIXUP "${MAJOR_VERSION} + 1")    # Compatiblity with previous releases
-    set_target_properties(ftdipp PROPERTIES VERSION ${VERSION_FIXUP}.${MINOR_VERSION}.0 SOVERSION 1)
-
-    # Static library
-    add_library(ftdipp-static STATIC ${cpp_sources})
-    set_target_properties(ftdipp-static PROPERTIES OUTPUT_NAME "ftdipp")
-
-    # Prevent clobbering each other during the build
-    set_target_properties(ftdipp PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-    set_target_properties(ftdipp-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-
-    # Dependencies
-    target_link_libraries(ftdipp ftdi ${LIBUSB_LIBRARIES} ${BOOST_LIBRARIES})
 
-    # Install
-    if(${UNIX})
+        # Includes
+        include_directories(${Boost_INCLUDE_DIRS}
+                            ${CMAKE_CURRENT_BINARY_DIR}
+                            ${CMAKE_CURRENT_SOURCE_DIR}
+                            ${CMAKE_CURRENT_SOURCE_DIR}/../src)
 
-    install( TARGETS ftdipp
-                LIBRARY DESTINATION lib${LIB_SUFFIX}
-                COMPONENT sharedlibs
-                )
+        # Targets
+        set(cpp_sources   ftdi.cpp)
+        set(cpp_headers   ftdi.hpp)
 
-    install( TARGETS ftdipp-static
-                ARCHIVE DESTINATION lib${LIB_SUFFIX}
-                COMPONENT staticlibs
-                )
+        set(FTDI_BUILD_CPP True PARENT_SCOPE)
+        message(STATUS "Building libftdi++")
 
-    install( FILES ${cpp_headers}
-                DESTINATION include/${PROJECT_NAME}
-                COMPONENT headers
-                )
+        # Shared library
+        add_library(ftdipp SHARED ${cpp_sources})
 
-    endif(${UNIX})
+        math(EXPR VERSION_FIXUP "${MAJOR_VERSION} + 1")    # Compatiblity with previous releases
+        set_target_properties(ftdipp PROPERTIES VERSION ${VERSION_FIXUP}.${MINOR_VERSION}.0 SOVERSION 1)
 
-    if(${WIN32})
+        # Static library
+        add_library(ftdipp-static STATIC ${cpp_sources})
+        set_target_properties(ftdipp-static PROPERTIES OUTPUT_NAME "ftdipp")
 
-    install( TARGETS ftdipp
-                DESTINATION bin
-                COMPONENT sharedlibs
-                )
+        # Prevent clobbering each other during the build
+        set_target_properties(ftdipp PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+        set_target_properties(ftdipp-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
 
-    install( TARGETS ftdipp-static
-                DESTINATION bin
-                COMPONENT staticlibs
-                )
+        # Dependencies
+        target_link_libraries(ftdipp ftdi ${LIBUSB_LIBRARIES} ${BOOST_LIBRARIES})
 
-    install( FILES ${cpp_headers}
-                DESTINATION include/${PROJECT_NAME}
-                COMPONENT headers
-                )
+        # Install
+        if(${UNIX})
+            install( TARGETS ftdipp
+                        LIBRARY DESTINATION lib${LIB_SUFFIX}
+                        COMPONENT sharedlibs
+                        )
+            install( TARGETS ftdipp-static
+                        ARCHIVE DESTINATION lib${LIB_SUFFIX}
+                        COMPONENT staticlibs
+                        )
+            install( FILES ${cpp_headers}
+                        DESTINATION include/${PROJECT_NAME}
+                        COMPONENT headers
+                        )
+        endif(${UNIX})
 
-    endif(${WIN32})
+        if(${WIN32})
+            install( TARGETS ftdipp
+                        DESTINATION bin
+                        COMPONENT sharedlibs
+                        )
+            install( TARGETS ftdipp-static
+                        DESTINATION bin
+                        COMPONENT staticlibs
+                        )
+            install( FILES ${cpp_headers}
+                        DESTINATION include/${PROJECT_NAME}
+                        COMPONENT headers
+                        )
+        endif(${WIN32})
 
     else(Boost_FOUND)
-    message(STATUS "Boost not found, won't build libftdi++")
+        message(STATUS "Boost not found, won't build libftdi++")
     endif(Boost_FOUND)
 
 else(FTDIPP)
@@ -86,4 +77,3 @@ else(FTDIPP)
     message(STATUS "Not building libftdi++")
 
 endif(FTDIPP)
-