From 274d58d1d1002c4b277992b88c609f7f8e6534c4 Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Wed, 5 Feb 2025 18:33:29 -0500 Subject: [PATCH] Remove unrelated changes 5 --- cmake/modules/DetectMachine.cmake | 163 +++++++++++++++++++++++++++++- 1 file changed, 162 insertions(+), 1 deletion(-) diff --git a/cmake/modules/DetectMachine.cmake b/cmake/modules/DetectMachine.cmake index 0e7a9eb4f65..ef478f5825f 100644 --- a/cmake/modules/DetectMachine.cmake +++ b/cmake/modules/DetectMachine.cmake @@ -149,6 +149,167 @@ ELSE(CMAKE_INSTALL_LIBDIR) ENDIF(CMAKE_INSTALL_LIBDIR) +IF(LMMS_BUILD_WIN32) + SET(BIN_DIR .) + SET(PLUGIN_DIR plugins) + SET(DATA_DIR data) + SET(LMMS_DATA_DIR data) +ELSE(LMMS_BUILD_WIN32) + SET(BIN_DIR bin) + SET(PLUGIN_DIR ${LIB_DIR}/lmms) + SET(DATA_DIR share) + SET(LMMS_DATA_DIR ${DATA_DIR}/lmms) +ENDIF(LMMS_BUILD_WIN32) + +IF(LMMS_BUILD_APPLE) + # Detect Homebrew versus Macports environment + EXECUTE_PROCESS(COMMAND brew --prefix RESULT_VARIABLE DETECT_HOMEBREW OUTPUT_VARIABLE HOMEBREW_PREFIX ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + EXECUTE_PROCESS(COMMAND which port RESULT_VARIABLE DETECT_MACPORTS OUTPUT_VARIABLE MACPORTS_PREFIX ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + IF(${DETECT_HOMEBREW} EQUAL 0) + SET(HOMEBREW 1) + SET(APPLE_PREFIX "${HOMEBREW_PREFIX}") + ELSEIF(${DETECT_MACPORTS} EQUAL 0) + SET(MACPORTS 1) + GET_FILENAME_COMPONENT(MACPORTS_PREFIX ${MACPORTS_PREFIX} DIRECTORY) + GET_FILENAME_COMPONENT(MACPORTS_PREFIX ${MACPORTS_PREFIX} DIRECTORY) + SET(APPLE_PREFIX "${MACPORTS_PREFIX}") + LINK_DIRECTORIES(${LINK_DIRECTORIES} ${APPLE_PREFIX}/lib) + ENDIF() + + # Detect OS Version + EXECUTE_PROCESS(COMMAND sw_vers -productVersion OUTPUT_VARIABLE APPLE_OS_VER ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) + STRING(REGEX REPLACE "\\.[0-9]*$" "" APPLE_OS_VER "${APPLE_OS_VER}") + SET(CMAKE_MACOSX_RPATH 1) +ENDIF() +IF(NOT DEFINED WIN64 AND CMAKE_SIZEOF_VOID_P EQUAL 8) + # TODO: This seems a bit presumptous + SET(WIN64 ON) +ENDIF() + +IF(WIN32) + if(MSVC) + SET(MSVC_VER ${CMAKE_CXX_COMPILER_VERSION}) + + # Detect target architecture + IF(CMAKE_GENERATOR_PLATFORM) + STRING(TOLOWER "${CMAKE_GENERATOR_PLATFORM}" MSVC_TARGET_PLATFORM) + ELSE() + STRING(TOLOWER "${CMAKE_VS_PLATFORM_NAME_DEFAULT}" MSVC_TARGET_PLATFORM) + ENDIF() + + IF(MSVC_TARGET_PLATFORM MATCHES "x64") + SET(IS_X86_64 TRUE) + SET(LMMS_BUILD_WIN64 TRUE) + ELSEIF(MSVC_TARGET_PLATFORM MATCHES "win32") + SET(IS_X86 TRUE) + ELSEIF(MSVC_TARGET_PLATFORM MATCHES "arm64") + SET(IS_ARM64 TRUE) + ELSEIF(MSVC_TARGET_PLATFORM MATCHES "arm") + SET(IS_ARM32 TRUE) + ELSEIF(CMAKE_CXX_COMPILER MATCHES "amd64/cl.exe$" OR CMAKE_CXX_COMPILER MATCHES "x64/cl.exe$") + SET(IS_X86_64 TRUE) + SET(LMMS_BUILD_WIN64 TRUE) + ELSEIF(CMAKE_CXX_COMPILER MATCHES "bin/cl.exe$" OR CMAKE_CXX_COMPILER MATCHES "x86/cl.exe$") + SET(IS_X86 TRUE) + ELSEIF(CMAKE_CXX_COMPILER MATCHES "arm64/cl.exe$") + SET(IS_ARM64 TRUE) + ELSEIF(CMAKE_CXX_COMPILER MATCHES "arm/cl.exe$") + SET(IS_ARM32 TRUE) + ELSE() + MESSAGE(WARNING "Unknown target architecture: ${MSVC_TARGET_PLATFORM}") + ENDIF() + + IF(MSVC_VER VERSION_GREATER 19.30 OR MSVC_VER VERSION_EQUAL 19.30) + SET(LMMS_MSVC_GENERATOR "Visual Studio 17 2022") + SET(LMMS_MSVC_YEAR 2022) + ELSEIF(MSVC_VER VERSION_GREATER 19.20 OR MSVC_VER VERSION_EQUAL 19.20) + SET(LMMS_MSVC_GENERATOR "Visual Studio 16 2019") + SET(LMMS_MSVC_YEAR 2019) # Qt only provides binaries for MSVC 2017, but 2019 is binary compatible + ELSEIF(MSVC_VER VERSION_GREATER 19.10 OR MSVC_VER VERSION_EQUAL 19.10) + SET(LMMS_MSVC_GENERATOR "Visual Studio 15 2017") + SET(LMMS_MSVC_YEAR 2017) + ELSEIF(MSVC_VER VERSION_GREATER 19.0 OR MSVC_VER VERSION_EQUAL 19.0) + SET(LMMS_MSVC_GENERATOR "Visual Studio 14 2015") + SET(LMMS_MSVC_YEAR 2015) + ELSE() + MESSAGE(SEND_WARNING "Can't detect MSVC version: ${MSVC_VER}") + ENDIF() + + unset(MSVC_VER) + else() + # Cross-compiled + if($ENV{MSYSTEM_CARCH} MATCHES "aarch64") + set(IS_ARM64 TRUE) + set(LMMS_BUILD_WIN64 TRUE) + elseif(WIN64) + set(IS_X86_64 TRUE) + set(LMMS_BUILD_WIN64 TRUE) + else() + set(IS_X86 TRUE) + endif() + endif() +ELSE() + # Detect target architecture based on compiler target triple e.g. "x86_64-pc-linux" + execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpmachine ${CMAKE_C_FLAGS} OUTPUT_VARIABLE Machine) + MESSAGE("Machine: ${Machine}") + STRING(REGEX MATCH "i.86" IS_X86 "${Machine}") + STRING(REGEX MATCH "86_64|amd64" IS_X86_64 "${Machine}") + IF(Machine MATCHES "arm|aarch64") + IF(Machine MATCHES "arm64|aarch64") + SET(IS_ARM64 TRUE) + ELSE() + SET(IS_ARM32 TRUE) + ENDIF() + ELSEIF(Machine MATCHES "rv|riscv") + IF(Machine MATCHES "rv64|riscv64") + SET(IS_RISCV64 TRUE) + ELSE() + SET(IS_RISCV32 TRUE) + ENDIF() + ELSEIF(Machine MATCHES "ppc|powerpc") + IF(Machine MATCHES "ppc64|powerpc64") + SET(IS_PPC64 TRUE) + ELSE() + SET(IS_PPC32 TRUE) + ENDIF() + ENDIF() +ENDIF() + +IF(IS_X86) + MESSAGE("-- Target host is 32 bit, Intel") + SET(LMMS_HOST_X86 TRUE) +ELSEIF(IS_X86_64) + MESSAGE("-- Target host is 64 bit, Intel") + SET(LMMS_HOST_X86_64 TRUE) +ELSEIF(IS_ARM32) + MESSAGE("-- Target host is 32 bit, ARM") + SET(LMMS_HOST_ARM32 TRUE) +ELSEIF(IS_ARM64) + MESSAGE("-- Target host is 64 bit, ARM") + SET(LMMS_HOST_ARM64 TRUE) +ELSEIF(IS_RISCV32) + MESSAGE("-- Target host is 32 bit, RISC-V") + SET(LMMS_HOST_RISCV32 TRUE) +ELSEIF(IS_RISCV64) + MESSAGE("-- Target host is 64 bit, RISC-V") + SET(LMMS_HOST_RISCV64 TRUE) +ELSEIF(IS_PPC32) + MESSAGE("-- Target host is 32 bit, PPC") + SET(LMMS_HOST_PPC32 TRUE) +ELSEIF(IS_PPC64) + MESSAGE("-- Target host is 64 bit, PPC") + SET(LMMS_HOST_PPC64 TRUE) +ELSE() + MESSAGE("Can't identify target host. Assuming 32 bit platform.") +ENDIF() + +IF(CMAKE_INSTALL_LIBDIR) + SET(LIB_DIR "${CMAKE_INSTALL_LIBDIR}") +ELSE(CMAKE_INSTALL_LIBDIR) + SET(LIB_DIR lib) +ENDIF(CMAKE_INSTALL_LIBDIR) + + IF(LMMS_BUILD_WIN32) SET(BIN_DIR .) SET(PLUGIN_DIR plugins) @@ -180,4 +341,4 @@ IF(LMMS_BUILD_APPLE) EXECUTE_PROCESS(COMMAND sw_vers -productVersion OUTPUT_VARIABLE APPLE_OS_VER ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) STRING(REGEX REPLACE "\\.[0-9]*$" "" APPLE_OS_VER "${APPLE_OS_VER}") SET(CMAKE_MACOSX_RPATH 1) -ENDIF() \ No newline at end of file +ENDIF()