From 17dddfef201b88228840c5b17ca947d8f7b6779d Mon Sep 17 00:00:00 2001 From: Lorenzooone Date: Sat, 27 Apr 2024 00:12:03 +0200 Subject: [PATCH] Switch cmake system for Windows as well --- CMakeLists.txt | 58 ++++++++++++++++------------------------ linux_setup_ftd3xx.sh | 1 - macos_setup_ftd3xx.sh | 1 - windows_setup_ftd3xx.bat | 2 ++ 4 files changed, 25 insertions(+), 37 deletions(-) mode change 100644 => 100755 macos_setup_ftd3xx.sh create mode 100755 windows_setup_ftd3xx.bat diff --git a/CMakeLists.txt b/CMakeLists.txt index a4d5919..ebd2cc8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,18 +23,23 @@ FetchContent_Declare(SFML set(FTD3XX_BASE_URL https://ftdichip.com/wp-content/uploads/) if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") - set(FTD3XX_BUILD_COMMAND ) + set(FTD3XX_BUILD_COMMAND ${CMAKE_SOURCE_DIR}/windows_setup_ftd3xx.bat) 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_LIB libftd3xx.lib) - set(FTD3XX_DLL FTD3XX.dll) set(FTD3XX_SUBFOLDER win) if(${WINDOWS_FTD3XX_USE_SHARED_LIB}) set(WINDOWS_PATH_SPECIFIER DLL) + set(FTD3XX_LIB FTD3XX.dll) else() set(WINDOWS_PATH_SPECIFIER Static_Lib) + set(FTD3XX_LIB FTD3XX.lib) + endif() + if(WIN32) + set(PATH_WINDOWS_ARCH Win32) + else () + set(PATH_WINDOWS_ARCH x64) endif() elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") set(FTD3XX_BUILD_COMMAND ${CMAKE_SOURCE_DIR}/macos_setup_ftd3xx.sh) @@ -69,8 +74,11 @@ endif() set(ftd3xx_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/ftd3xx-src) set(ftd3xx_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/ftd3xx-build) +file(MAKE_DIRECTORY ${ftd3xx_BINARY_DIR}/win) +file(MAKE_DIRECTORY ${ftd3xx_BINARY_DIR}/macos) +file(MAKE_DIRECTORY ${ftd3xx_BINARY_DIR}/linux) if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") -FetchContent_Declare(FTD3XX +ExternalProject_Add(FTD3XX URL ${FTD3XX_BASE_URL}${FTD3XX_URL_TIME}/${FTD3XX_ARCHIVE} DOWNLOAD_NO_EXTRACT TRUE SOURCE_DIR ${ftd3xx_SOURCE_DIR} @@ -80,6 +88,16 @@ FetchContent_Declare(FTD3XX CONFIGURE_COMMAND "" INSTALL_COMMAND "" ) +elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") +ExternalProject_Add(FTD3XX + URL ${FTD3XX_BASE_URL}${FTD3XX_URL_TIME}/${FTD3XX_ARCHIVE} + SOURCE_DIR ${ftd3xx_SOURCE_DIR} + BINARY_DIR ${ftd3xx_BINARY_DIR} + BUILD_COMMAND ${FTD3XX_BUILD_COMMAND} ${ftd3xx_SOURCE_DIR} ${ftd3xx_BINARY_DIR}/${FTD3XX_SUBFOLDER} ${PATH_WINDOWS_ARCH}/${WINDOWS_PATH_SPECIFIER}/${FTD3XX_LIB} + UPDATE_COMMAND "" + CONFIGURE_COMMAND "" + INSTALL_COMMAND "" +) else() ExternalProject_Add(FTD3XX URL ${FTD3XX_BASE_URL}${FTD3XX_URL_TIME}/${FTD3XX_ARCHIVE} @@ -104,14 +122,9 @@ file(MAKE_DIRECTORY ${TOOLS_DATA_DIR}) set(OUTPUT_NAME cc3dsfs) -add_custom_target(CMakeFTD3XX) add_custom_target(CMakeBin2C) add_executable(${OUTPUT_NAME} source/cc3dsfs.cpp source/utils.cpp source/audio_data.cpp source/audio.cpp source/frontend.cpp source/TextRectangle.cpp source/WindowScreen.cpp source/3dscapture.cpp source/conversions.cpp ${TOOLS_DATA_DIR}/font_ttf.cpp) -if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") -target_link_libraries(${OUTPUT_NAME} PRIVATE sfml-graphics sfml-audio sfml-window sfml-system FTD3XX) -else() -target_link_libraries(${OUTPUT_NAME} PRIVATE sfml-graphics sfml-audio sfml-window sfml-system ftd3xx-static) -endif() +target_link_libraries(${OUTPUT_NAME} PRIVATE sfml-graphics sfml-audio sfml-window sfml-system ${ftd3xx_BINARY_DIR}/${FTD3XX_SUBFOLDER}/${FTD3XX_LIB}) target_link_directories(${OUTPUT_NAME} PRIVATE ${ftd3xx_BINARY_DIR}/${FTD3XX_SUBFOLDER}) target_include_directories(${OUTPUT_NAME} PRIVATE ${ftd3xx_BINARY_DIR}/${FTD3XX_SUBFOLDER} ${TOOLS_DATA_DIR} ${CMAKE_SOURCE_DIR}/include) target_compile_features(${OUTPUT_NAME} PRIVATE cxx_std_17) @@ -130,31 +143,6 @@ add_custom_command( DEPENDS ${CMAKE_SOURCE_DIR}/data/font.ttf CMakeBin2C ) -if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") - add_custom_command( - TARGET CMakeFTD3XX - COMMENT "Copy FTD3XX header" - PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${ftd3xx_SOURCE_DIR}/FTD3XX.h ${ftd3xx_BINARY_DIR}/${FTD3XX_SUBFOLDER} - ) - if(WIN32) - set(PATH_WINDOWS_ARCH Win32) - else () - set(PATH_WINDOWS_ARCH x64) - endif() - add_custom_command( - TARGET CMakeFTD3XX - COMMENT "Copy FTD3XX lib file" - PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${ftd3xx_SOURCE_DIR}/${PATH_WINDOWS_ARCH}/${WINDOWS_PATH_SPECIFIER}/FTD3XX.lib ${ftd3xx_BINARY_DIR}/${FTD3XX_SUBFOLDER} - ) - if(${WINDOWS_FTD3XX_USE_SHARED_LIB}) - add_custom_command( - TARGET CMakeFTD3XX - COMMENT "Copy FTD3XX lib file" - PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${ftd3xx_SOURCE_DIR}/${PATH_WINDOWS_ARCH}/${WINDOWS_PATH_SPECIFIER}/FTD3XX.dll ${ftd3xx_BINARY_DIR}/${FTD3XX_SUBFOLDER} - ) - endif() -endif() - if(WIN32) add_custom_command( TARGET ${OUTPUT_NAME} diff --git a/linux_setup_ftd3xx.sh b/linux_setup_ftd3xx.sh index fbed16f..7265f12 100755 --- a/linux_setup_ftd3xx.sh +++ b/linux_setup_ftd3xx.sh @@ -1,3 +1,2 @@ -mkdir -p ${2} cp ${1}/${3} ${2} cp ${1}/*.h ${2} diff --git a/macos_setup_ftd3xx.sh b/macos_setup_ftd3xx.sh old mode 100644 new mode 100755 index 4edee1f..377cd51 --- a/macos_setup_ftd3xx.sh +++ b/macos_setup_ftd3xx.sh @@ -4,7 +4,6 @@ SRC_FOLDER := /Volumes/${VOL} TAR := ${VOL}.dmg hdiutil attach ${1} -mkdir -p ${3} cp ${2}/${4} ${3} cp ${2}/*.h ${3} hdiutil detach ${3} diff --git a/windows_setup_ftd3xx.bat b/windows_setup_ftd3xx.bat new file mode 100755 index 0000000..7c52ae3 --- /dev/null +++ b/windows_setup_ftd3xx.bat @@ -0,0 +1,2 @@ +cp %1/%3 %2 +cp %1/FTD3XX.h %2