Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/2.4' into arm64_macOS
Browse files Browse the repository at this point in the history
daschuer committed May 5, 2023
2 parents 50e3a3a + 456fc10 commit 28a877c
Showing 168 changed files with 4,515 additions and 2,992 deletions.
10 changes: 4 additions & 6 deletions .github/workflows/labeler.yml
Original file line number Diff line number Diff line change
@@ -22,11 +22,9 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/labeler@main
# version between v4.0.3 and the one after which has not yet been tagged
# at the time of writing
- uses: actions/labeler@7012d51fe062f0b1e26e224a3c9fb52598ee3302
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"

# This works around bug https://github.com/actions/labeler/issues/104.
# The workaround was proposed here:
# https://github.com/wesnoth/wesnoth/commit/958c82d0867568057caaf58356502ec8c87d8366
sync-labels: ""
sync-labels: false
7 changes: 7 additions & 0 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -72,6 +72,13 @@ jobs:
name: ${{ env.UPLOAD_PATCH_FILE }}
path: ${{ env.UPLOAD_PATCH_FILE }}

- name: "Upload pre-commit.log"
if: failure() && env.UPLOAD_PATCH_FILE == null
uses: actions/[email protected]
with:
name: pre-commit.log
path: /github/home/.cache/pre-commit/pre-commit.log

# AppStream metadata has been generated/updated by a pre-commit hook
- name: "Validate AppStream metadata"
if: runner.os == 'Linux'
12 changes: 6 additions & 6 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -35,14 +35,15 @@ repos:
rev: v4.3.0
hooks:
- id: fix-byte-order-marker
exclude: ^.*(\.cbproj|\.groupproj|\.props|\.sln|\.vcxproj|\.vcxproj.filters)$
exclude: ^.*(\.cbproj|\.groupproj|\.props|\.sln|\.vcxproj|\.vcxproj.filters|UTF-8-BOM.txt)$
- id: check-case-conflict
- id: check-json
- id: check-merge-conflict
- id: check-xml
- id: check-yaml
exclude: ^\.clang-format$
- id: end-of-file-fixer
exclude: ^.*UTF-8-BOM.txt$
- id: mixed-line-ending
- id: trailing-whitespace
exclude: \.(c|cc|cxx|cpp|frag|glsl|h|hpp|hxx|ih|ispc|ipp|java|js|m|mm|proto|vert)$
@@ -118,11 +119,10 @@ repos:
hooks:
- id: prettier
types: [yaml]
# disabled until https://github.com/mixxxdj/mixxx/issues/11386 is fixed
#- repo: https://github.com/qarmin/qml_formatter.git
# rev: 0.2.0
# hooks:
# - id: qml_formatter
- repo: https://github.com/qarmin/qml_formatter.git
rev: 0.2.0
hooks:
- id: qml_formatter
- repo: local
hooks:
- id: qsscheck
10 changes: 5 additions & 5 deletions .tx/config
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
[main]
host = https://www.transifex.com

