libftdi-git Archives

Subject: A library to talk to FTDI chips branch, master, updated. v1.5-56-g2a99230

From: libftdi-git@xxxxxxxxxxxxxxxxxxxxxxx
To: libftdi-git@xxxxxxxxxxxxxxxxxxxxxxx
Date: Thu, 12 Jun 2025 16:01:37 +0200 (CEST)
The branch, master has been updated
       via  2a992306c0acf938b29fa0cd5fbc160e24424209 (commit)
      from  18499a2fa496c20e5e35590bb89eb701fa9fdfea (commit)


- Log -----------------------------------------------------------------
commit 2a992306c0acf938b29fa0cd5fbc160e24424209
Author: Yegor Yefremov <yegorslists@xxxxxxxxxxxxxx>
Date:   Wed Jun 11 11:54:16 2025 +0200

    Add SHAREDLIBS option
    
    This option is needed to still produce .so files
    when building static libs only.

-----------------------------------------------------------------------

Summary of changes:
 CMakeLists.txt             |   49 +++++++++++++++++++++++++++++--------------
 CMakeOptions.txt           |    1 +
 ftdi_eeprom/CMakeLists.txt |    3 ++
 ftdipp/CMakeLists.txt      |   40 +++++++++++++++++------------------
 src/CMakeLists.txt         |   39 +++++++++++++++++------------------
 5 files changed, 75 insertions(+), 57 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 385952e..ce9ccb4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -190,22 +190,38 @@ endif ()
 
 set ( LIBFTDI_INCLUDE_DIR ${includedir} )
 set ( LIBFTDI_INCLUDE_DIRS ${LIBFTDI_INCLUDE_DIR} )
-set ( LIBFTDI_LIBRARY ftdi1 )
-set ( LIBFTDI_LIBRARIES ${LIBFTDI_LIBRARY} )
-list ( APPEND LIBFTDI_LIBRARIES ${LIBUSB_LIBRARIES} )
-set ( LIBFTDI_STATIC_LIBRARY ftdi1.a )
-set ( LIBFTDI_STATIC_LIBRARIES ${LIBFTDI_STATIC_LIBRARY} )
-list ( APPEND LIBFTDI_STATIC_LIBRARIES ${LIBUSB_LIBRARIES} )
-if ( FTDIPP )
-  set ( LIBFTDIPP_LIBRARY ftdipp1 )
-  set ( LIBFTDIPP_LIBRARIES ${LIBFTDIPP_LIBRARY} )
-  list ( APPEND LIBFTDIPP_LIBRARIES ${LIBUSB_LIBRARIES} )
-endif ()
-set ( LIBFTDI_LIBRARY_DIRS ${libdir} )
-set ( LIBFTDI_ROOT_DIR ${prefix} )
-set ( LIBFTDI_VERSION_STRING ${VERSION_STRING} )
-set ( LIBFTDI_VERSION_MAJOR ${MAJOR_VERSION} )
-set ( LIBFTDI_VERSION_MINOR ${MINOR_VERSION} )
+
+# Set up library variables based on what's being built
+if(SHAREDLIBS)
+  set(LIBFTDI_LIBRARY ftdi1)
+  set(LIBFTDI_LIBRARIES ${LIBFTDI_LIBRARY})
+  list(APPEND LIBFTDI_LIBRARIES ${LIBUSB_LIBRARIES})
+endif()
+
+if(STATICLIBS)
+  set(LIBFTDI_STATIC_LIBRARY ftdi1.a)
+  set(LIBFTDI_STATIC_LIBRARIES ${LIBFTDI_STATIC_LIBRARY})
+  list(APPEND LIBFTDI_STATIC_LIBRARIES ${LIBUSB_LIBRARIES})
+endif()
+
+if(FTDIPP)
+  if(SHAREDLIBS)
+    set(LIBFTDIPP_LIBRARY ftdipp1)
+    set(LIBFTDIPP_LIBRARIES ${LIBFTDIPP_LIBRARY})
+    list(APPEND LIBFTDIPP_LIBRARIES ${LIBUSB_LIBRARIES})
+  endif()
+  if(STATICLIBS)
+    set(LIBFTDIPP_STATIC_LIBRARY ftdipp1.a)
+    set(LIBFTDIPP_STATIC_LIBRARIES ${LIBFTDIPP_STATIC_LIBRARY})
+    list(APPEND LIBFTDIPP_STATIC_LIBRARIES ${LIBUSB_LIBRARIES})
+  endif()
+endif()
+
+set(LIBFTDI_LIBRARY_DIRS ${libdir})
+set(LIBFTDI_ROOT_DIR ${prefix})
+set(LIBFTDI_VERSION_STRING ${VERSION_STRING})
+set(LIBFTDI_VERSION_MAJOR ${MAJOR_VERSION})
+set(LIBFTDI_VERSION_MINOR ${MINOR_VERSION})
 
 set ( LIBFTDI_USE_FILE 
${CMAKE_INSTALL_PREFIX}/${LIBFTDI_CMAKE_CONFIG_DIR}/UseLibFTDI1.cmake )
 
