Add Cross OS compilation

This commit is contained in:
Lorenzooone 2024-09-02 09:34:29 +02:00
parent 6f56918f3f
commit e2263c3e52
12 changed files with 202 additions and 78 deletions

View File

@ -12,16 +12,29 @@ option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
set(SFML_USE_STATIC_STD_LIBS TRUE)
set(CMAKE_HOST_CXX_COMPILER ${CMAKE_CXX_COMPILER} CACHE STRING "Host Compiler")
if(FORCE_WINDOWS_FTD3XX_SHARED_LIB)
set(WINDOWS_FTD3XX_USE_SHARED_LIB 1)
else()
set(WINDOWS_FTD3XX_USE_SHARED_LIB 0)
endif()
if(FORCE_WINDOWS_FTD2XX_SHARED_LIB)
set(WINDOWS_FTD2XX_USE_SHARED_LIB 1)
else()
set(WINDOWS_FTD2XX_USE_SHARED_LIB 0)
endif()
set(FETCHCONTENT_QUIET FALSE)
set(EXTRA_CXX_FLAGS "")
set(RASPBERRY_PI_COMPILATION FALSE CACHE BOOL "Option for compiling the Raspberry Pi GPIO library in")
set(SFML_BUILD_NETWORK FALSE)
set(EXTRA_LIBRARIES "")
if(MINGW_CROSS_COMPILATION)
set(EXTRA_LIBRARIES "libpthread.a")
endif()
set(FINAL_EXTENSION "")
set(HOST_FINAL_EXTENSION "")
set(SETUP_SCRIPTS_DIR ${CMAKE_SOURCE_DIR}/setup_scripts)
set(USB_RULES_DIR ${CMAKE_SOURCE_DIR}/usb_rules)
set(SCRIPT_EXTENSION "")
if (RASPBERRY_PI_COMPILATION)
set(EXTRA_LIBRARIES "gpiod")
@ -32,7 +45,7 @@ if((${CMAKE_SYSTEM_NAME} STREQUAL "Windows") AND ((${CMAKE_GENERATOR_PLATFORM} M
set(WINDOWS_ARM64 1)
endif()
if((${CMAKE_SYSTEM_NAME} STREQUAL "Windows") AND ((${CMAKE_GENERATOR_PLATFORM} MATCHES "Win32") OR (("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "") AND (${CMAKE_SYSTEM_PROCESSOR} MATCHES "Win32"))))
if((${CMAKE_SYSTEM_NAME} STREQUAL "Windows") AND ((${CMAKE_GENERATOR_PLATFORM} MATCHES "Win32") OR (("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "") AND ((${CMAKE_SYSTEM_PROCESSOR} MATCHES "Win32") OR (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86") OR (${CMAKE_SYSTEM_PROCESSOR} MATCHES "X86")))))
set(WINDOWS_x86_32 1)
endif()
@ -50,6 +63,13 @@ FetchContent_Declare(libusb1
GIT_REPOSITORY https://github.com/libusb/libusb-cmake.git
GIT_TAG main)
if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows")
set(HOST_FINAL_EXTENSION ".exe")
set(SCRIPT_EXTENSION ".bat")
else()
set(SCRIPT_EXTENSION ".sh")
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
set(FINAL_EXTENSION ".exe")
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
@ -59,30 +79,19 @@ endif()
set(FTD3XX_BASE_URL https://ftdichip.com/wp-content/uploads/)
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
set(FTD3XX_BUILD_COMMAND ${SETUP_SCRIPTS_DIR}/windows_setup_ftd3xx.bat)
set(FTD3XX_BUILD_COMMAND ${SETUP_SCRIPTS_DIR}/windows_setup_ftd3xx)
set(FTD3XX_URL_TIME 2024/01)
set(FTD3XX_VER 1.3.0.9)
set(FTD3XX_VOL FTD3XXLibrary_v${FTD3XX_VER})
set(FTD3XX_ARCHIVE ${FTD3XX_VOL}.zip)
set(FTD3XX_SUBFOLDER win)
if(${WINDOWS_FTD3XX_USE_SHARED_LIB})
set(FTD3XX_WINDOWS_PATH_SPECIFIER DLL)
set(FTD3XX_LIB FTD3XX.dll)
if(WINDOWS_ARM64)
set(FTD3XX_WINDOWS_PATH_SPECIFIER Dynamic)
set(FTD3XX_LIB FTD3XXWU.dll)
endif()
else()
set(FTD3XX_WINDOWS_PATH_SPECIFIER Static_Lib)
set(FTD3XX_LIB FTD3XX.lib)
if(WINDOWS_ARM64)
set(FTD3XX_WINDOWS_PATH_SPECIFIER Static)
set(FTD3XX_LIB FTD3XXWU.lib)
endif()
endif()
set(FTD3XX_LIB FTD3XX.lib)
set(FTD3XX_DLL FTD3XX.dll)
if(WINDOWS_ARM64)
set(FTD3XX_LIB FTD3XXWU.lib)
set(FTD3XX_DLL FTD3XXWU.dll)
set(FTD3XX_URL_TIME 2024/06)
set(FTD3XX_BUILD_COMMAND ${SETUP_SCRIPTS_DIR}/windows_setup_ftd3xx_winusb.bat)
set(FTD3XX_BUILD_COMMAND ${SETUP_SCRIPTS_DIR}/windows_setup_ftd3xx_winusb)
set(FTD3XX_ARCHIVE FTD3XX_WinUSB_Package.zip)
set(FTD3XX_PATH_WINDOWS_ARCH ARM64)
elseif("${CMAKE_SIZEOF_VOID_P}" STREQUAL "4")
@ -90,12 +99,24 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
else ()
set(FTD3XX_PATH_WINDOWS_ARCH x64)
endif()
if(${WINDOWS_FTD3XX_USE_SHARED_LIB})
set(FTD3XX_BUILD_COMMAND ${FTD3XX_BUILD_COMMAND}_dll)
set(FTD3XX_WINDOWS_PATH_SPECIFIER DLL)
if(WINDOWS_ARM64)
set(FTD3XX_WINDOWS_PATH_SPECIFIER Dynamic)
endif()
else()
set(FTD3XX_WINDOWS_PATH_SPECIFIER Static_Lib)
if(WINDOWS_ARM64)
set(FTD3XX_WINDOWS_PATH_SPECIFIER Static)
endif()
endif()
set(FTD3XX_PRE_WINDOWS_PATH ${FTD3XX_PATH_WINDOWS_ARCH}/${FTD3XX_WINDOWS_PATH_SPECIFIER})
if(WINDOWS_ARM64)
set(FTD3XX_PRE_WINDOWS_PATH ${FTD3XX_WINDOWS_PATH_SPECIFIER}/${FTD3XX_PATH_WINDOWS_ARCH})
endif()
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
set(FTD3XX_BUILD_COMMAND ${SETUP_SCRIPTS_DIR}/macos_setup_ftd3xx.sh)
set(FTD3XX_BUILD_COMMAND ${SETUP_SCRIPTS_DIR}/macos_setup_ftd3xx)
set(FTD3XX_URL_TIME 2023/03)
set(FTD3XX_VER 1.0.5)
set(FTD3XX_VOL d3xx-osx.${FTD3XX_VER})
@ -104,7 +125,7 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
set(FTD3XX_MOUNTED_FOLDER /Volumes/${FTD3XX_VOL})
set(FTD3XX_SUBFOLDER macos)
else()
set(FTD3XX_BUILD_COMMAND ${SETUP_SCRIPTS_DIR}/linux_setup_ftd3xx.sh)
set(FTD3XX_BUILD_COMMAND ${SETUP_SCRIPTS_DIR}/linux_setup_ftd3xx)
set(FTD3XX_URL_TIME 2023/03)
set(FTD3XX_VER 1.0.5)
if((${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch") OR (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm"))
@ -127,7 +148,7 @@ endif()
set(FTD2XX_BASE_URL https://ftdichip.com/wp-content/uploads/)
if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
set(FTD2XX_BUILD_COMMAND ${SETUP_SCRIPTS_DIR}/windows_setup_ftd2xx.bat)
set(FTD2XX_BUILD_COMMAND ${SETUP_SCRIPTS_DIR}/windows_setup_ftd2xx)
set(FTD2XX_URL_TIME 2023/09)
set(FTD2XX_VER 2.12.36.4-WHQL-Certified)
set(FTD2XX_VOL CDM-v${FTD2XX_VER})
@ -135,14 +156,18 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
set(FTD2XX_SUBFOLDER win)
set(FTD2XX_HEADER_PATH ftd2xx.h)
if(${WINDOWS_FTD2XX_USE_SHARED_LIB})
set(FTD2XX_BUILD_COMMAND ${FTD3XX_BUILD_COMMAND}_dll)
set(FTD2XX_WINDOWS_PATH_SPECIFIER "")
if(WINDOWS_ARM64)
set(FTD2XX_WINDOWS_PATH_SPECIFIER Release)
set(FTD2XX_LIB FTD2XX.dll)
set(FTD2XX_LIB FTD2XX.lib)
set(FTD2XX_DLL FTD2XX.dll)
elseif("${CMAKE_SIZEOF_VOID_P}" STREQUAL "4")
set(FTD2XX_LIB ftd2xx.dll)
set(FTD2XX_LIB ftd2xx.lib)
set(FTD2XX_DLL ftd2xx.dll)
else()
set(FTD2XX_LIB ftd2xx64.dll)
set(FTD2XX_LIB ftd2xx.lib)
set(FTD2XX_DLL ftd2xx64.lib)
endif()
else()
set(FTD2XX_WINDOWS_PATH_SPECIFIER Static)
@ -169,7 +194,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
set(FTD2XX_PRE_WINDOWS_PATH ${FTD2XX_PATH_WINDOWS_ARCH}/${FTD2XX_WINDOWS_PATH_SPECIFIER})
endif()
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
set(FTD2XX_BUILD_COMMAND ${SETUP_SCRIPTS_DIR}/macos_setup_ftd2xx.sh)
set(FTD2XX_BUILD_COMMAND ${SETUP_SCRIPTS_DIR}/macos_setup_ftd2xx)
set(FTD2XX_URL_TIME 2024/04)
set(FTD2XX_VER 1.4.30)
set(FTD2XX_VOL D2XX${FTD2XX_VER})
@ -178,7 +203,7 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
set(FTD2XX_MOUNTED_FOLDER /Volumes/dmg)
set(FTD2XX_SUBFOLDER macos)
else()
set(FTD2XX_BUILD_COMMAND ${SETUP_SCRIPTS_DIR}/linux_setup_ftd3xx.sh)
set(FTD2XX_BUILD_COMMAND ${SETUP_SCRIPTS_DIR}/linux_setup_ftd3xx)
set(FTD2XX_URL_TIME 2022/07)
set(FTD2XX_VER 1.4.27)
if((${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch") OR (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm"))
@ -236,57 +261,37 @@ file(MAKE_DIRECTORY ${ftd2xx_BINARY_DIR}/macos)
file(MAKE_DIRECTORY ${ftd2xx_BINARY_DIR}/linux)
if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
ExternalProject_Add(FTD3XX_BUILD_PROJECT
SOURCE_DIR ${ftd3xx_SOURCE_DIR}
BINARY_DIR ${ftd3xx_BINARY_DIR}
BUILD_COMMAND ${FTD3XX_BUILD_COMMAND} ${ftd3xx_SOURCE_DIR}/${FTD3XX_ARCHIVE} ${FTD3XX_MOUNTED_FOLDER} ${ftd3xx_BINARY_DIR}/${FTD3XX_SUBFOLDER} ${FTD3XX_LIB}
UPDATE_COMMAND ""
CONFIGURE_COMMAND ""
INSTALL_COMMAND ""
)
ExternalProject_Add(FTD2XX_BUILD_PROJECT
SOURCE_DIR ${ftd2xx_SOURCE_DIR}
BINARY_DIR ${ftd2xx_BINARY_DIR}
BUILD_COMMAND ${FTD2XX_BUILD_COMMAND} ${ftd2xx_SOURCE_DIR}/${FTD2XX_ARCHIVE} ${FTD2XX_MOUNTED_FOLDER} ${ftd2xx_BINARY_DIR}/${FTD2XX_SUBFOLDER} ${FTD2XX_LIB}
UPDATE_COMMAND ""
CONFIGURE_COMMAND ""
INSTALL_COMMAND ""
)
set(FTD3XX_BUILD_COMMAND_PARAMETERS ${ftd3xx_SOURCE_DIR}/${FTD3XX_ARCHIVE} ${FTD3XX_MOUNTED_FOLDER} ${ftd3xx_BINARY_DIR}/${FTD3XX_SUBFOLDER} ${FTD3XX_LIB})
set(FTD2XX_BUILD_COMMAND_PARAMETERS ${ftd2xx_SOURCE_DIR}/${FTD2XX_ARCHIVE} ${FTD2XX_MOUNTED_FOLDER} ${ftd2xx_BINARY_DIR}/${FTD2XX_SUBFOLDER} ${FTD2XX_LIB})
elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
ExternalProject_Add(FTD3XX_BUILD_PROJECT
SOURCE_DIR ${ftd3xx_SOURCE_DIR}
BINARY_DIR ${ftd3xx_BINARY_DIR}
BUILD_COMMAND ${FTD3XX_BUILD_COMMAND} ${ftd3xx_SOURCE_DIR} ${ftd3xx_BINARY_DIR}/${FTD3XX_SUBFOLDER} ${FTD3XX_PRE_WINDOWS_PATH}/${FTD3XX_LIB}
UPDATE_COMMAND ""
CONFIGURE_COMMAND ""
INSTALL_COMMAND ""
)
ExternalProject_Add(FTD2XX_BUILD_PROJECT
SOURCE_DIR ${ftd2xx_SOURCE_DIR}
BINARY_DIR ${ftd2xx_BINARY_DIR}
BUILD_COMMAND ${FTD2XX_BUILD_COMMAND} ${ftd2xx_SOURCE_DIR} ${ftd2xx_BINARY_DIR}/${FTD2XX_SUBFOLDER} ${FTD2XX_PRE_WINDOWS_PATH}/${FTD2XX_LIB} ${FTD2XX_HEADER_PATH}
UPDATE_COMMAND ""
CONFIGURE_COMMAND ""
INSTALL_COMMAND ""
)
else()
ExternalProject_Add(FTD3XX_BUILD_PROJECT
SOURCE_DIR ${ftd3xx_SOURCE_DIR}
BINARY_DIR ${ftd3xx_BINARY_DIR}
BUILD_COMMAND ${FTD3XX_BUILD_COMMAND} ${ftd3xx_SOURCE_DIR} ${ftd3xx_BINARY_DIR}/${FTD3XX_SUBFOLDER} ${FTD3XX_LIB}
UPDATE_COMMAND ""
CONFIGURE_COMMAND ""
INSTALL_COMMAND ""
)
ExternalProject_Add(FTD2XX_BUILD_PROJECT
SOURCE_DIR ${ftd2xx_SOURCE_DIR}
BINARY_DIR ${ftd2xx_BINARY_DIR}
BUILD_COMMAND ${FTD2XX_BUILD_COMMAND} ${ftd2xx_SOURCE_DIR} ${ftd2xx_BINARY_DIR}/${FTD2XX_SUBFOLDER} build/${FTD2XX_LIB}
UPDATE_COMMAND ""
CONFIGURE_COMMAND ""
INSTALL_COMMAND ""
)
set(FTD3XX_BUILD_COMMAND_PARAMETERS ${ftd3xx_SOURCE_DIR} ${ftd3xx_BINARY_DIR}/${FTD3XX_SUBFOLDER} ${FTD3XX_PRE_WINDOWS_PATH}/${FTD3XX_LIB})
if(WINDOWS_FTD3XX_USE_SHARED_LIB)
set(FTD3XX_BUILD_COMMAND_PARAMETERS ${FTD3XX_BUILD_COMMAND_PARAMETERS} ${FTD3XX_PRE_WINDOWS_PATH}/${FTD3XX_DLL})
endif()
set(FTD2XX_BUILD_COMMAND_PARAMETERS ${ftd2xx_SOURCE_DIR} ${ftd2xx_BINARY_DIR}/${FTD2XX_SUBFOLDER} ${FTD2XX_PRE_WINDOWS_PATH}/${FTD2XX_LIB} ${FTD2XX_HEADER_PATH})
if(WINDOWS_FTD2XX_USE_SHARED_LIB)
set(FTD2XX_BUILD_COMMAND_PARAMETERS ${FTD2XX_BUILD_COMMAND_PARAMETERS} ${FTD2XX_PRE_WINDOWS_PATH}/${FTD2XX_DLL})
endif()
else()
set(FTD3XX_BUILD_COMMAND_PARAMETERS ${ftd3xx_SOURCE_DIR} ${ftd3xx_BINARY_DIR}/${FTD3XX_SUBFOLDER} ${FTD3XX_LIB})
set(FTD2XX_BUILD_COMMAND_PARAMETERS ${ftd2xx_SOURCE_DIR} ${ftd2xx_BINARY_DIR}/${FTD2XX_SUBFOLDER} build/${FTD2XX_LIB})
endif()
ExternalProject_Add(FTD3XX_BUILD_PROJECT
SOURCE_DIR ${ftd3xx_SOURCE_DIR}
BINARY_DIR ${ftd3xx_BINARY_DIR}
BUILD_COMMAND ${FTD3XX_BUILD_COMMAND}${SCRIPT_EXTENSION} ${FTD3XX_BUILD_COMMAND_PARAMETERS}
UPDATE_COMMAND ""
CONFIGURE_COMMAND ""
INSTALL_COMMAND ""
)
ExternalProject_Add(FTD2XX_BUILD_PROJECT
SOURCE_DIR ${ftd2xx_SOURCE_DIR}
BINARY_DIR ${ftd2xx_BINARY_DIR}
BUILD_COMMAND ${FTD2XX_BUILD_COMMAND}${SCRIPT_EXTENSION} ${FTD2XX_BUILD_COMMAND_PARAMETERS}
UPDATE_COMMAND ""
CONFIGURE_COMMAND ""
INSTALL_COMMAND ""
)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
@ -312,8 +317,8 @@ target_compile_options(${OUTPUT_NAME} PRIVATE ${EXTRA_CXX_FLAGS})
add_custom_command(
OUTPUT ${TOOLS_DATA_DIR}/font_ttf.cpp
COMMENT "Convert font to binary"
COMMAND ${TOOLS_DATA_DIR}/CMakeBin2C${FINAL_EXTENSION} ${CMAKE_SOURCE_DIR}/data/font.ttf ${TOOLS_DATA_DIR} font_ttf font_ttf
DEPENDS ${CMAKE_SOURCE_DIR}/data/font.ttf ${TOOLS_DATA_DIR}/CMakeBin2C${FINAL_EXTENSION}
COMMAND ${TOOLS_DATA_DIR}/CMakeBin2C${HOST_FINAL_EXTENSION} ${CMAKE_SOURCE_DIR}/data/font.ttf ${TOOLS_DATA_DIR} font_ttf font_ttf
DEPENDS ${CMAKE_SOURCE_DIR}/data/font.ttf ${TOOLS_DATA_DIR}/CMakeBin2C${HOST_FINAL_EXTENSION}
)
if(WIN32)
@ -332,6 +337,22 @@ if(WIN32)
VERBATIM
)
endif()
if(WINDOWS_FTD3XX_USE_SHARED_LIB)
add_custom_command(
TARGET ${OUTPUT_NAME}
COMMENT "Copy FTD3XX DLL"
POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${ftd3xx_BINARY_DIR}/${FTD3XX_SUBFOLDER}/${FTD3XX_DLL} ${CMAKE_SOURCE_DIR}
VERBATIM
)
endif()
if(WINDOWS_FTD2XX_USE_SHARED_LIB)
add_custom_command(
TARGET ${OUTPUT_NAME}
COMMENT "Copy FTD2XX DLL"
POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${ftd2xx_BINARY_DIR}/${FTD2XX_SUBFOLDER}/${FTD2XX_DLL} ${CMAKE_SOURCE_DIR}
VERBATIM
)
endif()
endif()
add_custom_command(
@ -350,6 +371,12 @@ install(FILES LICENSE README.md DESTINATION .)
install(DIRECTORY "other licenses" DESTINATION .)
if(WIN32)
install(FILES openal32.dll DESTINATION .)
if(WINDOWS_FTD3XX_USE_SHARED_LIB)
install(FILES ${FTD3XX_DLL} DESTINATION .)
endif()
if(WINDOWS_FTD2XX_USE_SHARED_LIB)
install(FILES ${FTD2XX_DLL} DESTINATION .)
endif()
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
@ -365,7 +392,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
add_custom_command(
TARGET ${OUTPUT_NAME}
COMMENT "Prepare bundle"
POST_BUILD COMMAND ${SETUP_SCRIPTS_DIR}/macos_bundle_setup.sh ${FW_APP}/Contents/MacOS/${OUTPUT_NAME} ${FW_DIRS} ${FW_APP}/Contents/Frameworks
POST_BUILD COMMAND ${SETUP_SCRIPTS_DIR}/macos_bundle_setup${SCRIPT_EXTENSION} ${FW_APP}/Contents/MacOS/${OUTPUT_NAME} ${FW_DIRS} ${FW_APP}/Contents/Frameworks
VERBATIM
)

View File

@ -0,0 +1,2 @@
cp ${1}/${3} ${2}
cp ${1}/${4} ${2}/ftd2xx.h

View File

@ -0,0 +1,13 @@
set "a=%~1"
set "b=%~2"
set "c=%~3"
set "d=%~4"
set "e=%~5"
set "a=%a:/=\%"
set "b=%b:/=\%"
set "c=%c:/=\%"
set "d=%d:/=\%"
set "e=%e:/=\%"
copy %a%\%c% %b%\
copy %a%\%e% %b%\
copy %a%\%d% %b%\ftd2xx.h

View File

@ -0,0 +1,3 @@
cp ${1}/${3} ${2}
cp ${1}/${5} ${2}
cp ${1}/${4} ${2}/ftd2xx.h

View File

@ -0,0 +1,2 @@
cp ${1}/${3} ${2}
cp ${1}/FTD3XX.h ${2}/ftd3xx.h

View File

@ -0,0 +1,11 @@
set "a=%~1"
set "b=%~2"
set "c=%~3"
set "d=%~4"
set "a=%a:/=\%"
set "b=%b:/=\%"
set "c=%c:/=\%"
set "d=%d:/=\%"
copy %a%\%c% %b%\
copy %a%\%d% %b%\
copy %a%\FTD3XX.h %b%\ftd3xx.h

View File

@ -0,0 +1,3 @@
cp ${1}/${3} ${2}
cp ${1}/${4} ${2}
cp ${1}/FTD3XX.h ${2}/ftd3xx.h

View File

@ -0,0 +1,3 @@
unzip ${1}/WU_FTD3XXLib.zip
cp ${1}/WU_FTD3XXLib/Lib/${3} ${2}
cp ${1}/WU_FTD3XXLib/Lib/*.h ${2}

View File

@ -0,0 +1,12 @@
set "a=%~1"
set "b=%~2"
set "c=%~3"
set "d=%~4"
set "a=%a:/=\%"
set "b=%b:/=\%"
set "c=%c:/=\%"
set "d=%d:/=\%"
unzip %a%\WU_FTD3XXLib.zip -d %a%
copy %a%\WU_FTD3XXLib\Lib\%c% %b%\
copy %a%\WU_FTD3XXLib\Lib\%d% %b%\
copy %a%\WU_FTD3XXLib\Lib\FTD3XX.h %b%\ftd3xx.h

View File

@ -0,0 +1,4 @@
unzip ${1}/WU_FTD3XXLib.zip
cp ${1}/WU_FTD3XXLib/Lib/${3} ${2}
cp ${1}/WU_FTD3XXLib/Lib/${4} ${2}
cp ${1}/WU_FTD3XXLib/Lib/*.h ${2}

View File

@ -0,0 +1,24 @@
# the name of the target operating system
SET(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSTEM_PROCESSOR x86)
# which C and C++ compiler to use
set(CMAKE_C_COMPILER "/usr/bin/i686-w64-mingw32-gcc-posix" "-static-libstdc++" "-static-libgcc")
set(CMAKE_CXX_COMPILER "/usr/bin/i686-w64-mingw32-g++-posix" "-static-libstdc++" "-static-libgcc")
# here is the target environment located
#SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32)
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
# This doesn't work on Ubuntu 22.04 due to libkernel32.dll being too old. It does work on 24.01.
# For some reason, in windows 32 bit builds, ftd3xx requires some missing
# unspecified symbols. For that reason, we link dynamically with it
set(FORCE_WINDOWS_FTD3XX_SHARED_LIB ON)
# Link with libpthread
set(MINGW_CROSS_COMPILATION ON)

View File

@ -0,0 +1,20 @@
# the name of the target operating system
SET(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSTEM_PROCESSOR x86_64)
# which C and C++ compiler to use
set(CMAKE_C_COMPILER "/usr/bin/x86_64-w64-mingw32-gcc-posix" "-static-libstdc++" "-static-libgcc")
set(CMAKE_CXX_COMPILER "/usr/bin/x86_64-w64-mingw32-g++-posix" "-static-libstdc++" "-static-libgcc")
# here is the target environment located
#SET(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32)
# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search
# programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
# Link with libpthread
set(MINGW_CROSS_COMPILATION ON)