libftdi Archives

Subject: Re: [PATCH] cmake: use the standard CMake flag to drive the shared object build

From: Yegor Yefremov <yegorslists@xxxxxxxxxxxxxx>
To: libftdi@xxxxxxxxxxxxxxxxxxxxxxx
Cc: Thomas Jarosch <thomas.jarosch@xxxxxxxxxxxxx>, Samuel Martin <s.martin49@xxxxxxxxx>
Date: Sat, 23 Dec 2017 21:45:11 +0100
On Fri, Dec 15, 2017 at 3:19 PM, Yegor Yefremov
<yegorslists@xxxxxxxxxxxxxx> wrote:
> Hello Thomas,
>
> On Fri, Dec 15, 2017 at 3:09 PM,  <yegorslists@xxxxxxxxxxxxxx> wrote:
>> From: Samuel Martin <s.martin49@xxxxxxxxx>
>>
>> Remove the STATICLIBS CMake option (and the code handling it) and let
>> the standard CMake flags drive the shared object build.
>>
>> Build shared library:
>> cmake -DBUILD_SHARED_LIBS=ON
>>
>> Build static library:
>> cmake -DBUILD_SHARED_LIBS=OFF
>>
>> Signed-off-by: Samuel Martin <s.martin49@xxxxxxxxx>
>> Signed-off-by: Yegor Yefremov <yegorslists@xxxxxxxxxxxxxx>
>> ---
>>  CMakeLists.txt        |  2 --
>>  ftdipp/CMakeLists.txt | 15 +--------------
>>  src/CMakeLists.txt    | 13 +------------
>>  3 files changed, 2 insertions(+), 28 deletions(-)
>>
>> diff --git a/CMakeLists.txt b/CMakeLists.txt
>> index 66abe4c..6ed4363 100644
>> --- a/CMakeLists.txt
>> +++ b/CMakeLists.txt
>> @@ -46,8 +46,6 @@ set(CPACK_COMPONENT_SHAREDLIBS_GROUP "Development")
>>  set(CPACK_COMPONENT_STATICLIBS_GROUP "Development")
>>  set(CPACK_COMPONENT_HEADERS_GROUP    "Development")
>>
>> -option ( STATICLIBS "Build static libraries" ON )
>> -
>>  # guess LIB_SUFFIX, don't take debian multiarch into account
>>  if ( NOT DEFINED LIB_SUFFIX )
>>    if( CMAKE_SYSTEM_NAME MATCHES "Linux"
>> diff --git a/ftdipp/CMakeLists.txt b/ftdipp/CMakeLists.txt
>> index 27fbe8d..1dd0881 100644
>> --- a/ftdipp/CMakeLists.txt
>> +++ b/ftdipp/CMakeLists.txt
>> @@ -23,8 +23,7 @@ if (FTDIPP)
>>      set(FTDI_BUILD_CPP True PARENT_SCOPE)
>>      message(STATUS "Building libftdi1++")
>>
>> -    # Shared library
>> -    add_library(ftdipp1 SHARED ${cpp_sources})
>> +    add_library(ftdipp1 ${cpp_sources})
>>
>>      math(EXPR VERSION_FIXUP "${MAJOR_VERSION} + 1")    # Compatiblity with 
>> previous releases
>>      set_target_properties(ftdipp1 PROPERTIES VERSION 
>> ${VERSION_FIXUP}.${MINOR_VERSION}.0 SOVERSION 3)
>> @@ -41,18 +40,6 @@ if (FTDIPP)
>>                LIBRARY DESTINATION lib${LIB_SUFFIX}
>>                ARCHIVE DESTINATION lib${LIB_SUFFIX}
>>              )
>> -
>> -    # 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 lib${LIB_SUFFIX}
>> -                COMPONENT staticlibs
>> -              )
>> -    endif ()
>>
>>      install ( FILES ${cpp_headers}
>>                DESTINATION include/${PROJECT_NAME}
>> diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
>> index 9fd86a6..501d4a8 100644
>> --- a/src/CMakeLists.txt
>> +++ b/src/CMakeLists.txt
>> @@ -21,7 +21,7 @@ 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})
>> +add_library(ftdi1 ${c_sources})
>>
>>  math(EXPR VERSION_FIXUP "${MAJOR_VERSION} + 1")    # Compatiblity with 
>> previous releases
>>  set_target_properties(ftdi1 PROPERTIES VERSION 
>> ${VERSION_FIXUP}.${MINOR_VERSION}.0 SOVERSION 2)
>> @@ -38,17 +38,6 @@ install ( TARGETS ftdi1
>>            ARCHIVE DESTINATION lib${LIB_SUFFIX}
>>          )
>>
>> -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 lib${LIB_SUFFIX}
>> -            COMPONENT staticlibs
>> -          )
>> -endif ()
>> -
>>  install ( FILES ${c_headers}
>>            DESTINATION include/${PROJECT_NAME}
>>            COMPONENT headers
>> --
>> 2.11.0
>
> There are two more patches in Buildroot [1], that we would like to see
> upstream. Should Samuel or I resend them or can you take them from BR
> git repo?
>
> Thanks.
>
> [1] https://git.busybox.net/buildroot/tree/package/libftdi1

Forget about the STATICLIBS related patch, as libftdi1 creates both
dynamic and static libs at once.

Yegor

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

Current Thread