diff --unidirectional-new-file --strip-trailing-cr -u -r libftdi-0.20_orig/CMakeLists.txt libftdi-0.20/CMakeLists.txt --- libftdi-0.20_orig/CMakeLists.txt 2012-03-19 12:21:16.000000000 +0100 +++ libftdi-0.20/CMakeLists.txt 2012-10-12 00:58:42.071816000 +0200 @@ -79,6 +79,16 @@ set(CPACK_SOURCE_IGNORE_FILES "\\\\.git") set(CPACK_SOURCE_PACKAGE_FILE_NAME ${CPACK_PACKAGE_FILE_NAME}) +if(MSVC) + FIND_PACKAGE(Boost) + if(Boost_FOUND) + INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR}) + ADD_DEFINITIONS( "-DHAS_BOOST" ) + endif(Boost_FOUND) + SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc") + add_definitions(-DMSVC) +endif() + # Subdirectories if(${UNIX}) set(CPACK_SET_DESTDIR "ON") diff --unidirectional-new-file --strip-trailing-cr -u -r libftdi-0.20_orig/examples/CMakeLists.txt libftdi-0.20/examples/CMakeLists.txt --- libftdi-0.20_orig/examples/CMakeLists.txt 2012-03-15 10:58:44.000000000 +0100 +++ libftdi-0.20/examples/CMakeLists.txt 2012-10-12 01:13:42.957844000 +0200 @@ -2,9 +2,9 @@ if (EXAMPLES) # Includes - include( ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_BINARY_DIR} - ) +# include( ${CMAKE_CURRENT_SOURCE_DIR} +# ${CMAKE_CURRENT_BINARY_DIR} +# ) message(STATUS "Building example programs.") @@ -13,23 +13,27 @@ # Targets add_executable(simple simple.c) - add_executable(bitbang bitbang.c) - add_executable(bitbang2 bitbang2.c) - add_executable(bitbang_cbus bitbang_cbus.c) - add_executable(bitbang_ft2232 bitbang_ft2232.c) add_executable(find_all find_all.c) - add_executable(serial_test serial_test.c) - add_executable(baud_test baud_test.c) + if(NOT MSVC) + add_executable(bitbang bitbang.c) + add_executable(bitbang2 bitbang2.c) + add_executable(bitbang_cbus bitbang_cbus.c) + add_executable(bitbang_ft2232 bitbang_ft2232.c) + add_executable(baud_test baud_test.c) + add_executable(serial_test serial_test.c) + endif(NOT MSVC) # Linkage target_link_libraries(simple ftdi) - target_link_libraries(bitbang ftdi) - target_link_libraries(bitbang2 ftdi) - target_link_libraries(bitbang_cbus ftdi) - target_link_libraries(bitbang_ft2232 ftdi) target_link_libraries(find_all ftdi) - target_link_libraries(serial_test ftdi) - target_link_libraries(baud_test ftdi) + if(NOT MSVC) + target_link_libraries(bitbang ftdi) + target_link_libraries(bitbang2 ftdi) + target_link_libraries(bitbang_cbus ftdi) + target_link_libraries(bitbang_ft2232 ftdi) + target_link_libraries(baud_test ftdi) + target_link_libraries(serial_test ftdi) + endif(NOT MSVC) # libftdi++ examples if(FTDI_BUILD_CPP) diff --unidirectional-new-file --strip-trailing-cr -u -r libftdi-0.20_orig/FindUSB.cmake libftdi-0.20/FindUSB.cmake --- libftdi-0.20_orig/FindUSB.cmake 2012-03-15 10:58:44.000000000 +0100 +++ libftdi-0.20/FindUSB.cmake 2012-10-12 00:28:27.632513000 +0200 @@ -1,4 +1,4 @@ -# - Try to find the freetype library +# - Try to find the libusb library # Once done this defines # # LIBUSB_FOUND - system has libusb @@ -24,11 +24,13 @@ pkg_check_modules(PC_LIBUSB libusb) ENDIF(NOT WIN32) - FIND_PATH(LIBUSB_INCLUDE_DIR usb.h - PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS}) - - FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb - PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS}) + if(MSVC) + FIND_PATH(LIBUSB_INCLUDE_DIR lusb0_usb.h PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS}) + FIND_LIBRARY(LIBUSB_LIBRARIES libusb.lib PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS}) + else(MSVC) + FIND_PATH(LIBUSB_INCLUDE_DIR usb.h PATHS ${PC_LIBUSB_INCLUDEDIR} ${PC_LIBUSB_INCLUDE_DIRS}) + FIND_LIBRARY(LIBUSB_LIBRARIES NAMES usb PATHS ${PC_LIBUSB_LIBDIR} ${PC_LIBUSB_LIBRARY_DIRS}) + endif(MSVC) include(FindPackageHandleStandardArgs) FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBUSB DEFAULT_MSG LIBUSB_LIBRARIES LIBUSB_INCLUDE_DIR) diff --unidirectional-new-file --strip-trailing-cr -u -r libftdi-0.20_orig/ftdipp/CMakeLists.txt libftdi-0.20/ftdipp/CMakeLists.txt --- libftdi-0.20_orig/ftdipp/CMakeLists.txt 2012-03-15 10:58:44.000000000 +0100 +++ libftdi-0.20/ftdipp/CMakeLists.txt 2012-10-12 01:11:34.433812000 +0200 @@ -29,7 +29,12 @@ # Static library add_library(ftdipp-static STATIC ${cpp_sources}) - set_target_properties(ftdipp-static PROPERTIES OUTPUT_NAME "ftdipp") + if(MSVC) + set_target_properties(ftdipp-static PROPERTIES OUTPUT_NAME "ftdipp-static") + else(MSVC) + set_target_properties(ftdipp-static PROPERTIES OUTPUT_NAME "ftdipp") + endif(MSVC) + # Prevent clobbering each other during the build set_target_properties(ftdipp PROPERTIES CLEAN_DIRECT_OUTPUT 1) diff --unidirectional-new-file --strip-trailing-cr -u -r libftdi-0.20_orig/ftdipp/ftdi.hpp libftdi-0.20/ftdipp/ftdi.hpp --- libftdi-0.20_orig/ftdipp/ftdi.hpp 2012-03-15 10:58:44.000000000 +0100 +++ libftdi-0.20/ftdipp/ftdi.hpp 2012-10-12 00:53:51.868124000 +0200 @@ -29,6 +29,16 @@ #ifndef __libftdi_hpp__ #define __libftdi_hpp__ +#if defined (_WIN32) + #if defined (ftdipp_EXPORTS) + #define FTDIPP_EXPORT __declspec(dllexport) + #else + #define FTDIPP_EXPORT __declspec(dllimport) + #endif /* FTDIPP_EXPORTS */ +#else /* defined (_WIN32) */ + #define FTDIPP_EXPORT +#endif + #include #include #include @@ -44,7 +54,7 @@ /*! \brief FTDI device context. * Represents single FTDI device context. */ -class Context +class FTDIPP_EXPORT Context { /* Friends */ friend class Eeprom; @@ -146,7 +156,7 @@ /*! \brief Device EEPROM. */ -class Eeprom +class FTDIPP_EXPORT Eeprom { public: Eeprom(Context* parent); @@ -171,7 +181,7 @@ /*! \brief Device list. */ -class List +class FTDIPP_EXPORT List { public: List(struct ftdi_device_list* devlist = 0); diff --unidirectional-new-file --strip-trailing-cr -u -r libftdi-0.20_orig/README.msvc libftdi-0.20/README.msvc --- libftdi-0.20_orig/README.msvc 1970-01-01 01:00:00.000000000 +0100 +++ libftdi-0.20/README.msvc 2012-10-12 00:58:21.977226000 +0200 @@ -0,0 +1,15 @@ +This manual expects libusb-win32 to be located in +C:/build/libusb-win32-bin-1.2.6.0 + +and the libftdi source code in +C:/build/libftdi-0.20 + +1. Open MSVC command line +2. cd C:\build +3. mkdir libftdi-msvc-build +4. cd libftdi-msvc-build +5. cmake -DPC_LIBUSB_LIBDIR="C:/build/libusb-win32-bin-1.2.6.0/lib/msvc" -DPC_LIBUSB_INCLUDEDIR="C:/build/libusb-win32-bin-1.2.6.0/include" ../libftdi-0.20 +6. nmake + +After this step you should find the result libraries in the subdirectories of +C:/build/libftdi-msvc-build \ Kein Zeilenumbruch am Dateiende. diff --unidirectional-new-file --strip-trailing-cr -u -r libftdi-0.20_orig/src/CMakeLists.txt libftdi-0.20/src/CMakeLists.txt --- libftdi-0.20_orig/src/CMakeLists.txt 2012-03-15 10:58:44.000000000 +0100 +++ libftdi-0.20/src/CMakeLists.txt 2012-10-12 01:14:18.427322000 +0200 @@ -14,7 +14,11 @@ # Static library add_library(ftdi-static STATIC ${c_sources}) -set_target_properties(ftdi-static PROPERTIES OUTPUT_NAME "ftdi") +if(MSVC) + set_target_properties(ftdi-static PROPERTIES OUTPUT_NAME "ftdi-static") +else(MSVC) + set_target_properties(ftdi-static PROPERTIES OUTPUT_NAME "ftdi") +endif(MSVC) # Prevent clobbering each other during the build set_target_properties(ftdi PROPERTIES CLEAN_DIRECT_OUTPUT 1) @@ -51,7 +55,7 @@ ) install( TARGETS ftdi-static - DESTINATION bin + DESTINATION lib COMPONENT staticlibs ) diff --unidirectional-new-file --strip-trailing-cr -u -r libftdi-0.20_orig/src/ftdi.c libftdi-0.20/src/ftdi.c --- libftdi-0.20_orig/src/ftdi.c 2012-03-15 10:58:44.000000000 +0100 +++ libftdi-0.20/src/ftdi.c 2012-10-12 00:35:42.806781000 +0200 @@ -28,7 +28,11 @@ /** \addtogroup libftdi */ /* @{ */ +#if defined(MSVC) +#include +#else #include +#endif #include #include #include diff --unidirectional-new-file --strip-trailing-cr -u -r libftdi-0.20_orig/src/ftdi.h libftdi-0.20/src/ftdi.h --- libftdi-0.20_orig/src/ftdi.h 2012-03-15 10:58:44.000000000 +0100 +++ libftdi-0.20/src/ftdi.h 2012-10-12 00:56:48.830663000 +0200 @@ -17,7 +17,21 @@ #ifndef __libftdi_h__ #define __libftdi_h__ +#if defined (_WIN32) + #if defined (ftdi_EXPORTS) || defined (ftdistatic_EXPORTS) + #define FTDI_EXPORT __declspec(dllexport) + #else + #define FTDI_EXPORT __declspec(dllimport) + #endif /* ftdi_EXPORTS */ +#else /* defined (_WIN32) */ + #define FTDI_EXPORT +#endif + +#if defined(MSVC) +#include +#else #include +#endif #define FTDI_DEFAULT_EEPROM_SIZE 128 @@ -361,95 +375,95 @@ { #endif - int ftdi_init(struct ftdi_context *ftdi); - struct ftdi_context *ftdi_new(void); - int ftdi_set_interface(struct ftdi_context *ftdi, enum ftdi_interface interface); - - void ftdi_deinit(struct ftdi_context *ftdi); - void ftdi_free(struct ftdi_context *ftdi); - void ftdi_set_usbdev (struct ftdi_context *ftdi, usb_dev_handle *usbdev); + FTDI_EXPORT int ftdi_init(struct ftdi_context *ftdi); + FTDI_EXPORT struct ftdi_context *ftdi_new(void); + FTDI_EXPORT int ftdi_set_interface(struct ftdi_context *ftdi, enum ftdi_interface interface); + + FTDI_EXPORT void ftdi_deinit(struct ftdi_context *ftdi); + FTDI_EXPORT void ftdi_free(struct ftdi_context *ftdi); + FTDI_EXPORT void ftdi_set_usbdev (struct ftdi_context *ftdi, usb_dev_handle *usbdev); - int ftdi_usb_find_all(struct ftdi_context *ftdi, struct ftdi_device_list **devlist, + FTDI_EXPORT int ftdi_usb_find_all(struct ftdi_context *ftdi, struct ftdi_device_list **devlist, int vendor, int product); - void ftdi_list_free(struct ftdi_device_list **devlist); - void ftdi_list_free2(struct ftdi_device_list *devlist); - int ftdi_usb_get_strings(struct ftdi_context *ftdi, struct usb_device *dev, + FTDI_EXPORT void ftdi_list_free(struct ftdi_device_list **devlist); + FTDI_EXPORT void ftdi_list_free2(struct ftdi_device_list *devlist); + FTDI_EXPORT int ftdi_usb_get_strings(struct ftdi_context *ftdi, struct usb_device *dev, char * manufacturer, int mnf_len, char * description, int desc_len, char * serial, int serial_len); - int ftdi_usb_open(struct ftdi_context *ftdi, int vendor, int product); - int ftdi_usb_open_desc(struct ftdi_context *ftdi, int vendor, int product, + FTDI_EXPORT int ftdi_usb_open(struct ftdi_context *ftdi, int vendor, int product); + FTDI_EXPORT int ftdi_usb_open_desc(struct ftdi_context *ftdi, int vendor, int product, const char* description, const char* serial); - int ftdi_usb_open_desc_index(struct ftdi_context *ftdi, int vendor, int product, + FTDI_EXPORT int ftdi_usb_open_desc_index(struct ftdi_context *ftdi, int vendor, int product, const char* description, const char* serial, unsigned int index); - int ftdi_usb_open_dev(struct ftdi_context *ftdi, struct usb_device *dev); - int ftdi_usb_open_string(struct ftdi_context *ftdi, const char* description); + FTDI_EXPORT int ftdi_usb_open_dev(struct ftdi_context *ftdi, struct usb_device *dev); + FTDI_EXPORT int ftdi_usb_open_string(struct ftdi_context *ftdi, const char* description); - int ftdi_usb_close(struct ftdi_context *ftdi); - int ftdi_usb_reset(struct ftdi_context *ftdi); - int ftdi_usb_purge_rx_buffer(struct ftdi_context *ftdi); - int ftdi_usb_purge_tx_buffer(struct ftdi_context *ftdi); - int ftdi_usb_purge_buffers(struct ftdi_context *ftdi); + FTDI_EXPORT int ftdi_usb_close(struct ftdi_context *ftdi); + FTDI_EXPORT int ftdi_usb_reset(struct ftdi_context *ftdi); + FTDI_EXPORT int ftdi_usb_purge_rx_buffer(struct ftdi_context *ftdi); + FTDI_EXPORT int ftdi_usb_purge_tx_buffer(struct ftdi_context *ftdi); + FTDI_EXPORT int ftdi_usb_purge_buffers(struct ftdi_context *ftdi); - int ftdi_set_baudrate(struct ftdi_context *ftdi, int baudrate); - int ftdi_set_line_property(struct ftdi_context *ftdi, enum ftdi_bits_type bits, + FTDI_EXPORT int ftdi_set_baudrate(struct ftdi_context *ftdi, int baudrate); + FTDI_EXPORT int ftdi_set_line_property(struct ftdi_context *ftdi, enum ftdi_bits_type bits, enum ftdi_stopbits_type sbit, enum ftdi_parity_type parity); - int ftdi_set_line_property2(struct ftdi_context *ftdi, enum ftdi_bits_type bits, + FTDI_EXPORT int ftdi_set_line_property2(struct ftdi_context *ftdi, enum ftdi_bits_type bits, enum ftdi_stopbits_type sbit, enum ftdi_parity_type parity, enum ftdi_break_type break_type); - int ftdi_read_data(struct ftdi_context *ftdi, unsigned char *buf, int size); - int ftdi_read_data_set_chunksize(struct ftdi_context *ftdi, unsigned int chunksize); - int ftdi_read_data_get_chunksize(struct ftdi_context *ftdi, unsigned int *chunksize); - - int ftdi_write_data(struct ftdi_context *ftdi, unsigned char *buf, int size); - int ftdi_write_data_set_chunksize(struct ftdi_context *ftdi, unsigned int chunksize); - int ftdi_write_data_get_chunksize(struct ftdi_context *ftdi, unsigned int *chunksize); - - int ftdi_write_data_async(struct ftdi_context *ftdi, unsigned char *buf, int size); - void ftdi_async_complete(struct ftdi_context *ftdi, int wait_for_more); - - int DEPRECATED(ftdi_enable_bitbang(struct ftdi_context *ftdi, unsigned char bitmask)); - int ftdi_disable_bitbang(struct ftdi_context *ftdi); - int ftdi_set_bitmode(struct ftdi_context *ftdi, unsigned char bitmask, unsigned char mode); - int ftdi_read_pins(struct ftdi_context *ftdi, unsigned char *pins); + FTDI_EXPORT int ftdi_read_data(struct ftdi_context *ftdi, unsigned char *buf, int size); + FTDI_EXPORT int ftdi_read_data_set_chunksize(struct ftdi_context *ftdi, unsigned int chunksize); + FTDI_EXPORT int ftdi_read_data_get_chunksize(struct ftdi_context *ftdi, unsigned int *chunksize); + + FTDI_EXPORT int ftdi_write_data(struct ftdi_context *ftdi, unsigned char *buf, int size); + FTDI_EXPORT int ftdi_write_data_set_chunksize(struct ftdi_context *ftdi, unsigned int chunksize); + FTDI_EXPORT int ftdi_write_data_get_chunksize(struct ftdi_context *ftdi, unsigned int *chunksize); + + FTDI_EXPORT int ftdi_write_data_async(struct ftdi_context *ftdi, unsigned char *buf, int size); + FTDI_EXPORT void ftdi_async_complete(struct ftdi_context *ftdi, int wait_for_more); + + FTDI_EXPORT int DEPRECATED(ftdi_enable_bitbang(struct ftdi_context *ftdi, unsigned char bitmask)); + FTDI_EXPORT int ftdi_disable_bitbang(struct ftdi_context *ftdi); + FTDI_EXPORT int ftdi_set_bitmode(struct ftdi_context *ftdi, unsigned char bitmask, unsigned char mode); + FTDI_EXPORT int ftdi_read_pins(struct ftdi_context *ftdi, unsigned char *pins); - int ftdi_set_latency_timer(struct ftdi_context *ftdi, unsigned char latency); - int ftdi_get_latency_timer(struct ftdi_context *ftdi, unsigned char *latency); + FTDI_EXPORT int ftdi_set_latency_timer(struct ftdi_context *ftdi, unsigned char latency); + FTDI_EXPORT int ftdi_get_latency_timer(struct ftdi_context *ftdi, unsigned char *latency); - int ftdi_poll_modem_status(struct ftdi_context *ftdi, unsigned short *status); + FTDI_EXPORT int ftdi_poll_modem_status(struct ftdi_context *ftdi, unsigned short *status); /* flow control */ - int ftdi_setflowctrl(struct ftdi_context *ftdi, int flowctrl); - int ftdi_setdtr_rts(struct ftdi_context *ftdi, int dtr, int rts); - int ftdi_setdtr(struct ftdi_context *ftdi, int state); - int ftdi_setrts(struct ftdi_context *ftdi, int state); + FTDI_EXPORT int ftdi_setflowctrl(struct ftdi_context *ftdi, int flowctrl); + FTDI_EXPORT int ftdi_setdtr_rts(struct ftdi_context *ftdi, int dtr, int rts); + FTDI_EXPORT int ftdi_setdtr(struct ftdi_context *ftdi, int state); + FTDI_EXPORT int ftdi_setrts(struct ftdi_context *ftdi, int state); - int ftdi_set_event_char(struct ftdi_context *ftdi, unsigned char eventch, unsigned char enable); - int ftdi_set_error_char(struct ftdi_context *ftdi, unsigned char errorch, unsigned char enable); + FTDI_EXPORT int ftdi_set_event_char(struct ftdi_context *ftdi, unsigned char eventch, unsigned char enable); + FTDI_EXPORT int ftdi_set_error_char(struct ftdi_context *ftdi, unsigned char errorch, unsigned char enable); /* set eeprom size */ - void ftdi_eeprom_setsize(struct ftdi_context *ftdi, struct ftdi_eeprom *eeprom, int size); + FTDI_EXPORT void ftdi_eeprom_setsize(struct ftdi_context *ftdi, struct ftdi_eeprom *eeprom, int size); /* init and build eeprom from ftdi_eeprom structure */ - void ftdi_eeprom_initdefaults(struct ftdi_eeprom *eeprom); - void ftdi_eeprom_free(struct ftdi_eeprom *eeprom); - int ftdi_eeprom_build(struct ftdi_eeprom *eeprom, unsigned char *output); - int ftdi_eeprom_decode(struct ftdi_eeprom *eeprom, unsigned char *output, int size); + FTDI_EXPORT void ftdi_eeprom_initdefaults(struct ftdi_eeprom *eeprom); + FTDI_EXPORT void ftdi_eeprom_free(struct ftdi_eeprom *eeprom); + FTDI_EXPORT int ftdi_eeprom_build(struct ftdi_eeprom *eeprom, unsigned char *output); + FTDI_EXPORT int ftdi_eeprom_decode(struct ftdi_eeprom *eeprom, unsigned char *output, int size); /* "eeprom" needs to be valid 128 byte eeprom (generated by the eeprom generator) the checksum of the eeprom is valided */ - int ftdi_read_eeprom(struct ftdi_context *ftdi, unsigned char *eeprom); - int ftdi_read_chipid(struct ftdi_context *ftdi, unsigned int *chipid); - int ftdi_read_eeprom_getsize(struct ftdi_context *ftdi, unsigned char *eeprom, int maxsize); - int ftdi_write_eeprom(struct ftdi_context *ftdi, unsigned char *eeprom); - int ftdi_erase_eeprom(struct ftdi_context *ftdi); + FTDI_EXPORT int ftdi_read_eeprom(struct ftdi_context *ftdi, unsigned char *eeprom); + FTDI_EXPORT int ftdi_read_chipid(struct ftdi_context *ftdi, unsigned int *chipid); + FTDI_EXPORT int ftdi_read_eeprom_getsize(struct ftdi_context *ftdi, unsigned char *eeprom, int maxsize); + FTDI_EXPORT int ftdi_write_eeprom(struct ftdi_context *ftdi, unsigned char *eeprom); + FTDI_EXPORT int ftdi_erase_eeprom(struct ftdi_context *ftdi); - int ftdi_read_eeprom_location (struct ftdi_context *ftdi, int eeprom_addr, unsigned short *eeprom_val); - int ftdi_write_eeprom_location(struct ftdi_context *ftdi, int eeprom_addr, unsigned short eeprom_val); + FTDI_EXPORT int ftdi_read_eeprom_location (struct ftdi_context *ftdi, int eeprom_addr, unsigned short *eeprom_val); + FTDI_EXPORT int ftdi_write_eeprom_location(struct ftdi_context *ftdi, int eeprom_addr, unsigned short eeprom_val); - char *ftdi_get_error_string(struct ftdi_context *ftdi); + FTDI_EXPORT char *ftdi_get_error_string(struct ftdi_context *ftdi); #ifdef __cplusplus }