Alright, attached is a proof of concept patch, untested, for comments
on the approach.

Chris


On Tue, Jan 28, 2014 at 10:57 AM, Chris Morgan <[email protected]> wrote:
> On Tue, Jan 28, 2014 at 8:53 AM, Chris Morgan <[email protected]> wrote:
>> On Tue, Jan 28, 2014 at 4:53 AM,
>> <[email protected]> wrote:
>>>>>>>> "Chris" == Chris Morgan <[email protected]> writes:
>>>
>>>     Chris> How do I use that script? Do I just include it like:
>>>
>>> In xc3sprog/CMakeLists.txt I have
>>> ...
>>> set(USE_STATIC_FTDI ON)
>>> ...
>>> find_package(libftdi)
>>> include_directories(${LIBFTDI_INCLUDE_DIR})
>>> ...
>>> add_executable(detectchain detectchain.cpp cables.h devices.h)
>>> target_link_libraries(detectchain xc3sproglib ${LIBFTDI_LIBRARIES} 
>>> ${LIBFTD2XX_LIBRARIES} ${CONDITIONAL_LIBS})
>>>
>>> add_executable(xc3sprog xc3sprog.cpp javr.cpp srecfile.cpp progalgavr.cpp
>>>                         devices.h)
>>> target_link_libraries(xc3sprog xc3sproglib ${LIBFTDI_LIBRARIES}  
>>> ${LIBFTD2XX_LIBRARIES} ${CONDITIONAL_LIBS}  )
>>>
>>> add_executable(readdna readdna.cpp devices.h)
>>> target_link_libraries(readdna xc3sproglib ${LIBFTDI_LIBRARIES}  
>>> ${LIBFTD2XX_LIBRARIES} ${CONDITIONAL_LIBS}  )
>>>
>>
>>
>> I tried this but for whatever reason the Findlibftdi.cmake can't find
>> my libftdi files. I suspect this is because I'm actually installing
>> libftdi to a user directory and the pkg-config and other entries
>> aren't in the correct place. For whatever reason the example cmake
>> usage in the libftdi source is working for me, the:
>>
>> find_package (LibFTDI1 NO_MODULE REQUIRED)
>> include (${LIBFTDI_USE_FILE})
>>
>>
>>
>> Still seems like a better approach to support this in the existing
>> libftdi cmake scripts, unless I'm missing something as to why this
>> shouldn't be done.
>>
>> I was looking at what it might take to add this support to libftdi
>> proper. In LibFTDI1Config.cmake there are set()s for LIBFTDI_LIBRARY
>> and LIBFTDI_LIBRARIES. What if we introduce two new ones,
>>
>> LIBFTDI_STATIC_LIBRARY and LIBFTDI_STATIC_LIBRARIES that refer to
>> libftdi1.a instead of libftdi1.so? I tested this locally and it
>> appears to be working properly.
>>
>> Thoughts?
>>
>> Chris
>
>
> And by thoughts, I want to see if what I'm saying makes sense before
> sending patches, but didn't want to go down that road if there is a
> better idea or approach.
>
> Chris


--
libftdi - see http://www.intra2net.com/en/developer/libftdi for details.
To unsubscribe send a mail to [email protected]   
From 7af906ab4e71697f99300574ef1c741262d36417 Mon Sep 17 00:00:00 2001
From: Chris Morgan <[email protected]>
Date: Thu, 30 Jan 2014 17:22:44 -0500
Subject: [PATCH] Add LIBFTDI_STATIC_LIBRARY and LIBFTDI_STATIC_LIBRARIES to
 make it easier to link statically against libftdi

---
 CMakeLists.txt                | 3 +++
 cmake/LibFTDI1Config.cmake.in | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index bdd211d..49e23bc 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -186,6 +186,9 @@ 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_LIBRARY} )
+list ( APPEND LIBFTDI_STATIC_LIBRARIES ${LIBUSB_LIBRARIES} )
 if (FTDI_BUILD_CPP)
   set ( LIBFTDIPP_LIBRARY ftdi1pp )
   set ( LIBFTDIPP_LIBRARIES ${LIBFTDIPP_LIBRARY} )
diff --git a/cmake/LibFTDI1Config.cmake.in b/cmake/LibFTDI1Config.cmake.in
index 904a9b7..ecc615e 100644
--- a/cmake/LibFTDI1Config.cmake.in
+++ b/cmake/LibFTDI1Config.cmake.in
@@ -37,6 +37,8 @@ set ( LIBFTDI_INCLUDE_DIR  "@LIBFTDI_INCLUDE_DIR@" )
 set ( LIBFTDI_INCLUDE_DIRS "@LIBFTDI_INCLUDE_DIRS@" )
 set ( LIBFTDI_LIBRARY      "@LIBFTDI_LIBRARY@" )
 set ( LIBFTDI_LIBRARIES    "@LIBFTDI_LIBRARIES@" )
+set ( LIBFTDI_STATIC_LIBRARY      "@LIBFTDI_STATIC_LIBRARY@" )
+set ( LIBFTDI_STATIC_LIBRARIES    "@LIBFTDI_STATIC_LIBRARIES@" )
 set ( LIBFTDIPP_LIBRARY    "@LIBFTDIPP_LIBRARY@" )
 set ( LIBFTDIPP_LIBRARIES  "@LIBFTDIPP_LIBRARIES@" )
 set ( LIBFTDI_LIBRARY_DIRS "@LIBFTDI_LIBRARY_DIRS@" )
-- 
1.8.3.1

Reply via email to