Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OSC T/B/L LIBLO - Experimental // WIP // Help with Findliblo.cmake needed #14388

Draft
wants to merge 50 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
7794337
eve osc ok 20241001
evelynnev Oct 1, 2024
83b6074
eve osc ok 20241002
evelynnev Oct 2, 2024
853cea7
eve osc ok 20241002
evelynnev Oct 2, 2024
034e460
eve osc ok 20241002
evelynnev Oct 2, 2024
94f02ad
eve osc ok 20241002
evelynnev Oct 2, 2024
df13928
eve osc ok 20241002
evelynnev Oct 2, 2024
fc216c7
eve osc ok 20241002
evelynnev Oct 2, 2024
f059ebb
eve osc ok 20241002
evelynnev Oct 2, 2024
87a9397
eve osc ok 20241002
evelynnev Oct 2, 2024
605b32b
eve osc ok 20241003
evelynnev Oct 3, 2024
16e7ea6
eve osc ok 20241003
evelynnev Oct 3, 2024
2b2180b
eve ok 20241004
evelynnev Oct 4, 2024
4f813e2
eve ok 20241004
evelynnev Oct 4, 2024
06e1834
OSC_in_Mixxx_ARM64_Support/2.6
evelynnev Nov 4, 2024
6153ef4
OSC_in_Mixxx_ARM64_Support/2.6 wit a comment to get the pr get compiled
evelynnev Nov 5, 2024
1ef1869
addedTrackInfo4OSCleton
evelynnev Jan 17, 2025
e928c01
Update oscreceiver.cpp
Eve00000 Jan 18, 2025
1ea732a
Update CMakeLists.txt
Eve00000 Jan 18, 2025
f2ffcc0
Merge branch 'main' into OSC_in_Mixxx-ARM6426_TrackInfo
Eve00000 Jan 18, 2025
1e35eea
EscapeJSonArtistTitle
evelynnev Jan 21, 2025
646249b
EscapeJSonArtistTitle
evelynnev Jan 21, 2025
10de761
conversion_function
evelynnev Jan 26, 2025
4848b91
updatedtreebranchleaftranslation
evelynnev Jan 28, 2025
0111878
updatedRegEx
evelynnev Jan 29, 2025
b6ade56
OSC-TBL-Liblo
evelynnev Feb 21, 2025
343b532
OSC-TBL-Liblo-ExtraSafeConfigHandling
evelynnev Feb 22, 2025
9e93c13
OSC-TBL-Liblo-ExtraSafeConfigHandling
evelynnev Feb 22, 2025
7edbd7e
OSC-TBL-Liblo-ExtraSafeConfigHandling2
evelynnev Feb 22, 2025
068acb2
OSC-TBL-Liblo-ChangeHandleOfConfig2Vars
evelynnev Feb 24, 2025
b9144f9
OSC-TBL-Liblo-ChangeHandleOfConfig2Vars-CleanUp
evelynnev Feb 24, 2025
1f131cd
OSC-TBL-Liblo-ChangeHandleOfConfig2Vars-ClazyError
evelynnev Feb 24, 2025
a513c63
OSC-TBL-Liblo-ChangeHandleOfConfig2Vars-ClazyError
evelynnev Feb 24, 2025
0cc7eb4
OSC-TBL-Liblo-ChangeHandleOfConfig2Vars-ClazyError
evelynnev Feb 24, 2025
2d0f659
OSC-TBL-Liblo-ChangeHandleOfConfig2Vars-ClazyError2
evelynnev Feb 24, 2025
96aa5b2
OSC-TBL-Liblo-ChangeHandleOfConfig2Vars-ClazyError4
evelynnev Feb 24, 2025
75c9959
OSC-TBL-Liblo-ChangeHandleOfConfig2Vars-ClazyError5
evelynnev Feb 25, 2025
694b497
OSC-TBL-Liblo-ChangeHandleOfConfig2Vars-ClazyError5
evelynnev Feb 25, 2025
09a5335
OSC-TBL-Liblo-ChangeHandleOfConfig2Vars-ClazyError5
evelynnev Feb 25, 2025
4d8e488
OSC-TBL-Liblo-ChangeHandleOfConfig2Vars-ArthurRemarks
evelynnev Feb 25, 2025
b084859
removeBinary
evelynnev Feb 28, 2025
10c85dd
cmake
evelynnev Feb 28, 2025
75019f6
build.yml
evelynnev Feb 28, 2025
9df2a18
cmake
evelynnev Feb 28, 2025
8f725ed
cmake
evelynnev Feb 28, 2025
4cf3134
cmake
evelynnev Feb 28, 2025
3018de5
cmake-build-checks
evelynnev Feb 28, 2025
c7d8cae
build-errors
evelynnev Feb 28, 2025
0aa25be
build-errors
evelynnev Feb 28, 2025
f1b9f18
cmake
evelynnev Feb 28, 2025
4f47578
cmake
evelynnev Feb 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .github/workflows/build-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ jobs:
steps:
- name: Check out repository
uses: actions/[email protected]
- name: Install vcpkg and liblo
run: |
# Clone vcpkg if not already present
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg install liblo:x64-linux
./vcpkg integrate install
- name: Add clazy PPA
if: matrix.name == 'clazy'
# Ubuntu2404 comes with v1.11, which is too old for the Qt6.4 shipped with Ubuntu 24.04
Expand Down
13 changes: 13 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,19 @@ jobs:
BUILDENV_BASEPATH: ${{ matrix.buildenv_basepath }}
BUILDENV_RELEASE: TRUE