[mixxxdj.mixxx2-4]
file_filter = res/translations/mixxx_<lang>.ts
source_file = res/translations/mixxx.ts
source_lang = en
[o:mixxx-dj-software:p:mixxxdj:r:mixxx2-4]
file_filter = res/translations/mixxx_<lang>.ts
source_file = res/translations/mixxx.ts
source_lang = en
type = TS
minimum_perc = 0
type = QT
38 changes: 37 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -845,6 +845,42 @@
[#8818](https://github.com/mixxxdj/mixxx/pull/8818)
[#4907](https://github.com/mixxxdj/mixxx/pull/4907)

## [2.3.5](https://github.com/mixxxdj/mixxx/milestone/39) (unreleased)

* Fix empty waveform overview after loading a track (Mixxx 2.3.4 regression)
Fixed by [#11333](https://github.com/mixxxdj/mixxx/pull/11333)
[#11359](https://github.com/mixxxdj/mixxx/pull/11359)
[#11344](https://github.com/mixxxdj/mixxx/issues/11344)
* Fullscreen: Fix a crash that occurs on Linux after enabling fullsceen and using menu
shortcuts e.g. Alt-F.
[#11328](https://github.com/mixxxdj/mixxx/pull/11328)
[#11320](https://github.com/mixxxdj/mixxx/issues/11320)
* Fullscreen: Rebuild & reconnect menu only on desktops with global menu
[#11350](https://github.com/mixxxdj/mixxx/pull/11350)
* macOS: Request Microphone and line-in access permission.
[#11367](https://github.com/mixxxdj/mixxx/pull/11367)
[#11365](https://github.com/mixxxdj/mixxx/issues/11365)
* JACK API: Allow to explicit select buffers of 2048 and 4096 frames/period. They are not
supported by the automatic buffer setting of the used PortAudio library.
[#11366](https://github.com/mixxxdj/mixxx/pull/11366)
[#11341](https://github.com/mixxxdj/mixxx/issues/11341)
* Pioneer DDJ-400: Make Beat FX section more intuitive
[#10912](https://github.com/mixxxdj/mixxx/pull/10912)
* Playlist export: Adopt new extension after changing the playlist type
[#11332](https://github.com/mixxxdj/mixxx/pull/11332)
[#11327](https://github.com/mixxxdj/mixxx/issues/11327)
* LateNight: brighter fx parameter buttons
[#11397](https://github.com/mixxxdj/mixxx/pull/11397)
* Fix drift in analyzis data after exporting metadata to MP3 files with ID3v1.1 tags
[#11168](https://github.com/mixxxdj/mixxx/pull/11168)
[#11159](https://github.com/mixxxdj/mixxx/issues/11159)
* Fix broadcasting using Opus encoding
[#11349](https://github.com/mixxxdj/mixxx/pull/11349)
[#10666](https://github.com/mixxxdj/mixxx/issues/10666)
* Tango: Remove VU peak indicators from stacked layout. This fixes a visual regression in Mixxx 2.3.4.
[#11430](https://github.com/mixxxdj/mixxx/pull/11430)
[#11362](https://github.com/mixxxdj/mixxx/issues/11362)

## [2.3.4](https://launchpad.net/mixxx/+milestone/2.3.4) (2023-03-03)

* Track Properties: Show 'date added' as local time [#4838](https://github.com/mixxxdj/mixxx/pull/4838) [#10776](https://github.com/mixxxdj/mixxx/issues/10776)
@@ -889,7 +925,7 @@
* Allow search in external libraries [#11221](https://github.com/mixxxdj/mixxx/pull/11221) [#11216](https://github.com/mixxxdj/mixxx/issues/11216)
* JACK buffer size fix [#11121](https://github.com/mixxxdj/mixxx/pull/11121)
* Don't discard file tags with tuning information like "A#m +50" [#10992](https://github.com/mixxxdj/mixxx/pull/10992)
* Year search: Find also full date entries [#11251](https://github.com/mixxxdj/mixxx/pull/11251) [#11251](https://github.com/mixxxdj/mixxx/issues/11113)
* Year search: Find also full date entries [#11251](https://github.com/mixxxdj/mixxx/pull/11251) [#11113](https://github.com/mixxxdj/mixxx/issues/11113)
* Fix visual alignment of beats and waveform in case of decoding issues [#11162](https://github.com/mixxxdj/mixxx/pull/11162)
* Avoid "active key-value observers" messages during skin parsing on macOS [#11265](https://github.com/mixxxdj/mixxx/pull/11265)
* Fullscreen on Linux: Fix issues caused by Ubuntu Unity workaround [#11295](https://github.com/mixxxdj/mixxx/pull/11295) [#11281](https://github.com/mixxxdj/mixxx/issues/11281) [#11294](https://github.com/mixxxdj/mixxx/issues/11294)
68 changes: 51 additions & 17 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -178,8 +178,13 @@ else()
endif()

if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
# using regular Clang or AppleClang
set(LLVM_CLANG true)
if (CMAKE_CXX_SIMULATE_ID MATCHES "MSVC")
set(LLVM_CLANG false)
set(MSVC true)
else()
# using regular Clang or AppleClang
set(LLVM_CLANG true)
endif()
else()
set(LLVM_CLANG false)
endif()
@@ -194,6 +199,9 @@ set(CMAKE_CXX_STANDARD 20)
if(MSVC)
# Ensure MSVC populates __cplusplus correctly.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:__cplusplus")
# Remove unreferenced code and data
# Since c++11 they can safely be removed to speed up linking.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:inline")
endif()

# Speed up builds on HDDs and prevent wearing of SDDs
@@ -297,6 +305,11 @@ if(MSVC)
string(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
string(REPLACE "/RTC1" "" CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
elseif(CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
# For some reasons cmake uses /Ob1 in RelWithDebInfo https://gitlab.kitware.com/cmake/cmake/-/issues/20812
# /O2 is applied by CMake and this implies /Od2
string(REPLACE "/Ob1" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
string(REPLACE "/Ob1" "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")

# Reduce the size of the binary in RelWithDebInfo builds
# Do not use /OPT:ICF because it has no effect.
# https://github.com/mixxxdj/mixxx/pull/3660#pullrequestreview-600137258
@@ -363,8 +376,9 @@ if(MSVC)
#Remove optimize flags set by cmake defaults
string(REPLACE "/O2" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
string(REPLACE "/O2" "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
string(REPLACE "/Ob2" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
string(REPLACE "/Ob2" "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
# For some reasons cmake uses /Ob1 in RelWithDebInfo https://gitlab.kitware.com/cmake/cmake/-/issues/20812
string(REPLACE "/Ob1" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
string(REPLACE "/Ob1" "" CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
add_compile_options(/Od) # this implies /Ob0
add_compile_options(/RTC1)
endif()
@@ -757,7 +771,9 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL
src/library/export/trackexportworker.cpp
src/library/externaltrackcollection.cpp
src/library/hiddentablemodel.cpp
src/library/itunes/itunesdao.cpp
src/library/itunes/itunesfeature.cpp
src/library/itunes/itunesxmlimporter.cpp
src/library/library_prefs.cpp
src/library/library.cpp
src/library/librarycontrol.cpp
@@ -847,14 +863,12 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL
src/preferences/dialog/dlgprefbeatsdlg.ui
src/preferences/dialog/dlgprefcolors.cpp
src/preferences/dialog/dlgprefcolorsdlg.ui
src/preferences/dialog/dlgprefcrossfader.cpp
src/preferences/dialog/dlgprefcrossfaderdlg.ui
src/preferences/dialog/dlgprefmixer.cpp
src/preferences/dialog/dlgprefmixerdlg.ui
src/preferences/dialog/dlgprefdeck.cpp
src/preferences/dialog/dlgprefdeckdlg.ui
src/preferences/dialog/dlgprefeffects.cpp
src/preferences/dialog/dlgprefeffectsdlg.ui
src/preferences/dialog/dlgprefeq.cpp
src/preferences/dialog/dlgprefeqdlg.ui
src/preferences/dialog/dlgpreferencepage.cpp
src/preferences/dialog/dlgpreferences.cpp
src/preferences/dialog/dlgpreferencesdlg.ui
@@ -1166,6 +1180,23 @@ if(UNIX AND NOT APPLE)
set(MIXXX_SETTINGS_PATH ".mixxx/")
endif()

if(APPLE)
# Enable Automatic Reference Counting (ARC) when compiling Objective-C(++).
# This frees us from having to worry about memory management when interfacing
# with Apple frameworks (e.g. as in itunesmacosimporter.mm) since the compiler
# will automatically insert retain/release calls on Objective-C objects.
target_compile_options(mixxx-lib PUBLIC -fobjc-arc)

option(MACOS_ITUNES_LIBRARY "Native macOS iTunes/Music.app library integration" ON)
if(MACOS_ITUNES_LIBRARY)
target_sources(mixxx-lib PRIVATE
src/library/itunes/itunesmacosimporter.mm
)
target_link_libraries(mixxx-lib PRIVATE "-weak_framework iTunesLibrary")
target_compile_definitions(mixxx-lib PUBLIC __MACOS_ITUNES_LIBRARY__)
endif()
endif()

# QML Debugging
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
target_compile_definitions(mixxx-lib PRIVATE QT_QML_DEBUG)
@@ -1258,10 +1289,6 @@ target_compile_definitions(mixxx-lib PUBLIC
$<$<CONFIG:Debug>:MIXXX_BUILD_DEBUG>
$<$<CONFIG:Debug>:MIXXX_DEBUG_ASSERTIONS_ENABLED>
$<$<NOT:$<CONFIG:Debug>>:MIXXX_BUILD_RELEASE>
# Disable assert.h assertions in release mode. Some libraries use
# this as a signal for when to enable code that should be disabled
# in release mode.
$<$<NOT:$<CONFIG:Debug>>:NDEBUG>
)

# Mac-specific options
@@ -1951,10 +1978,11 @@ endif()
# Denon Engine Prime library export support (using libdjinterop)
option(ENGINEPRIME "Support for library export to Denon Engine Prime" ON)
if(ENGINEPRIME)
set(LIBDJINTEROP_VERSION 0.16.0)
set(LIBDJINTEROP_VERSION 0.16.1)
# Look for an existing installation of libdjinterop and use that if available.
# Otherwise, download and build from GitHub.
find_package(DjInterop ${LIBDJINTEROP_VERSION})
# Note: Version 0.17.0 is not yet compatible
find_package(DjInterop ${LIBDJINTEROP_VERSION} EXACT)
if(DjInterop_FOUND)
# An existing installation of djinterop is available.
message(STATUS "Using existing system installation of libdjinterop")
@@ -1985,7 +2013,7 @@ if(ENGINEPRIME)
# the configuration.
ExternalProject_Add(libdjinterop
URL "https://github.com/xsco/libdjinterop/archive/refs/tags/${LIBDJINTEROP_VERSION}.tar.gz"
URL_HASH SHA256=c998831fe4d3cc80c5c031491204244c9ed0c61575dd529260304b95d79db588
URL_HASH SHA256=25461f5cc3ea80850d8400872f4fef08ad3730d9f2051719cccf2460f5ac15ad
DOWNLOAD_DIR "${CMAKE_CURRENT_BINARY_DIR}/downloads"
DOWNLOAD_NAME "libdjinterop-${LIBDJINTEROP_VERSION}.tar.gz"
INSTALL_DIR ${DJINTEROP_INSTALL_DIR}
@@ -2038,10 +2066,13 @@ add_library(fidlib STATIC EXCLUDE_FROM_ALL lib/fidlib/fidlib.c)
if(MSVC)
target_compile_definitions(fidlib PRIVATE T_MSVC)
target_compile_definitions(fidlib PRIVATE _USE_MATH_DEFINES)
target_compile_options(fidlib PRIVATE /W3)
elseif(MINGW)
target_compile_definitions(fidlib PRIVATE T_MINGW)
target_compile_options(fidlib PRIVATE -fno-finite-math-only -Wall -Wextra -Wfloat-conversion -Werror=return-type)
else()
target_compile_definitions(fidlib PRIVATE T_LINUX)
target_compile_options(fidlib PRIVATE -fno-finite-math-only -Wall -Wextra -Wfloat-conversion -Werror=return-type)
endif()
target_include_directories(mixxx-lib SYSTEM PUBLIC lib/fidlib)
target_link_libraries(mixxx-lib PRIVATE fidlib)
@@ -2116,7 +2147,10 @@ target_link_libraries(mixxx-lib PRIVATE FLAC::FLAC)
# inlining It is compiled without optimization and allows to use these function
# from -ffast-math optimized objects. The MSVC option /fp:fast does not suffer this issue
add_library(FpClassify STATIC EXCLUDE_FROM_ALL src/util/fpclassify.cpp)
if(GNU_GCC OR LLVM_CLANG)

if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND CMAKE_CXX_SIMULATE_ID MATCHES "MSVC")
target_compile_options(FpClassify PRIVATE /fp:precise)
elseif(GNU_GCC OR LLVM_CLANG)
# The option `-ffp-contract=on` must precede `-fno-fast-math`
# to silence a warning on Clang 14
target_compile_options(FpClassify PRIVATE -ffp-contract=on -fno-fast-math)
@@ -3063,7 +3097,7 @@ if (NOT CPACK_DEBIAN_PACKAGE_RELEASE)
set(CPACK_DEBIAN_PACKAGE_RELEASE 1)
endif()

set(CPACK_DEBIAN_DISTRIBUTION_RELEASES jammy kinetic)
set(CPACK_DEBIAN_DISTRIBUTION_RELEASES jammy kinetic lunar)
set(CPACK_DEBIAN_SOURCE_DIR ${CMAKE_SOURCE_DIR})
set(CPACK_DEBIAN_UPLOAD_PPA_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/packaging/CPackDebUploadPPA.cmake")
set(CPACK_DEBIAN_INSTALL_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/packaging/CPackDebInstall.cmake")
2 changes: 1 addition & 1 deletion cmake/modules/BundleInstall.cmake.in
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ include(BundleUtilities)

#fixup_bundle tries to copy system libraries without this. Wtf?
function(gp_resolved_file_type_override file type)
if(file MATCHES "^(/usr/lib)")
if(file MATCHES "^(/usr/lib)" OR file MATCHES "^(/Library/Frameworks)")
set(type "system" PARENT_SCOPE)
endif()
endfunction()
9 changes: 6 additions & 3 deletions cmake/modules/FindDjInterop.cmake
Original file line number Diff line number Diff line change
@@ -61,12 +61,15 @@ find_library(DjInterop_LIBRARY
)
mark_as_advanced(DjInterop_LIBRARY)

if(DEFINED PC_DjInterop_VERSION AND NOT PC_DjInterop_VERSION STREQUAL "")
set(DjInterop_VERSION "${PC_DjInterop_VERSION}")
endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
DjInterop
DEFAULT_MSG
DjInterop_LIBRARY
DjInterop_INCLUDE_DIR
REQUIRED_VARS DjInterop_LIBRARY DjInterop_INCLUDE_DIR
VERSION_VAR DjInterop_VERSION
)

if(DjInterop_FOUND)
Loading

0 comments on commit 28a877c

Please sign in to comment.