@@ -241,6 +257,7 @@ include(CPack)
 
 message (STATUS "Summary of build options:
 
+  Build shared libs: ${SHAREDLIBS}
   Build static libs: ${STATICLIBS}
   Build C++ bindings: ${FTDIPP}
   Build Python bindings: ${PYTHON_BINDINGS}
diff --git a/CMakeOptions.txt b/CMakeOptions.txt
index 07b5887..c20743c 100644
--- a/CMakeOptions.txt
+++ b/CMakeOptions.txt
@@ -1,4 +1,5 @@
 option ( STATICLIBS "Build static libraries" ON )
+option ( SHAREDLIBS "Build shared/dynamic libraries" ON )
 option ( BUILD_TESTS "Build unit tests with Boost Unit Test framework" OFF )
 option ( DOCUMENTATION "Generate API documentation with Doxygen" OFF )
 option ( EXAMPLES "Build example programs" ON )
diff --git a/ftdi_eeprom/CMakeLists.txt b/ftdi_eeprom/CMakeLists.txt
index 525421e..3432d4c 100644
--- a/ftdi_eeprom/CMakeLists.txt
+++ b/ftdi_eeprom/CMakeLists.txt
@@ -40,5 +40,8 @@ target_link_libraries ( ftdi_eeprom ftdi1 
${CONFUSE_LIBRARIES} )
 if ( LIBINTL_FOUND )
   target_link_libraries ( ftdi_eeprom ${LIBINTL_LIBRARIES} )
 endif ()
+if ( NOT SHAREDLIBS AND STATICLIBS )
+  target_link_libraries ( ftdi_eeprom ${LIBUSB_LIBRARIES} )
+endif ()
 install ( TARGETS ftdi_eeprom DESTINATION bin )
 install ( FILES example.conf DESTINATION ${CMAKE_INSTALL_DOCDIR} )
diff --git a/ftdipp/CMakeLists.txt b/ftdipp/CMakeLists.txt
index 71e6055..4172d75 100644
--- a/ftdipp/CMakeLists.txt
+++ b/ftdipp/CMakeLists.txt
@@ -9,36 +9,34 @@ include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}
 )
 
 # Shared library
