From 01d45d63edcbce5866e148e13aef6529f85a23d2 Mon Sep 17 00:00:00 2001 From: Lorenzooone Date: Wed, 28 May 2025 15:31:43 +0200 Subject: [PATCH] Simplify cmakelist --- CMakeLists.txt | 92 ++++++++++++-------------------------------------- 1 file changed, 22 insertions(+), 70 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 00a1a40..387e47b 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,14 @@ if(${CMAKE_PARALLEL_MSVC}) set(CMAKE_CXX_FLAGS_INIT "${CMAKE_CXX_FLAGS_INIT} /MP") endif() +macro(add_compile_flag compile_flag) + if(MSVC) + list(APPEND EXTRA_CXX_FLAGS "/D${compile_flag}") + else() + list(APPEND EXTRA_CXX_FLAGS "-D${compile_flag}") + endif() +endmacro() + set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) set(TARGET_LANGUAGES CXX C) project(cc3dsfs VERSION 1.0.0 LANGUAGES ${TARGET_LANGUAGES}) @@ -86,11 +94,7 @@ set(SCRIPT_EXTENSION "") if (RASPBERRY_PI_COMPILATION) list(APPEND EXTRA_LIBRARIES gpiod) - if(MSVC) - list(APPEND EXTRA_CXX_FLAGS "/DRASPI 1") - else() - list(APPEND EXTRA_CXX_FLAGS "-DRASPI 1") - endif() + add_compile_flag("RASPI 1") endif() if((${CMAKE_SYSTEM_NAME} STREQUAL "Windows") AND ((${CMAKE_GENERATOR_PLATFORM} MATCHES "ARM64") OR (("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "") AND (${CMAKE_SYSTEM_PROCESSOR} MATCHES "ARM64")))) @@ -140,11 +144,7 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Android") else() if(NOT ${SFML_USE_DRM}) - if(MSVC) - list(APPEND EXTRA_CXX_FLAGS "/DXLIB_BASED 1") - else() - list(APPEND EXTRA_CXX_FLAGS "-DXLIB_BASED 1") - endif() + add_compile_flag("XLIB_BASED 1") endif() endif() @@ -338,99 +338,55 @@ set(SOURCE_CPP_CYPRESS_NISETRO_DEVICES_FILES_BASE_PATH "${SOURCE_CPP_DEVICE_FILE set(SOURCE_CPP_CYPRESS_OPTIMIZE_3DS_FILES_BASE_PATH "${SOURCE_CPP_DEVICE_FILES_BASE_PATH}/Optimize_3DS") if(N3DSXL_LOOPY_SUPPORT) list(APPEND SOURCE_CPP_EXTRA_FILES ${SOURCE_CPP_FTD3_FILES_BASE_PATH}/3dscapture_ftd3_shared.cpp ${SOURCE_CPP_FTD3_FILES_BASE_PATH}/3dscapture_ftd3_compatibility.cpp) - if(MSVC) - list(APPEND EXTRA_CXX_FLAGS "/DUSE_FTD3") - else() - list(APPEND EXTRA_CXX_FLAGS "-DUSE_FTD3") - endif() + add_compile_flag("USE_FTD3") endif() if(USE_FTD3XX_FOR_N3DSXL_LOOPY) list(APPEND SOURCE_CPP_EXTRA_FILES ${SOURCE_CPP_FTD3_FILES_BASE_PATH}/3dscapture_ftd3_driver_comms.cpp ${SOURCE_CPP_FTD3_FILES_BASE_PATH}/3dscapture_ftd3_driver_acquisition.cpp) list(APPEND FETCH_CONTENT_MAKE_AVAILABLE_LIBRARIES FTD3XX) list(APPEND EXTRA_DEPENDENCIES FTD3XX_BUILD_PROJECT) - if(MSVC) - list(APPEND EXTRA_CXX_FLAGS "/DUSE_FTD3XX") - else() - list(APPEND EXTRA_CXX_FLAGS "-DUSE_FTD3XX") - endif() + add_compile_flag("USE_FTD3XX") endif() if(USE_LIBUSB_FOR_N3DSXL_LOOPY) list(APPEND SOURCE_CPP_EXTRA_FILES ${SOURCE_CPP_FTD3_FILES_BASE_PATH}/3dscapture_ftd3_libusb_comms.cpp ${SOURCE_CPP_FTD3_FILES_BASE_PATH}/3dscapture_ftd3_libusb_acquisition.cpp) - if(MSVC) - list(APPEND EXTRA_CXX_FLAGS "/DUSE_FTD3_LIBUSB") - else() - list(APPEND EXTRA_CXX_FLAGS "-DUSE_FTD3_LIBUSB") - endif() + add_compile_flag("USE_FTD3_LIBUSB") endif() if(USE_LIBUSB_SUPPORT) list(APPEND FETCH_CONTENT_MAKE_AVAILABLE_LIBRARIES LibUSB) list(APPEND SOURCE_CPP_EXTRA_FILES ${SOURCE_CPP_DEVICE_FILES_BASE_PATH}/usb_generic.cpp) - if(MSVC) - list(APPEND EXTRA_CXX_FLAGS "/DUSE_LIBUSB") - else() - list(APPEND EXTRA_CXX_FLAGS "-DUSE_LIBUSB") - endif() + add_compile_flag("USE_LIBUSB") endif() if(IS_DEVICES_SUPPORT) list(APPEND SOURCE_CPP_EXTRA_FILES ${SOURCE_CPP_IS_DEVICES_FILES_BASE_PATH}/usb_is_device_communications.cpp ${SOURCE_CPP_IS_DEVICES_FILES_BASE_PATH}/usb_is_device_acquisition.cpp ${SOURCE_CPP_IS_DEVICES_FILES_BASE_PATH}/usb_is_nitro_acquisition_capture.cpp ${SOURCE_CPP_IS_DEVICES_FILES_BASE_PATH}/usb_is_twl_acquisition_capture.cpp ${SOURCE_CPP_IS_DEVICES_FILES_BASE_PATH}/usb_is_nitro_acquisition_emulator.cpp ${SOURCE_CPP_IS_DEVICES_FILES_BASE_PATH}/usb_is_device_is_driver.cpp ${SOURCE_CPP_IS_DEVICES_FILES_BASE_PATH}/usb_is_device_libusb.cpp ${TOOLS_DATA_DIR}/is_twl_cap_crc32_table.cpp ${TOOLS_DATA_DIR}/is_twl_cap_init_seed_table.cpp) - if(MSVC) - list(APPEND EXTRA_CXX_FLAGS "/DUSE_IS_DEVICES_USB") - else() - list(APPEND EXTRA_CXX_FLAGS "-DUSE_IS_DEVICES_USB") - endif() + add_compile_flag("USE_IS_DEVICES_USB") endif() if(OLD_DS_3DS_LOOPY_SUPPORT) list(APPEND SOURCE_CPP_EXTRA_FILES ${SOURCE_CPP_DEVICE_FILES_BASE_PATH}/usb_ds_3ds_capture.cpp) - if(MSVC) - list(APPEND EXTRA_CXX_FLAGS "/DUSE_DS_3DS_USB") - else() - list(APPEND EXTRA_CXX_FLAGS "-DUSE_DS_3DS_USB") - endif() + add_compile_flag("USE_DS_3DS_USB") endif() if(USE_CYPRESS_USB_SUPPORT) list(APPEND SOURCE_CPP_EXTRA_FILES ${SOURCE_CPP_CYPRESS_USB_FILES_BASE_PATH}/cypress_shared_driver_comms.cpp ${SOURCE_CPP_CYPRESS_USB_FILES_BASE_PATH}/cypress_shared_libusb_comms.cpp ${SOURCE_CPP_CYPRESS_USB_FILES_BASE_PATH}/cypress_shared_communications.cpp) endif() if(CYPRESS_NISETRO_SUPPORT) list(APPEND SOURCE_CPP_EXTRA_FILES ${SOURCE_CPP_CYPRESS_NISETRO_DEVICES_FILES_BASE_PATH}/cypress_nisetro_communications.cpp ${SOURCE_CPP_CYPRESS_NISETRO_DEVICES_FILES_BASE_PATH}/cypress_nisetro_acquisition.cpp ${TOOLS_DATA_DIR}/nisetro_ds_fw.cpp) - if(MSVC) - list(APPEND EXTRA_CXX_FLAGS "/DUSE_CYNI_USB") - else() - list(APPEND EXTRA_CXX_FLAGS "-DUSE_CYNI_USB") - endif() + add_compile_flag("USE_CYNI_USB") endif() if(OPTIMIZE_3DS_SUPPORT) list(APPEND SOURCE_CPP_EXTRA_FILES ${SOURCE_CPP_CYPRESS_OPTIMIZE_3DS_FILES_BASE_PATH}/cypress_optimize_3ds_communications.cpp ${SOURCE_CPP_CYPRESS_OPTIMIZE_3DS_FILES_BASE_PATH}/cypress_optimize_3ds_acquisition.cpp ${TOOLS_DATA_DIR}/optimize_new_3ds_fw.cpp ${TOOLS_DATA_DIR}/optimize_new_3ds_565_fpga_pl.cpp ${TOOLS_DATA_DIR}/optimize_new_3ds_888_fpga_pl.cpp ${TOOLS_DATA_DIR}/optimize_old_3ds_fw.cpp ${TOOLS_DATA_DIR}/optimize_old_3ds_565_fpga_pl.cpp ${TOOLS_DATA_DIR}/optimize_old_3ds_888_fpga_pl.cpp) - if(MSVC) - list(APPEND EXTRA_CXX_FLAGS "/DUSE_CYPRESS_OPTIMIZE") - else() - list(APPEND EXTRA_CXX_FLAGS "-DUSE_CYPRESS_OPTIMIZE") - endif() + add_compile_flag("USE_CYPRESS_OPTIMIZE") endif() if(NEW_DS_LOOPY_SUPPORT) list(APPEND SOURCE_CPP_EXTRA_FILES ${SOURCE_CPP_FTD2_FILES_BASE_PATH}/dscapture_ftd2_shared.cpp ${SOURCE_CPP_FTD2_FILES_BASE_PATH}/dscapture_ftd2_compatibility.cpp ${TOOLS_DATA_DIR}/ftd2_ds2_fw_1.cpp ${TOOLS_DATA_DIR}/ftd2_ds2_fw_2.cpp) - if(MSVC) - list(APPEND EXTRA_CXX_FLAGS "/DUSE_FTD2") - else() - list(APPEND EXTRA_CXX_FLAGS "-DUSE_FTD2") - endif() + add_compile_flag("USE_FTD2") endif() if(USE_LIBUSB_FOR_NEW_DS_LOOPY) list(APPEND SOURCE_CPP_EXTRA_FILES ${SOURCE_CPP_FTD2_FILES_BASE_PATH}/dscapture_ftd2_libusb_comms.cpp ${SOURCE_CPP_FTD2_FILES_BASE_PATH}/dscapture_ftd2_libusb_acquisition.cpp) - if(MSVC) - list(APPEND EXTRA_CXX_FLAGS "/DUSE_FTD2_LIBUSB") - else() - list(APPEND EXTRA_CXX_FLAGS "-DUSE_FTD2_LIBUSB") - endif() + add_compile_flag("USE_FTD2_LIBUSB") endif() if(USE_FTD2XX_FOR_NEW_DS_LOOPY) list(APPEND FETCH_CONTENT_MAKE_AVAILABLE_LIBRARIES FTD2XX) list(APPEND SOURCE_CPP_EXTRA_FILES ${SOURCE_CPP_FTD2_FILES_BASE_PATH}/dscapture_ftd2_driver_comms.cpp ${SOURCE_CPP_FTD2_FILES_BASE_PATH}/dscapture_ftd2_driver_acquisition.cpp) list(APPEND EXTRA_DEPENDENCIES FTD2XX_BUILD_PROJECT) - if(MSVC) - list(APPEND EXTRA_CXX_FLAGS "/DUSE_FTD2_DRIVER") - else() - list(APPEND EXTRA_CXX_FLAGS "-DUSE_FTD2_DRIVER") - endif() + add_compile_flag("USE_FTD2_DRIVER") endif() if(NOT (${CMAKE_SYSTEM_NAME} STREQUAL "Android")) @@ -566,11 +522,7 @@ endif() set(EXECUTABLE_SOURCE_FILES source/cc3dsfs.cpp source/utils.cpp source/audio_data.cpp source/audio.cpp source/frontend.cpp source/TextRectangle.cpp source/TextRectanglePool.cpp source/WindowScreen.cpp source/WindowScreen_Menu.cpp source/devicecapture.cpp source/conversions.cpp source/ExtraButtons.cpp source/Menus/ConnectionMenu.cpp source/Menus/OptionSelectionMenu.cpp source/Menus/MainMenu.cpp source/Menus/VideoMenu.cpp source/Menus/CropMenu.cpp source/Menus/PARMenu.cpp source/Menus/RotationMenu.cpp source/Menus/OffsetMenu.cpp source/Menus/AudioMenu.cpp source/Menus/BFIMenu.cpp source/Menus/RelativePositionMenu.cpp source/Menus/ResolutionMenu.cpp source/Menus/FileConfigMenu.cpp source/Menus/ExtraSettingsMenu.cpp source/Menus/StatusMenu.cpp source/Menus/LicenseMenu.cpp source/WindowCommands.cpp source/Menus/ShortcutMenu.cpp source/Menus/ActionSelectionMenu.cpp source/Menus/ScalingRatioMenu.cpp source/Menus/ISNitroMenu.cpp source/Menus/VideoEffectsMenu.cpp source/CaptureDataBuffers.cpp source/Menus/InputMenu.cpp source/Menus/AudioDeviceMenu.cpp source/Menus/SeparatorMenu.cpp source/Menus/ColorCorrectionMenu.cpp source/Menus/Main3DMenu.cpp source/Menus/SecondScreen3DRelativePositionMenu.cpp source/Menus/USBConflictResolutionMenu.cpp source/Menus/Optimize3DSMenu.cpp ${TOOLS_DATA_DIR}/font_ttf.cpp ${TOOLS_DATA_DIR}/shaders_list.cpp ${SOURCE_CPP_EXTRA_FILES}) if(${CMAKE_SYSTEM_NAME} STREQUAL "Android") - if(MSVC) - list(APPEND EXTRA_CXX_FLAGS "/DSFML_SYSTEM_ANDROID") - else() - list(APPEND EXTRA_CXX_FLAGS "-DSFML_SYSTEM_ANDROID") - endif() + add_compile_flag("SFML_SYSTEM_ANDROID") # Create the cc3dsfs.so library that contains the application's c++ code add_library(${OUTPUT_NAME} SHARED ${EXECUTABLE_SOURCE_FILES}) list(APPEND EXTRA_LIBRARIES android)