- name: "[macOS] Install liblo"
# Eve - get liblo in CI
if: runner.os == 'macOS'
run: brew install liblo

- name: "[Ubuntu] Install liblo"
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y liblo-dev

- name: "[Windows] Install liblo via vcpkg"
if: runner.os == 'Windows'
run: vcpkg install liblo:x64-windows

- name: "[Ubuntu/macOS] Set up GitHub cache for ccache"
if: runner.os != 'windows'
uses: actions/cache@v4
Expand Down
53 changes: 41 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1296,6 +1296,7 @@ add_library(
src/network/jsonwebtask.cpp
src/network/networktask.cpp
src/network/webtask.cpp
src/osc/oscreceiver.cpp
src/preferences/colorpaletteeditor.cpp
src/preferences/colorpaletteeditor.cpp
src/preferences/colorpaletteeditormodel.cpp
Expand Down Expand Up @@ -1325,6 +1326,8 @@ add_library(
src/preferences/dialog/dlgpreflibrarydlg.ui
src/preferences/dialog/dlgprefmixer.cpp
src/preferences/dialog/dlgprefmixerdlg.ui
src/preferences/dialog/dlgprefosc.cpp
src/preferences/dialog/dlgprefoscdlg.ui
src/preferences/dialog/dlgprefrecord.cpp
src/preferences/dialog/dlgprefrecorddlg.ui
src/preferences/dialog/dlgprefreplaygain.cpp
Expand Down Expand Up @@ -1915,6 +1918,8 @@ if(MSVC)
target_compile_definitions(
mixxx-lib
PUBLIC
# Eve: to prevent multiple instances of winsock(2) being loaded
WIN32_LEAN_AND_MEAN
_SILENCE_CXX17_ITERATOR_BASE_CLASS_DEPRECATION_WARNING
_CRT_SECURE_NO_WARNINGS
)
Expand Down Expand Up @@ -2008,6 +2013,8 @@ if(WIN32)
# _WIN32_WINNT_WIN7 = 0x0601
target_compile_definitions(mixxx-lib PUBLIC WINVER=0x0601)
target_compile_definitions(mixxx-lib PUBLIC _WIN32_WINNT=0x0601)
# Eve: to prevent multiple instances of winsock(2) being loaded
target_compile_definitions(mixxx-lib PUBLIC WIN32_LEAN_AND_MEAN)
if(MSVC)
target_compile_definitions(mixxx-lib PUBLIC _USE_MATH_DEFINES)
endif()
Expand Down Expand Up @@ -2105,6 +2112,8 @@ if(QT6)
# below that takes care of the correct object order in the resulting binary
# According to https://doc.qt.io/qt-6/qt-finalize-target.html it is importand for
# builds with Qt < 3.21
# Eve: to prevent multiple instances of winsock(2) being loaded
### add_definitions(-DWIN32_LEAN_AND_MEAN)
qt_add_executable(mixxx WIN32 src/main.cpp MANUAL_FINALIZATION)
else()
find_package(Qt5 COMPONENTS Core) # For Qt Core cmake functions
Expand Down Expand Up @@ -2384,7 +2393,8 @@ endif()
#
# Tests
#

# Eve: to prevent multiple instances of winsock(2) being loaded
### add_definitions(-DWIN32_LEAN_AND_MEAN)
add_executable(
mixxx-test
src/test/analyserwaveformtest.cpp
Expand Down Expand Up @@ -2615,6 +2625,8 @@ add_custom_target(

# Windows-only resource file
if(WIN32)
# EVE
###add_definitions(-DWIN32_LEAN_AND_MEAN)
string(TIMESTAMP MIXXX_YEAR "%Y")

set(
Expand Down Expand Up @@ -3010,6 +3022,24 @@ target_include_directories(
)
target_link_libraries(mixxx-lib PRIVATE rekordbox_metadata)

#eve osc
# liblo
find_package(liblo REQUIRED)
#target_include_directories(liblo SYSTEM PUBLIC "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/lo")
#include_directories("D:/mixxx-git/mixxx/buildenv/mixxx-deps-2.6-x64-windows-cce5c19/installed/x64-windows/include")
#link_directories("D:/mixxx-git/mixxx/buildenv/mixxx-deps-2.6-x64-windows-cce5c19/installed/x64-windows/lib")
include_directories(
"${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include/lib/lo"
)
link_directories("${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib")
#add_subdirectory(lib/lo)
#target_include_directories(liblo SYSTEM PUBLIC lib/lo)
# target_include_directories(liblo SYSTEM PUBLIC lib/lo)
target_link_libraries(mixxx-lib PRIVATE liblo::liblo)
# liblo
#find_package(lo REQUIRED)
#target_link_libraries(mixxx-lib PRIVATE lo::lo)

#silence "enumeration values not handled in switch" in generated code
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
target_compile_options(rekordbox_metadata PRIVATE -Wno-switch)
Expand Down Expand Up @@ -3364,9 +3394,8 @@ if(Qt_IS_STATIC)
if(WIN32)
target_link_libraries(
mixxx-lib
PRIVATE
Qt${QT_VERSION_MAJOR}::QWindowsIntegrationPlugin
Qt${QT_VERSION_MAJOR}::QWindowsVistaStylePlugin
PRIVATE Qt${QT_VERSION_MAJOR}::QWindowsIntegrationPlugin
#Qt${QT_VERSION_MAJOR}::QWindowsVistaStylePlugin
)
endif()

Expand Down Expand Up @@ -3587,14 +3616,14 @@ else()
COMPONENT
applocal
)
install(
IMPORTED_RUNTIME_ARTIFACTS
Qt${QT_VERSION_MAJOR}::QWindowsVistaStylePlugin
DESTINATION
"${MIXXX_INSTALL_DATADIR}/styles"
COMPONENT
applocal
)
#install(
# IMPORTED_RUNTIME_ARTIFACTS
# Qt${QT_VERSION_MAJOR}::QWindowsVistaStylePlugin
# DESTINATION
# "${MIXXX_INSTALL_DATADIR}/styles"
# COMPONENT
# applocal
#)
endif()
if(APPLE)
install(
Expand Down
97 changes: 97 additions & 0 deletions cmake/modules/Findliblo.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# This file is part of Mixxx, Digital DJ'ing software.
# Copyright (C) 2001-2024 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE file for details.

#[=======================================================================[.rst:
Findliblo
--------

Finds the liblo library.

Imported Targets
^^^^^^^^^^^^^^^^

This module provides the following imported targets, if found:

``liblo::liblo``
The liblo library

Result Variables
^^^^^^^^^^^^^^^^

This will define the following variables:

``liblo_FOUND``
True if the system has the liblo library.
``liblo_INCLUDE_DIRS``
Include directories needed to use liblo.
``liblo_LIBRARIES``
Libraries needed to link to liblo.
``liblo_DEFINITIONS``
Compile definitions needed to use liblo.

Cache Variables
^^^^^^^^^^^^^^^

The following cache variables may also be set:

``liblo_INCLUDE_DIR``
The directory containing ``liblo/liblo.h``.
``liblo_LIBRARY``
The path to the liblo library.

#]=======================================================================]

find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_liblo QUIET liblo)
endif()

find_path(
liblo_INCLUDE_DIR
NAMES lo/lo.h
HINTS ${PC_liblo_INCLUDE_DIRS}
ENV CPATH
ENV CMAKE_INCLUDE_PATH
PATH_SUFFIXES include
DOC "liblo include directory"
)
mark_as_advanced(liblo_INCLUDE_DIR)

find_library(
liblo_LIBRARY
NAMES lo liblo
HINTS ${PC_liblo_LIBRARY_DIRS}
ENV LIBRARY_PATH
ENV CMAKE_LIBRARY_PATH
PATH_SUFFIXES lib
DOC "liblo library"
)
mark_as_advanced(liblo_LIBRARY)

if(DEFINED PC_liblo_VERSION AND NOT PC_liblo_VERSION STREQUAL "")
set(liblo_VERSION "${PC_liblo_VERSION}")
endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
liblo
REQUIRED_VARS liblo_LIBRARY liblo_INCLUDE_DIR
VERSION_VAR liblo_VERSION
)

if(liblo_FOUND)
set(liblo_LIBRARIES "${liblo_LIBRARY}")
set(liblo_INCLUDE_DIRS "${liblo_INCLUDE_DIR}")
if(NOT TARGET liblo::liblo)
add_library(liblo::liblo UNKNOWN IMPORTED)
set_target_properties(
liblo::liblo
PROPERTIES
IMPORTED_LOCATION "${liblo_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_liblo_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${liblo_INCLUDE_DIR}"
)
endif()
endif()
97 changes: 97 additions & 0 deletions cmake/modules/Findlo.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# This file is part of Mixxx, Digital DJ'ing software.
# Copyright (C) 2001-2024 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE file for details.

#[=======================================================================[.rst:
Findlo
--------

Finds the lo library.

Imported Targets
^^^^^^^^^^^^^^^^

This module provides the following imported targets, if found:

``lo::lo``
The lo library

Result Variables
^^^^^^^^^^^^^^^^

This will define the following variables:

``lo_FOUND``
True if the system has the lo library.
``lo_INCLUDE_DIRS``
Include directories needed to use lo.
``lo_LIBRARIES``
Libraries needed to link to lo.
``lo_DEFINITIONS``
Compile definitions needed to use lo.

Cache Variables
^^^^^^^^^^^^^^^

The following cache variables may also be set:

``lo_INCLUDE_DIR``
The directory containing ``lo/lo.h``.
``lo_LIBRARY``
The path to the lo library.

#]=======================================================================]

find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_lo QUIET lo)
endif()

find_path(
lo_INCLUDE_DIR
NAMES lo/lo.h
HINTS ${PC_lo_INCLUDE_DIRS}
ENV CPATH
ENV CMAKE_INCLUDE_PATH
PATH_SUFFIXES include
DOC "lo include directory"
)
mark_as_advanced(lo_INCLUDE_DIR)

find_library(
lo_LIBRARY
NAMES lo
HINTS ${PC_lo_LIBRARY_DIRS}
ENV LIBRARY_PATH
ENV CMAKE_LIBRARY_PATH
PATH_SUFFIXES lib
DOC "lo library"
)
mark_as_advanced(lo_LIBRARY)

if(DEFINED PC_lo_VERSION AND NOT PC_lo_VERSION STREQUAL "")
set(lo_VERSION "${PC_lo_VERSION}")
endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
lo
REQUIRED_VARS lo_LIBRARY lo_INCLUDE_DIR
VERSION_VAR lo_VERSION
)

if(lo_FOUND)
set(lo_LIBRARIES "${lo_LIBRARY}")
set(lo_INCLUDE_DIRS "${lo_INCLUDE_DIR}")
if(NOT TARGET lo::lo)
add_library(lo::lo UNKNOWN IMPORTED)
set_target_properties(
lo::lo
PROPERTIES
IMPORTED_LOCATION "${lo_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_lo_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${lo_INCLUDE_DIR}"
)
endif()
endif()
Loading