Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main' into parametricGTestForM…
Browse files Browse the repository at this point in the history
…appings
  • Loading branch information
JoergAtGithub committed May 26, 2024
2 parents ad6201d + 3c27ef3 commit a2de90e
Show file tree
Hide file tree
Showing 51 changed files with 3,993 additions and 639 deletions.
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
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Changelog

## [2.6.0](https://github.com/mixxxdj/mixxx/milestone/44) (Unreleased)

## [2.5.0](https://github.com/mixxxdj/mixxx/issues?q=milestone%3A2.5.0) (Unreleased)

### Features
Expand Down
84 changes: 55 additions & 29 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 @@ -1334,7 +1336,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 @@ -1489,7 +1491,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 @@ -2196,35 +2197,13 @@ add_executable(mixxx-test
src/test/wwidgetstack_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_discover_tests(
mixxx-test
EXTRA_ARGS --logLevel info
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=offscreen"
TEST_LIST testsuite
DISCOVERY_MODE PRE_TEST)

# 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 @@ -2371,7 +2350,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 @@ -2407,7 +2386,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 @@ -3478,6 +3457,47 @@ 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_discover_tests(
mixxx-test
EXTRA_ARGS --logLevel info
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=offscreen"
TEST_LIST testsuite
DISCOVERY_MODE PRE_TEST)

# 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 @@ -3585,8 +3605,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 @@ -3788,6 +3808,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 a2de90e

Please sign in to comment.