make static libs optional.  already sent upstream.

--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -46,6 +46,8 @@ set(CPACK_COMPONENT_SHAREDLIBS_GROUP "Development")
 "Static library, good if you want to embed libftdi1 in your application.")
 set(CPACK_COMPONENT_HEADERS_DESCRIPTION
 "C/C++ header files.")
+
+option ( STATICLIBS "Build static libraries" ON )
 
 set(CPACK_COMPONENT_SHAREDLIBS_GROUP "Development")
 set(CPACK_COMPONENT_STATICLIBS_GROUP "Development")
--- a/ftdipp/CMakeLists.txt
+++ b/ftdipp/CMakeLists.txt
@@ -30,12 +30,16 @@ if (FTDIPP)
         set_target_properties(ftdipp1 PROPERTIES VERSION ${VERSION_FIXUP}.${MINOR_VERSION}.0 SOVERSION 2)
 
         # Static library
-        add_library(ftdipp1-static STATIC ${cpp_sources})
-        set_target_properties(ftdipp1-static PROPERTIES OUTPUT_NAME "ftdipp1")
+        if (STATICLIBS)
+            add_library(ftdipp1-static STATIC ${cpp_sources})
+            set_target_properties(ftdipp1-static PROPERTIES OUTPUT_NAME "ftdipp1")
+        endif (STATICLIBS)
 
         # Prevent clobbering each other during the build
         set_target_properties(ftdipp1 PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-        set_target_properties(ftdipp1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+        if (STATICLIBS)
+            set_target_properties(ftdipp1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+        endif (STATICLIBS)
 
         # Dependencies
         target_link_libraries(ftdipp1 ftdi1 ${LIBUSB_LIBRARIES} ${BOOST_LIBRARIES})
@@ -46,10 +50,12 @@ if (FTDIPP)
                         LIBRARY DESTINATION lib${LIB_SUFFIX}
                         COMPONENT sharedlibs
                         )
-            install( TARGETS ftdipp1-static
-                        ARCHIVE DESTINATION lib${LIB_SUFFIX}
-                        COMPONENT staticlibs
-                        )
+            if (STATICLIBS)
+                install( TARGETS ftdipp1-static
+                            ARCHIVE DESTINATION lib${LIB_SUFFIX}
+                            COMPONENT staticlibs
+                            )
+            endif (STATICLIBS)
             install( FILES ${cpp_headers}
                         DESTINATION include/${PROJECT_NAME}
                         COMPONENT headers
@@ -61,10 +67,12 @@ if (FTDIPP)
                         DESTINATION bin
                         COMPONENT sharedlibs
                         )
-            install( TARGETS ftdipp1-static
-                        DESTINATION bin
-                        COMPONENT staticlibs
-                        )
+            if (STATICLIBS)
+                install( TARGETS ftdipp1-static
+                            DESTINATION bin
+                            COMPONENT staticlibs
+                            )
+            endif (STATICLIBS)
             install( FILES ${cpp_headers}
                         DESTINATION include/${PROJECT_NAME}
                         COMPONENT headers
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -28,11 +28,15 @@ set_target_properties(ftdi1 PROPERTIES VERSION ${VERSION_FIXUP}.${MINOR_VERSION}
 
 # Static library
 add_library(ftdi1-static STATIC ${c_sources})
-set_target_properties(ftdi1-static PROPERTIES OUTPUT_NAME "ftdi1")
+if (STATICLIBS)
+    set_target_properties(ftdi1-static PROPERTIES OUTPUT_NAME "ftdi1")
+endif (STATICLIBS)
 
 # Prevent clobbering each other during the build
 set_target_properties(ftdi1 PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-set_target_properties(ftdi1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+if (STATICLIBS)
+    set_target_properties(ftdi1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+endif (STATICLIBS)
 
 # Dependencies
 target_link_libraries(ftdi1 ${LIBUSB_LIBRARIES})
@@ -45,10 +49,12 @@ if(${UNIX})
             COMPONENT sharedlibs
             )
 
-   install( TARGETS ftdi1-static
-            ARCHIVE DESTINATION lib${LIB_SUFFIX}
-            COMPONENT staticlibs
-            )
+   if (STATICLIBS)
+       install( TARGETS ftdi1-static
+                ARCHIVE DESTINATION lib${LIB_SUFFIX}
+                COMPONENT staticlibs
+                )
+   endif (STATICLIBS)
 
    install( FILES ${c_headers}
             DESTINATION include/${PROJECT_NAME}
@@ -64,10 +70,12 @@ if(${WIN32})
             COMPONENT sharedlibs
             )
 
-   install( TARGETS ftdi1-static
-            DESTINATION bin
-            COMPONENT staticlibs
-            )
+   if (STATICLIBS)
+       install( TARGETS ftdi1-static
+                DESTINATION bin
+                COMPONENT staticlibs
+                )
+   endif (STATICLIBS)
 
    install( FILES ${c_headers}
             DESTINATION include/${PROJECT_NAME}