-add_library(ftdipp1 SHARED ${cpp_sources})
-
-math(EXPR VERSION_FIXUP "${MAJOR_VERSION} + 1")    # Compatibility with 
previous releases
-set_target_properties(ftdipp1 PROPERTIES VERSION 
${VERSION_FIXUP}.${MINOR_VERSION}.0 SOVERSION 3)
-
-# Prevent clobbering each other during the build
-set_target_properties(ftdipp1 PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-
-# Dependencies
-target_link_libraries(ftdipp1 ftdi1 ${LIBUSB_LIBRARIES})
-
-install ( TARGETS ftdipp1
+if ( SHAREDLIBS )
+  add_library(ftdipp1 SHARED ${cpp_sources})
+  math(EXPR VERSION_FIXUP "${MAJOR_VERSION} + 1")    # Compatibility with 
previous releases
+  set_target_properties(ftdipp1 PROPERTIES VERSION 
${VERSION_FIXUP}.${MINOR_VERSION}.0 SOVERSION 3)
+  # Prevent clobbering each other during the build
+  set_target_properties(ftdipp1 PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+  # Dependencies
+  target_link_libraries(ftdipp1 ftdi1 ${LIBUSB_LIBRARIES})
+  install(TARGETS ftdipp1
           RUNTIME DESTINATION bin
           LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
           ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-)
+  )
+endif()
 
 # Static library
 if ( STATICLIBS )
   add_library(ftdipp1-static STATIC ${cpp_sources})
   set_target_properties(ftdipp1-static PROPERTIES OUTPUT_NAME "ftdipp1")
   set_target_properties(ftdipp1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-
-  install ( TARGETS ftdipp1-static
-            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-            COMPONENT staticlibs
+  target_link_libraries(ftdipp1-static ftdi1-static ${LIBUSB_LIBRARIES})
+  install(TARGETS ftdipp1-static
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          COMPONENT staticlibs
   )
-endif ()
+endif()
 
-install ( FILES ${cpp_headers}
-          DESTINATION include/${PROJECT_NAME}
-          COMPONENT headers
+install(FILES ${cpp_headers}
+        DESTINATION include/${PROJECT_NAME}
+        COMPONENT headers
 )
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index e145af1..5798ab0 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -21,35 +21,34 @@ configure_file(ftdi_version_i.h.in 
"${CMAKE_CURRENT_BINARY_DIR}/ftdi_version_i.h
 set(c_sources     ${CMAKE_CURRENT_SOURCE_DIR}/ftdi.c 
${CMAKE_CURRENT_SOURCE_DIR}/ftdi_stream.c CACHE INTERNAL "List of c sources" )
 set(c_headers     ${CMAKE_CURRENT_SOURCE_DIR}/ftdi.h CACHE INTERNAL "List of c 
headers" )
 
-add_library(ftdi1 SHARED ${c_sources})
-
-math(EXPR VERSION_FIXUP "${MAJOR_VERSION} + 1")    # Compatibility with 
previous releases
-set_target_properties(ftdi1 PROPERTIES VERSION 
${VERSION_FIXUP}.${MINOR_VERSION}.0 SOVERSION 2)
-# Prevent clobbering each other during the build
-set_target_properties ( ftdi1 PROPERTIES CLEAN_DIRECT_OUTPUT 1 )
-
-
-# Dependencies
-target_link_libraries(ftdi1 ${LIBUSB_LIBRARIES})
-
-install ( TARGETS ftdi1
+# Shared library
+if ( SHAREDLIBS )
+  add_library(ftdi1 SHARED ${c_sources})
+  math(EXPR VERSION_FIXUP "${MAJOR_VERSION} + 1")    # Compatibility with 
previous releases
+  set_target_properties(ftdi1 PROPERTIES VERSION 
${VERSION_FIXUP}.${MINOR_VERSION}.0 SOVERSION 2)
+  # Prevent clobbering each other during the build
+  set_target_properties(ftdi1 PROPERTIES CLEAN_DIRECT_OUTPUT 1)
+  target_link_libraries(ftdi1 ${LIBUSB_LIBRARIES})
+  install(TARGETS ftdi1
           RUNTIME DESTINATION bin
           LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
           ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-)
+  )
+endif()
 
+# Static library
 if ( STATICLIBS )
   add_library(ftdi1-static STATIC ${c_sources})
   target_link_libraries(ftdi1-static ${LIBUSB_LIBRARIES})
   set_target_properties(ftdi1-static PROPERTIES OUTPUT_NAME "ftdi1")
   set_target_properties(ftdi1-static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-  install ( TARGETS ftdi1-static
-            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-            COMPONENT staticlibs
+  install(TARGETS ftdi1-static
+          ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+          COMPONENT staticlibs
   )
-endif ()
+endif()
 
-install ( FILES ${c_headers}
-          DESTINATION include/${PROJECT_NAME}
-          COMPONENT headers
+install(FILES ${c_headers}
+        DESTINATION include/${PROJECT_NAME}
+        COMPONENT headers
 )


hooks/post-receive
-- 
A library to talk to FTDI chips

--
libftdi-git - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to libftdi-git+unsubscribe@xxxxxxxxxxxxxxxxxxxxxxx   

Current Thread
  • A library to talk to FTDI chips branch, master, updated. v1.5-56-g2a99230, libftdi-git <=