Skip to content
Merged
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
a1b3558
Allow sub plugins for instruments aswell
JohannesLorenz Dec 27, 2018
4d64c42
Fix Engine.cpp not compiling on some compilers
JohannesLorenz Dec 27, 2018
fcd1a7e
Fix or remove wrong or useless debug printfs
JohannesLorenz Dec 27, 2018
f3b2383
Fix missing IntrumentTrack header
JohannesLorenz Dec 27, 2018
a2b123e
Merge pull request #2 from LMMS/master
LostRobotMusic Jan 3, 2019
d5dcebe
Use QString for SubPluginFeatures' virtuals
JohannesLorenz Jan 18, 2019
31dc8e1
Test deployment preparation in regular builds (#4847)
jasp00 Feb 25, 2019
e34f75a
Add needed macOS shortcuts (#4851)
tresf Feb 25, 2019
ad1fa16
Move apt_mingw_cache out of build directory (#4842)
jasp00 Feb 25, 2019
a233291
Add missing include
lukas-w Feb 27, 2019
05d5e20
Fix DrumSynth sscanf (#4869)
M374LX Mar 3, 2019
0e77947
Fix failing build due to missing include
michaelgregorius Mar 3, 2019
e54969c
Add /sbin to AppImage search path
tresf Mar 5, 2019
009a451
Fix AudioFileProcessor tooltip (#4868)
M374LX Mar 5, 2019
991ffcd
Disable soundio on macOS
tresf Mar 5, 2019
9e6ce06
Blacklist $HOME as VST directory
tresf Mar 7, 2019
cdd1ddb
Sync Debian version (#4840)
jasp00 Mar 7, 2019
6b19455
Install 32-bit RemoteVstPlugin to a separate directory (#4797)
Mar 7, 2019
9ea2611
Fix loading 32bit VSTs on Linux
PhysSong Mar 9, 2019
6b23e64
Merge pull request #3 from LMMS/master
LostRobotMusic Mar 9, 2019
9148ce1
Fix loading 32bit VSTs when loading LMMS in the build directory
PhysSong Mar 10, 2019
17e87c1
Fix MidiJack crash on exit
lukas-w Mar 10, 2019
2a72808
Fix #3926: QCursor in AFP
michaelgregorius Mar 3, 2019
9a91848
Fix CONTRIBUTORS override
PhysSong Mar 11, 2019
9280568
Debian integration: update build dependencies
PhysSong Mar 11, 2019
97502a1
Debian: don't bundle CALF LADSPA library separately anymore
PhysSong Mar 11, 2019
af40c76
Better Wine detection and support
PhysSong Mar 11, 2019
8c4514f
Check if winegcc works before building RemoteVstPlugin
PhysSong Mar 11, 2019
ae4e40d
Modify VST build systems to make debian integration work correctly
PhysSong Mar 11, 2019
5eb6b13
Allow creating AppImages on systems newer than linuxdeployqt official…
PhysSong Mar 11, 2019
61c3f87
Support FX Mixer for sample tracks and add controls to sample track w…
PhysSong Mar 11, 2019
04768ee
Fix zyn pitch on project load/export
tresf Mar 11, 2019
37290ac
Add info about LadspaControls::m_noLink
JohannesLorenz Mar 11, 2019
97d5529
Fix compilation on Qt4
tresf Mar 12, 2019
295b899
Avoid shallow clones in all Debian sid builds (#4888)
jasp00 Mar 13, 2019
17f6235
Add VST always-on-top config option
DomClark Mar 3, 2019
6fef905
Ensure VST windows show properly in taskbar
DomClark Mar 3, 2019
205b575
Don't show error when loading empty VeSTige instance
DomClark Mar 3, 2019
3aeacca
Fix layout of VstSyncData struct
DomClark Mar 3, 2019
2d71d61
Rework after code reading
JohannesLorenz Mar 15, 2019
9aa997e
Allow TabWidget to be variable sized
JohannesLorenz Mar 16, 2019
dd43127
Allow instrument views to grow with contents
JohannesLorenz Mar 16, 2019
f8ba88d
Make instrument window's piano optional
JohannesLorenz Mar 16, 2019
5101aa0
Make Model class visitable
JohannesLorenz Mar 16, 2019
aac516e
Forbid copying the Knob class
JohannesLorenz Mar 16, 2019
7e75a82
Always instantiate at least a dummy plugin
JohannesLorenz Mar 16, 2019
7e7141f
Fix too small instrument tabs
JohannesLorenz Mar 17, 2019
4129be8
Add explenation for LadspaControls::m_noLink
JohannesLorenz Mar 17, 2019
ef6bac6
Merge branch 'misc-lv2-preparation'
JohannesLorenz Mar 17, 2019
0c3db10
Fix Blackman-Harris window formula (#4895)
he29-net Mar 17, 2019
dd6c18e
Automation Editor: Don't accept drag events when there's no pattern
lukas-w Mar 9, 2019
e1adfc3
TCO drag: Fix Ctrl+Drag crash
lukas-w Mar 1, 2019
7952416
Bump zyn submodule
tresf Mar 18, 2019
ea5cbe6
Allow new Zyn bank creation on Linux (#4905)
tresf Mar 18, 2019
f79c292
Fix empty editors after closing them and creating a new project (#4891)
necrashter Mar 19, 2019
1adf160
Make instrument window's piano optional
JohannesLorenz Mar 21, 2019
2061d6c
Merge branch 'master' into instr-sub-plugins
JohannesLorenz Mar 22, 2019
52d1f55
Remove useless include
JohannesLorenz Mar 22, 2019
3483581
Fix invalid display names
JohannesLorenz Mar 22, 2019
82cf453
Allow sub plugins for instruments aswell
JohannesLorenz Mar 22, 2019
032c324
Travis: use carla instead of carla-git
PhysSong Mar 25, 2019
7984bb9
Merge branch 'stable-1.2'
PhysSong Mar 26, 2019
f18efb4
Travis: fix shellcheck warnings for the Debian sid script
PhysSong Mar 26, 2019
4dce466
Remove some Qt4 compatibility code
PhysSong Mar 26, 2019
93ec816
SetupDialog: fix file dialog not opening for theme directory
PhysSong Mar 28, 2019
d52c220
Fix instrument window tab sizes
JohannesLorenz Mar 28, 2019
3ef33db
PluginBrowser: Tree layout and search bar
Mar 30, 2019
ac257f0
PluginBrowser: Tree layout and search bar (#4759)
JohannesLorenz Apr 3, 2019
82e3ba7
[Equalizer] Bright analyzer colors, opacity increased (#4772)
0xf0xx0 Apr 6, 2019
07dcea1
Replace Monstro icons
LostRobotMusic Apr 13, 2019
be31a55
Shrink ComboBox arrow section slightly
LostRobotMusic Apr 13, 2019
b3461e2
Merge pull request #4943 from RoxasKH/new-monstro-icons
LostRobotMusic Apr 13, 2019
271e20d
Merge pull request #4 from LMMS/master
LostRobotMusic Apr 14, 2019
91f9f1a
Don't try to connect to nonexistent controllers (#4939)
enp2s0 Apr 14, 2019
5a56969
Allow sample track TCOs to resize smaller than one bar (#4933)
Spekular Apr 15, 2019
5784dd6
Use local cursor for TrackContentObjectView (#4918)
Apr 15, 2019
96cc5e0
Add PluginIssue class (#4901)
JohannesLorenz Apr 17, 2019
d06f508
Move macro definition out of class
JohannesLorenz Apr 20, 2019
91099e2
Fix -1 offset in plugin tab
JohannesLorenz Apr 20, 2019
53942a1
Fix bad identation in old code
JohannesLorenz Apr 20, 2019
e1df16c
Coding conventions
JohannesLorenz Apr 20, 2019
407444e
FileBrowser: Backup expanded directories and restore that state when …
Apr 3, 2019
22fb650
Merge branch 'variable-tab-widget'
JohannesLorenz Apr 22, 2019
a685049
Allow build for Wayland w/o X11Extras, if VST off
nykula Apr 19, 2019
d537561
Document Effect::checkGate
JohannesLorenz Apr 22, 2019
7ae4e85
Document graph widget
JohannesLorenz Apr 22, 2019
b5e408d
Update wiki submodule
JohannesLorenz Apr 22, 2019
c80f0bf
Fix wiki submodule
PhysSong Apr 24, 2019
461facc
Fix notes getting stuck under high CPU conditions (#4908)
DomClark Apr 24, 2019
160d306
Record chords (#4938)
alxdttn Apr 24, 2019
ca9a956
Make more connections direct for automation (#4942)
DomClark Apr 26, 2019
0fd5693
Improve dcast
JohannesLorenz Apr 26, 2019
8d005e7
AutomatableModelTest: Improve tests
JohannesLorenz Apr 27, 2019
777da5e
Fix CI on windows
JohannesLorenz Apr 27, 2019
2c134d6
Code style + Extend for TempoSyncKnob
JohannesLorenz Apr 27, 2019
c9ed6fc
Merge pull request #4902 from JohannesLorenz/model-visitor
JohannesLorenz Apr 27, 2019
8bcdf06
Travis: fix a debootstrap error from missing keyrings
PhysSong Apr 29, 2019
32df2d7
Don't draw note detuning info over the volume/panning area (#4965)
PhysSong May 5, 2019
cb6b4ec
Show/Focus BBEditor on TrackLabelButton click #4946 (#4959)
May 5, 2019
8f4757e
Use extracted linuxdeployqt directly
PhysSong May 6, 2019
9ff882d
Fix invisible note editing handles when a note has detuning info
PhysSong May 6, 2019
6d7ce58
Merge branch 'stable-1.2'
PhysSong May 6, 2019
d54c79d
Fix the wrong merge
PhysSong May 6, 2019
3dcffbf
fix hanging mouse in piano roll (#4822) (#4960)
sharpblade4 May 6, 2019
b9503a8
Fix race conditions in NotePlayHandleManager (#4966)
PhysSong May 8, 2019
50796b2
Nescaline and Freeboy - Better default sound (#4968)
zonkmachine May 9, 2019
934ea6d
Fix controller loading error on loading projects
PhysSong May 9, 2019
4b4b470
Extend ProjectJournal docs, thx to @DomClark
JohannesLorenz May 13, 2019
ec64de0
Fixes #4781: Don't disconnect LADSPA automation on export
T0NIT0RMX May 14, 2019
28143e6
playing/recording pianoRoll's chord notes (#4963)
sharpblade4 May 24, 2019
fb1b18e
Merge pull request #4990 from sharpblade4/fix#4963_nextver
JohannesLorenz May 25, 2019
9c6e227
SampleTrack: call requestChangesInModel before unref SampleBuffer (#4…
Reflexe May 27, 2019
46c74d0
Making clearer the hierarchy. (#4967)
devnexen May 27, 2019
fad89d6
i18n: update translations from Transifex
liushuyu May 28, 2019
d683a51
Merge pull request #7 from LMMS/master
LostRobotMusic May 31, 2019
37f0c3f
SampleBuffer -> Use processingSampleRate.
Reflexe May 22, 2018
6d27f90
Bugfix - SampleTrack -> Load & Save: Fix recorded sample track not being
Reflexe Dec 16, 2017
665e503
Bugfix - SampleTrack -> Play: Fix sample track not being played in the
Reflexe Dec 16, 2017
359de20
i18n: update template strings
liushuyu Jun 6, 2019
c37228c
Travis: fix macOS build due to the old default version of Node.js
PhysSong Jun 6, 2019
47d6388
MP3 export: initialize ID3 tag with id3tag_init
PhysSong Jun 6, 2019
d194c70
updated splash (#5002)
RebeccaDeField Jun 7, 2019
6e5650c
Fixes #4996: Fix metadata when exporting multiple tracks (#5005)
JohannesLorenz Jun 7, 2019
457f2c6
Fix German translation
JohannesLorenz Jun 6, 2019
ca06b88
DMG rebranding (#5013)
tresf Jun 8, 2019
bfa8a4b
fix color profile error (#5019)
RebeccaDeField Jun 8, 2019
0fbaca4
Bump version to 1.2.0
PhysSong Jun 9, 2019
723a451
Add a save option to discard MIDI connections (#5021)
Reflexe Jun 9, 2019
df79f8c
Enable dark title bar on macOS
tresf Jun 12, 2019
4cb243b
Travis: drop unneeded prefix setting for npm
PhysSong Jun 12, 2019
12ea80d
Merge branch 'stable-1.2'
PhysSong Jun 12, 2019
f141ae6
Fix macOS builds
PhysSong Jun 12, 2019
499d425
Increase Mixer fader falloff speed
LostRobotMusic Jun 15, 2019
5431cc7
Replace tLimit() with qBound() and remove templates.h (#5040)
husamalhomsi Jun 15, 2019
2547098
Merge pull request #5038 from DouglasDGI/better-fx-mixer
LostRobotMusic Jun 22, 2019
a0c2a62
Add .editorconfig
JohannesLorenz Jun 16, 2019
7834e10
FadeButtons now remain partially lit as a note plays out (#4969)
enp2s0 Jun 25, 2019
68cb917
MDI Subwindow Decoration for VeSTige instruments closes #2824 (#2826)
BaraMGB Jun 26, 2019
d766b87
Drop sample on sampletracks (#5043)
BaraMGB Jun 28, 2019
59e186d
Closes #5050: Add Mixer threading comments (#5069)
JohannesLorenz Jul 11, 2019
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
5 changes: 1 addition & 4 deletions .travis/linux.debian-sid.script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,11 @@ fi
if [ ! -e "$BASETGZ.stamp" ]
then
mkdir -p "$HOME/pbuilder-bases"
# debootstrap fails to resolve dependencies which are virtual packages
# e.g. perl-openssl-abi-1.1 provided by perl-openssl-defaults, needed for building SWH
# See also: https://bugs.launchpad.net/ubuntu/+source/debootstrap/+bug/86536
sudo pbuilder --create --basetgz "$BASETGZ" --mirror $MIRROR \
--distribution sid --architecture $TARGET_ARCH \
--debootstrapopts --variant=buildd \
--debootstrapopts --keyring=$KEYRING \
--debootstrapopts --include=perl,libxml2-utils,libxml-perl,liblist-moreutils-perl,perl-openssl-defaults
--debootstrapopts --include=perl
touch "$BASETGZ.stamp"
else
sudo pbuilder --update --basetgz "$BASETGZ"
Expand Down
3 changes: 2 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ OPTION(WANT_STK "Include Stk (Synthesis Toolkit) support" ON)
OPTION(WANT_SWH "Include Steve Harris's LADSPA plugins" ON)
OPTION(WANT_TAP "Include Tom's Audio Processing LADSPA plugins" ON)
OPTION(WANT_VST "Include VST support" ON)
OPTION(WANT_VST_NOWINE "Include partial VST support (without wine)" OFF)
OPTION(WANT_VST_32 "Include 32-bit VST support" ON)
OPTION(WANT_VST_64 "Include 64-bit VST support" ON)
OPTION(WANT_WINMM "Include WinMM MIDI support" OFF)
OPTION(WANT_DEBUG_FPE "Debug floating point exceptions" OFF)

Expand Down
10 changes: 6 additions & 4 deletions cmake/linux/package_linux.sh.in
Original file line number Diff line number Diff line change
Expand Up @@ -134,15 +134,15 @@ export LD_LIBRARY_PATH="${APPDIR}usr/lib/lmms/":$LD_LIBRARY_PATH

# Handle wine linking
if [ -d "@WINE_32_LIBRARY_DIR@" ]; then
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LD_LIBRARY_PATH/wine/:@WINE_32_LIBRARY_DIR@:@WINE_32_LIBRARY_DIR@wine/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:@WINE_32_LIBRARY_DIRS@
fi
if [ -d "@WINE_64_LIBRARY_DIR@" ]; then
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LD_LIBRARY_PATH/wine/:@WINE_64_LIBRARY_DIR@:@WINE_64_LIBRARY_DIR@wine/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:@WINE_64_LIBRARY_DIRS@
fi

# Move executables so linuxdeployqt can find them
ZYNLIB="${APPDIR}usr/lib/lmms/RemoteZynAddSubFx"
VSTLIB32="${APPDIR}usr/lib/lmms/RemoteVstPlugin32.exe.so"
VSTLIB32="${APPDIR}usr/lib/lmms/32/RemoteVstPlugin32.exe.so"
VSTLIB64="${APPDIR}usr/lib/lmms/RemoteVstPlugin64.exe.so"

ZYNBIN="${APPDIR}usr/bin/RemoteZynAddSubFx"
Expand Down Expand Up @@ -172,8 +172,10 @@ executables="${executables} -executable=${APPDIR}usr/lib/lmms/ladspa/pitch_scale
# Bundle both qt and non-qt dependencies into appimage format
echo -e "\nBundling and relinking system dependencies..."
echo -e ">>>>> linuxdeployqt" > "$LOGFILE"
# FIXME: -unsupported-allow-new-glibc may result in an AppImage which is unusable on old systems.

# shellcheck disable=SC2086
"$LINUXDEPLOYQT" "$DESKTOPFILE" $executables -bundle-non-qt-libs -verbose=$VERBOSITY $STRIP >> "$LOGFILE" 2>&1
"$LINUXDEPLOYQT" "$DESKTOPFILE" $executables -unsupported-allow-new-glibc -bundle-non-qt-libs -verbose=$VERBOSITY $STRIP >> "$LOGFILE" 2>&1
success "Bundled and relinked dependencies"

# Link to original location so lmms can find them
Expand Down
27 changes: 27 additions & 0 deletions cmake/modules/CheckWineGcc.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
INCLUDE(CheckCXXSourceCompiles)

FUNCTION(CheckWineGcc BITNESS WINEGCC_EXECUTABLE RESULT)
FILE(WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/winegcc_test.cxx" "
#include <iostream>
#define USE_WS_PREFIX
#include <windows.h>
int main(int argc, const char* argv[]) {
return 0;
}
")
EXECUTE_PROCESS(COMMAND ${WINEGCC_EXECUTABLE} "-m${BITNESS}"
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/winegcc_test.cxx"
"-o" "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/winegcc_test"
OUTPUT_QUIET ERROR_QUIET
RESULT_VARIABLE WINEGCC_RESULT
)
FILE(REMOVE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/winegcc_test.cxx"
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/winegcc_test"
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/winegcc_test.exe.so"
)
IF(WINEGCC_RESULT EQUAL 0)
SET(${RESULT} True PARENT_SCOPE)
ELSE()
SET(${RESULT} False PARENT_SCOPE)
ENDIF()
ENDFUNCTION()
117 changes: 88 additions & 29 deletions cmake/modules/FindWine.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,54 +7,113 @@
# WINE_DEFINITIONS - Compiler switches required for using wine
#

LIST(APPEND CMAKE_PREFIX_PATH /opt/wine-stable /opt/wine-devel /opt/wine-staging /usr/lib/wine/)
MACRO(_findwine_find_flags output expression result)
STRING(REPLACE " " ";" WINEBUILD_FLAGS "${output}")
FOREACH(FLAG ${WINEBUILD_FLAGS})
IF("${FLAG}" MATCHES "${expression}")
SET(${result} "${FLAG}")
ENDIF()
ENDFOREACH()
ENDMACRO()

LIST(APPEND CMAKE_PREFIX_PATH /opt/wine-stable /opt/wine-devel /opt/wine-staging /usr/lib/wine/)

FIND_PATH(WINE_INCLUDE_DIR wine/exception.h PATH_SUFFIXES wine)
FIND_PROGRAM(WINE_CXX
NAMES wineg++ winegcc winegcc64 winegcc32 winegcc-stable
PATHS /usr/lib/wine)
PATHS /usr/lib/wine
)
FIND_PROGRAM(WINE_BUILD NAMES winebuild)
# Detect wine paths and handle linking problems
IF(WINE_CXX)
EXEC_PROGRAM(${WINE_CXX} ARGS "-m32 -v /dev/zero" OUTPUT_VARIABLE WINEBUILD_OUTPUT_32)
EXEC_PROGRAM(${WINE_CXX} ARGS "-m64 -v /dev/zero" OUTPUT_VARIABLE WINEBUILD_OUTPUT_64)
_findwine_find_flags("${WINEBUILD_OUTPUT_32}" "^-isystem/usr/include$" BUGGED_WINEGCC)
_findwine_find_flags("${WINEBUILD_OUTPUT_32}" "^-isystem" WINEGCC_INCLUDE_DIR)
_findwine_find_flags("${WINEBUILD_OUTPUT_32}" "libwinecrt0\\.a.*" WINECRT_32)
_findwine_find_flags("${WINEBUILD_OUTPUT_64}" "libwinecrt0\\.a.*" WINECRT_64)
STRING(REGEX REPLACE "^-isystem" "" WINE_INCLUDE_HINT "${WINEGCC_INCLUDE_DIR}")
STRING(REGEX REPLACE "/wine/windows$" "" WINE_INCLUDE_HINT "${WINE_INCLUDE_HINT}")
STRING(REGEX REPLACE "libwinecrt0\\.a.*" "" WINE_32_LIBRARY_DIR "${WINECRT_32}")
STRING(REGEX REPLACE "libwinecrt0\\.a.*" "" WINE_64_LIBRARY_DIR "${WINECRT_64}")

IF(BUGGED_WINEGCC)
MESSAGE(WARNING "Your winegcc is unusable due to https://bugs.winehq.org/show_bug.cgi?id=46293,\n
Consider either upgrading or downgrading wine.")
RETURN()
ENDIF()
IF(WINE_32_LIBRARY_DIR STREQUAL WINE_64_LIBRARY_DIR)
MESSAGE(STATUS "Old winegcc detected, trying to use workaround linking")
# Fix library search directory according to the target bitness
IF(WINE_32_LIBRARY_DIR MATCHES "/lib/(x86_64|i386)-")
# Debian systems
STRING(REPLACE "/lib/x86_64-" "/lib/i386-" WINE_32_LIBRARY_DIR "${WINE_32_LIBRARY_DIR}")
STRING(REPLACE "/lib/i386-" "/lib/x86_64-" WINE_64_LIBRARY_DIR "${WINE_64_LIBRARY_DIR}")
ELSEIF(WINE_32_LIBRARY_DIR MATCHES "/(lib|lib64)/wine/$")
# WineHQ (/opt/wine-stable, /opt/wine-devel, /opt/wine-staging)
STRING(REGEX REPLACE "/lib64/wine/$" "/lib/wine/" WINE_32_LIBRARY_DIR "${WINE_32_LIBRARY_DIR}")
STRING(REGEX REPLACE "/lib/wine/$" "/lib64/wine/" WINE_64_LIBRARY_DIR "${WINE_64_LIBRARY_DIR}")
ELSEIF(WINE_32_LIBRARY_DIR MATCHES "/lib32/.*/wine/")
# Systems with old multilib layout
STRING(REPLACE "/lib32/" "/lib/" WINE_64_LIBRARY_DIR "${WINE_32_LIBRARY_DIR}")
ELSEIF(WINE_32_LIBRARY_DIR MATCHES "/lib64/.*/wine/")
# We need to test if the corresponding 64bit library directory is lib or lib32
STRING(REPLACE "/lib64/" "/lib32/" WINE_32_LIBRARY_DIR "${WINE_64_LIBRARY_DIR}")
IF(NOT EXISTS "${WINE_32_LIBRARY_DIR}")
STRING(REPLACE "/lib64/" "/lib/" WINE_32_LIBRARY_DIR "${WINE_64_LIBRARY_DIR}")
ENDIF()
ELSEIF(WINE_32_LIBRARY_DIR MATCHES "/lib/.*/wine/")
# Test if this directory is for 32bit or 64bit
STRING(REPLACE "/lib/" "/lib32/" WINE_32_LIBRARY_DIR "${WINE_64_LIBRARY_DIR}")
IF(NOT EXISTS "${WINE_32_LIBRARY_DIR}")
SET(WINE_32_LIBRARY_DIR "${WINE_64_LIBRARY_DIR}")
STRING(REPLACE "/lib/" "/lib64/" WINE_64_LIBRARY_DIR "${WINE_64_LIBRARY_DIR}")
ENDIF()
ELSE()
MESSAGE(WARNING "Can't detect wine installation layout. You may get some build errors.")
ENDIF()
SET(WINE_LIBRARY_FIX "${WINE_32_LIBRARY_DIR} and ${WINE_64_LIBRARY_DIR}")
ENDIF()
ENDIF()

FIND_PATH(WINE_INCLUDE_DIR wine/exception.h
HINTS "${WINE_INCLUDE_HINT}"
)

SET(_ARCHITECTURE ${CMAKE_LIBRARY_ARCHITECTURE})

FIND_LIBRARY(WINE_LIBRARY NAMES wine PATH_SUFFIXES wine i386-linux-gnu/wine)
FIND_LIBRARY(WINE_LIBRARY NAMES wine
PATH_SUFFIXES wine i386-linux-gnu/wine
HINTS "${WINE_32_LIBRARY_DIR}" "${WINE_64_LIBRARY_DIR}"
)

SET(CMAKE_LIBRARY_ARCHITECTURE ${_ARCHITECTURE})

SET(WINE_INCLUDE_DIRS ${WINE_INCLUDE_DIR} )
SET(WINE_LIBRARIES ${WINE_LIBRARY} )

# Handle wine linking problems
EXEC_PROGRAM(${WINE_CXX} ARGS "-v -m32 /dev/zero" OUTPUT_VARIABLE WINEBUILD_OUTPUT)
STRING(REPLACE " " ";" WINEBUILD_FLAGS "${WINEBUILD_OUTPUT}")

FOREACH(FLAG ${WINEBUILD_FLAGS})
IF("${FLAG}" MATCHES "libwinecrt0.a.*")
STRING(REGEX REPLACE "/wine/libwinecrt0.a.*" "" FLAG "${FLAG}")

SET(WINE_64_LIBRARY_DIR "${FLAG}/")

# Debian systems
STRING(REPLACE "/lib/x86_64-" "/lib/i386-" FLAG "${FLAG}")
# Fedora systems
STRING(REPLACE "/lib/lib64" "/lib/i386" FLAG "${FLAG}")
# Gentoo systems
STRING(REPLACE "/lib/wine-" "/lib32/wine-" FLAG "${FLAG}")
# WineHQ (/opt/wine-stable, /opt/wine-devel, /opt/wine-staging)
STRING(REGEX REPLACE "/lib64$" "/lib" FLAG "${FLAG}")

SET(WINE_32_LIBRARY_DIR "${FLAG}/")
ENDIF()
ENDFOREACH()
SET(WINE_LIBRARIES ${WINE_LIBRARY})

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Wine DEFAULT_MSG WINE_CXX WINE_LIBRARIES WINE_INCLUDE_DIRS)

mark_as_advanced(WINE_INCLUDE_DIR WINE_LIBRARY WINE_CXX WINE_BUILD)

IF(WINE_32_LIBRARY_DIR)
SET(WINE_32_FLAGS "-L${WINE_32_LIBRARY_DIR}wine/ -L${WINE_32_LIBRARY_DIR}")
IF(WINE_32_LIBRARY_DIR MATCHES "wine*/lib")
SET(WINE_32_FLAGS "-L${WINE_32_LIBRARY_DIR} -L${WINE_32_LIBRARY_DIR}../")
SET(WINE_32_LIBRARY_DIRS "${WINE_32_LIBRARY_DIR}:${WINE_32_LIBRARY_DIR}/..")
ELSE()
SET(WINE_32_FLAGS "-L${WINE_32_LIBRARY_DIR}")
SET(WINE_32_LIBRARY_DIRS "${WINE_32_LIBRARY_DIR}")
ENDIF()
ENDIF()

IF(WINE_64_LIBRARY_DIR)
IF(WINE_64_LIBRARY_DIR MATCHES "wine*/lib")
SET(WINE_64_FLAGS "-L${WINE_64_LIBRARY_DIR} -L${WINE_64_LIBRARY_DIR}../")
SET(WINE_64_LIBRARY_DIRS "${WINE_64_LIBRARY_DIR}:${WINE_64_LIBRARY_DIR}/..")
ELSE()
SET(WINE_64_FLAGS "-L${WINE_64_LIBRARY_DIR}")
SET(WINE_64_LIBRARY_DIRS "${WINE_64_LIBRARY_DIR}")
ENDIF()
ENDIF()

# Create winegcc wrapper
Expand Down
11 changes: 11 additions & 0 deletions cmake/modules/winegcc_wrapper.in
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ while [ $# -gt 0 ]; do
-m32)
win32=true
;;
-m64)
win64=true
;;
*)

;;
Expand All @@ -42,11 +45,19 @@ fi
# by FindWine.cmake
extra_args="-I@WINE_INCLUDE_DIR@ -I@WINE_INCLUDE_DIR@/wine/windows"

# Apply manually specified flags
extra_args="$extra_args @WINE_CXX_FLAGS@"

# Apply -m32 library fix if necessary
if [ "$win32" = true ] && [ "$no_link" != true ]; then
extra_args="$extra_args @WINE_32_FLAGS@"
fi

# Apply -m64 library fix if necessary
if [ "$win64" = true ] && [ "$no_link" != true ]; then
extra_args="$extra_args @WINE_64_FLAGS@"
fi

# Run winegcc
export WINEBUILD=@WINE_BUILD@
@WINE_CXX@ $extra_args $args
Expand Down
1 change: 0 additions & 1 deletion debian/calf-ladspa.install

This file was deleted.

31 changes: 10 additions & 21 deletions debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ Build-Depends:
libfluidsynth-dev,
libgig-dev,
libjack-jackd2-dev,
liblist-moreutils-perl,
libmp3lame-dev,
libpulse-dev,
libqt5x11extras5-dev,
Expand All @@ -29,10 +30,12 @@ Build-Depends:
libvorbis-dev,
libxcb-keysyms1-dev,
libxcb-util0-dev,
libxml-perl,
libxml2-utils,
portaudio19-dev,
qtbase5-private-dev,
qttools5-dev,
wine32-tools [i386]
wine64-tools [amd64] | wine32-tools [i386]
Standards-Version: 4.2.1.4
Homepage: http://lmms.io/
Vcs-Browser: https://salsa.debian.org/debian-edu-pkg-team/lmms.git
Expand All @@ -41,8 +44,9 @@ Package: lmms-bin
Architecture: any
Depends: lmms-common (>= ${source:Version}), ${shlibs:Depends}, ${misc:Depends},
stk
Recommends: calf-ladspa, tap-plugins, caps,
lmms-vst-server:i386 (>= ${source:Version})
Recommends: tap-plugins, caps,
lmms-vst-server:i386 (>= ${source:Version}),
lmms-vst-server:amd64 (>= ${source:Version})
Suggests: fil-plugins, mcp-plugins, omins, freepats, fluid-soundfont-gm,
ladspa-plugin
Replaces: lmms-common (<< 1.0.0-1)
Expand All @@ -63,7 +67,7 @@ Description: Linux Multimedia Studio - minimal installation

Package: lmms
Architecture: any
Depends: calf-ladspa, lmms-bin, ${misc:Depends}
Depends: lmms-bin, ${misc:Depends}
Description: Linux Multimedia Studio
LMMS aims to be a free alternative to popular (but commercial and closed-
source) programs like FruityLoops, Cubase and Logic giving you the ability of
Expand Down Expand Up @@ -96,23 +100,8 @@ Description: Linux Multimedia Studio - common files
and some example projects.

Package: lmms-vst-server
Architecture: i386
# Order matters to avoid wine64
Depends: wine32, wine, ${shlibs:Depends}, ${misc:Depends}
Architecture: amd64 i386
Depends: wine64 [amd64] | wine64-development [amd64] | wine32 [i386] | wine32-development [i386], ${shlibs:Depends}, ${misc:Depends}
Recommends: lmms-bin:any
Description: Linux Multimedia Studio - VST server
This package contains a helper application that loads VST plugins.

Package: calf-ladspa
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Replaces: calf-plugins (<< 0.0.19)
Provides: ladspa-plugin
Description: Linux Multimedia Studio - Calf LADSPA plugins
Calf is a pack of audio plugins - effects and instruments. The goal is to
create a set of plugins using decent algorithms and parameter settings,
available in a form which is compatible with as many open source applications
as possible.
.
These plugins are distributed as part of Linux Multimedia Studio, but may be
used by other applications.
5 changes: 1 addition & 4 deletions debian/lmms-bin.install
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
usr/bin/lmms
usr/lib/*/lmms/ladspa/[a-b]*
usr/lib/*/lmms/ladspa/caps.so
usr/lib/*/lmms/ladspa/c[b-z]*
usr/lib/*/lmms/ladspa/[d-z]*
usr/lib/*/lmms/ladspa/*
usr/lib/*/lmms/lib*
usr/lib/*/lmms/RemoteZynAddSubFx
2 changes: 1 addition & 1 deletion debian/lmms-vst-server.install
Original file line number Diff line number Diff line change
@@ -1 +1 @@
usr/lib/*/lmms/RemoteVstPlugin*
usr/lib/*/lmms/{32/,}RemoteVstPlugin*
14 changes: 10 additions & 4 deletions debian/rules
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,26 @@ DH_CMAKE_BUILD_DIR=obj -${DEB_BUILD_GNU_TYPE}
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
DEB_HOST_ARCH_BIT ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_BITS)

CMAKE_OPTS= -DCONTRIBUTORS=$(CURDIR)/doc/CONTRIBUTORS -DFORCE_VERSION=internal \
-DWANT_QT5=1
ifneq ($(DEB_HOST_ARCH_OS),linux)
CMAKE_OPTS+= -DWANT_ALSA=0
endif

ifeq ($(DEB_HOST_ARCH),i386)
ifeq ($(DEB_HOST_ARCH),amd64)
export PATH := $(PATH):/usr/lib/wine
WINE_PATH := /usr/lib/$(DEB_HOST_MULTIARCH)/wine
CMAKE_OPTS+= -DWINE_CXX_FLAGS=-Wl,--enable-new-dtags,-rpath=$(WINE_PATH)
CMAKE_OPTS+= -DWANT_VST_32=OFF -DREMOTE_VST_PLUGIN_FILEPATH_32=../../i386-linux-gnu/lmms/32/RemoteVstPlugin32 \
-DWINE_CXX_FLAGS=-Wl,--enable-new-dtags,-rpath=$(WINE_PATH)
else ifeq ($(DEB_HOST_ARCH),i386)
export PATH := $(PATH):/usr/lib/wine
WINE_PATH := /usr/lib/$(DEB_HOST_MULTIARCH)/wine
CMAKE_OPTS+= -DWANT_VST_64=OFF -DREMOTE_VST_PLUGIN_FILEPATH_64=../../x86_64-linux-gnu/lmms/RemoteVstPlugin64 \
-DWINE_CXX_FLAGS=-Wl,--enable-new-dtags,-rpath=$(WINE_PATH)
else
CMAKE_OPTS+= -DWANT_VST_NOWINE=1 \
-DREMOTE_VST_PLUGIN_FILEPATH=../../i386-linux-gnu/lmms/RemoteVstPlugin
CMAKE_OPTS+= -DWANT_VST=OFF
endif

# Define NDEBUG. This helps with reproducible builds.
Expand Down
Loading