Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main' into feat/simplify-wavef…
Browse files Browse the repository at this point in the history
…orm-combobox
  • Loading branch information
acolombier committed May 30, 2024
2 parents fbf2748 + 18a3e4a commit e0232a2
Show file tree
Hide file tree
Showing 74 changed files with 4,809 additions and 1,170 deletions.
7 changes: 6 additions & 1 deletion .github/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,12 @@ code quality:
- .pre-commit-config.yaml
- pyproject.toml

controllers:
controller backend:
- changed-files:
- any-glob-to-any-file:
- src/controllers/**

controller mappings:
- changed-files:
- any-glob-to-any-file:
- res/controllers/**
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,9 @@ jobs:
needs: build
# Always run this job, even if one or more jobs from the `build` jobs
# fail to allow partial updates of the manifest.
if: always()
# Don't run it on forks that do not have access to our external
# infrastructure, though.
if: always() && github.repository == 'mixxxdj/mixxx'
steps:
- name: "Check out repository"
uses: actions/checkout@v4.1.6
Expand Down
2 changes: 1 addition & 1 deletion .tx/config
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[main]
host = https://www.transifex.com

[o:mixxx-dj-software:p:mixxxdj:r:mixxx2-5]
[o:mixxx-dj-software:p:mixxxdj:r:mixxx2-6]
file_filter = res/translations/mixxx_<lang>.ts
source_file = res/translations/mixxx.ts
source_lang = en
Expand Down
192 changes: 166 additions & 26 deletions CHANGELOG.md

Large diffs are not rendered by default.

94 changes: 60 additions & 34 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ elseif(APPLE)
endif()
endif()

project(mixxx VERSION 2.5.0)
project(mixxx VERSION 2.6.0)
enable_language(C CXX)
# Work around missing version suffixes support https://gitlab.kitware.com/cmake/cmake/-/issues/16716
set(MIXXX_VERSION_PRERELEASE "alpha") # set to "alpha" "beta" or ""
Expand Down Expand Up @@ -933,6 +933,8 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL
src/library/dlgtagfetcher.ui
src/library/dlgtrackinfo.cpp
src/library/dlgtrackinfo.ui
src/library/dlgtrackinfomulti.cpp
src/library/dlgtrackinfomulti.ui
src/library/dlgtrackmetadataexport.cpp
src/library/export/coverartcopyworker.cpp
src/library/export/dlgtrackexport.ui
Expand Down Expand Up @@ -1326,7 +1328,7 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL
set(MIXXX_COMMON_PRECOMPILED_HEADER
src/util/assert.h
)
target_precompile_headers(mixxx-lib PUBLIC
set(MIXXX_LIB_PRECOMPILED_HEADER
src/audio/frame.h
src/audio/signalinfo.h
src/audio/streaminfo.h
Expand Down Expand Up @@ -1481,7 +1483,6 @@ target_precompile_headers(mixxx-lib PUBLIC
src/util/workerthread.h
src/util/workerthreadscheduler.h
src/util/xml.h
${MIXXX_COMMON_PRECOMPILED_HEADER}
)
if (NOT QML)
target_sources(mixxx-lib PRIVATE
Expand Down Expand Up @@ -2174,40 +2175,13 @@ add_executable(mixxx-test
src/test/waveform_upgrade_test.cpp
src/util/moc_included_test.cpp
)
target_precompile_headers(mixxx-test REUSE_FROM mixxx-lib)
find_package(GTest CONFIG REQUIRED)
set_target_properties(mixxx-test PROPERTIES AUTOMOC ON)
target_link_libraries(mixxx-test PRIVATE mixxx-lib mixxx-gitinfostore GTest::gtest GTest::gmock)

find_package(benchmark)
target_link_libraries(mixxx-test PRIVATE benchmark::benchmark)

# Test Suite
include(CTest)
include(GoogleTest)
enable_testing()
gtest_add_tests(
TARGET mixxx-test
EXTRA_ARGS --logLevel info
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
TEST_LIST testsuite
)
if (NOT WIN32)
# Default to offscreen rendering during tests.
# This is required if the build system like Fedora koji/mock does not
# allow to pass environment variables into the ctest macro expansion.
set_tests_properties(${testsuite} PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=offscreen")
endif()

# Benchmarking
add_custom_target(mixxx-benchmark
COMMAND $<TARGET_FILE:mixxx-test> --benchmark
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Mixxx Benchmarks"
VERBATIM
)
add_dependencies(mixxx-benchmark mixxx-test)

#
# Resources
#
Expand Down Expand Up @@ -2354,7 +2328,7 @@ option(ENGINEPRIME "Support for library export to Denon Engine Prime" ON)
if(ENGINEPRIME)
# libdjinterop does not currently have a stable ABI, so we fetch sources for a specific tag, build here, and link
# statically. This situation should be reviewed once libdjinterop hits version 1.x.
set(LIBDJINTEROP_VERSION 0.20.2)
set(LIBDJINTEROP_VERSION 0.21.0)
# Look whether an existing installation of libdjinterop matches the required version.
find_package(DjInterop ${LIBDJINTEROP_VERSION} EXACT CONFIG)
if(NOT DjInterop_FOUND)
Expand Down Expand Up @@ -2390,7 +2364,7 @@ if(ENGINEPRIME)
URL
"https://github.com/xsco/libdjinterop/archive/refs/tags/${LIBDJINTEROP_VERSION}.tar.gz"
"https://launchpad.net/~xsco/+archive/ubuntu/djinterop/+sourcefiles/libdjinterop/${LIBDJINTEROP_VERSION}-0ubuntu1/libdjinterop_${LIBDJINTEROP_VERSION}.orig.tar.gz"
URL_HASH SHA256=3024b8b49bc0bd673a7f032e7da7b73ce61144951e810683ec89650fedd45b85
URL_HASH SHA256=160d4e09b25e859816a6b664058e7c6bc5cd889adeb188a9721c2b65d2133641
DOWNLOAD_DIR "${CMAKE_CURRENT_BINARY_DIR}/downloads"
DOWNLOAD_NAME "libdjinterop-${LIBDJINTEROP_VERSION}.tar.gz"
INSTALL_DIR ${DJINTEROP_INSTALL_DIR}
Expand Down Expand Up @@ -3461,6 +3435,52 @@ if(FFMPEG)
target_include_directories(mixxx-lib PUBLIC "${FFMPEG_INCLUDE_DIRS}")
endif()

# STEM file support
default_option(STEM "STEM file support" "FFMPEG_FOUND;FFMPEG")
if (STEM)
if(NOT FFMPEG)
message(FATAL_ERROR "STEM requires that also FFMPEG is enabled")
endif()
target_compile_definitions(mixxx-lib PUBLIC __STEM__)
target_compile_definitions(mixxx-test PUBLIC __STEM__)
target_sources(mixxx-test PUBLIC
src/test/stemtest.cpp
src/test/steminfotest.cpp
)
list(APPEND MIXXX_LIB_PRECOMPILED_HEADER src/track/steminfo.h)
target_sources(mixxx-lib PRIVATE
src/sources/soundsourcestem.cpp
src/track/steminfoimporter.cpp
src/track/steminfo.cpp
)
endif()

# Test Suite
include(CTest)
include(GoogleTest)
enable_testing()
gtest_add_tests(
TARGET mixxx-test
EXTRA_ARGS --logLevel info
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
TEST_LIST testsuite
)
if (NOT WIN32)
# Default to offscreen rendering during tests.
# This is required if the build system like Fedora koji/mock does not
# allow to pass environment variables into the ctest macro expansion.
set_tests_properties(${testsuite} PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=offscreen")
endif()

# Benchmarking
add_custom_target(mixxx-benchmark
COMMAND $<TARGET_FILE:mixxx-test> --benchmark
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Mixxx Benchmarks"
VERBATIM
)
add_dependencies(mixxx-benchmark mixxx-test)

# Google PerfTools
option(GPERFTOOLS "Google PerfTools libtcmalloc linkage" OFF)
option(GPERFTOOLSPROFILER "Google PerfTools libprofiler linkage" OFF)
Expand Down Expand Up @@ -3568,8 +3588,8 @@ if(OPUS)
src/encoder/encoderopussettings.cpp
)
target_compile_definitions(mixxx-lib PUBLIC __OPUS__)
target_link_libraries(mixxx-lib PRIVATE OpusFile::OpusFile)
target_link_libraries(mixxx-lib PRIVATE Opus::Opus)
target_link_libraries(mixxx-lib PRIVATE OpusFile::OpusFile Opus::Opus)
target_link_libraries(mixxx-test PRIVATE OpusFile::OpusFile Opus::Opus)
endif()

# MAD MP3 Decoder
Expand Down Expand Up @@ -3771,6 +3791,12 @@ if(WAVPACK)
target_link_libraries(mixxx-lib PRIVATE WavPack::wavpack)
endif()

target_precompile_headers(mixxx-lib PUBLIC
${MIXXX_LIB_PRECOMPILED_HEADER}
${MIXXX_COMMON_PRECOMPILED_HEADER}
)
target_precompile_headers(mixxx-test REUSE_FROM mixxx-lib)

# Configure file with build options
file(RELATIVE_PATH MIXXX_INSTALL_DOCDIR_RELATIVE_TO_DATADIR "${CMAKE_INSTALL_PREFIX}/${MIXXX_INSTALL_DATADIR}" "${CMAKE_INSTALL_PREFIX}/${MIXXX_INSTALL_DOCDIR}")
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/src/config.h" @ONLY)
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Mixxx 2.5-alpha, Digital DJ'ing software.
Mixxx 2.6-alpha, Digital DJ'ing software.
Copyright (C) 2001-2024 Mixxx Development Team

Mixxx is free software; you can redistribute it and/or modify
Expand Down
Loading

0 comments on commit e0232a2

Please sign in to comment.