# Summary ## Build platform/hardware * Windows 11 Laptop, Intel Core i7, 16gb RAM * Visual Studio 2022, Community Edition * OS installed on SSD * Software installed on HDD ## Original references * https://github.com/LMMS/lmms/wiki/dependencies-windows ## General Idea * Install GIT - https://git-scm.com/downloads * Install CMake - https://cmake.org * Install QT 5.12.12 - from [qt.io](https://www.qt.io/download), offline installers * Install Visual Studio C++ Developer Toolkit * Install WSL and / or linux commands - https://getgnuwin32.sourceforge.net and set them appear in system path. * Install doxygen - https://www.doxygen.nl, later: graphviz via vcpkg * Install vcpkg from GitHub - https://github.com/microsoft/vcpkg * Install vcpkg based packages required for LMMS * very long time taking process: > 1:00 hours * Uses a lot of bandwidth * Obtain the LMMS Source Code from GitHub * Obtain other LMMS Depedencies (git submodules) * Build project (solution files) with CMake * Manually copy data/, data/stk, plugins directories * Manually copy plugins/ladspa/*.dll - because they do not build * Unload 32bit projects from Visual Studio - requires 32 bit qt * Compile! Run! * Plugins with difficulties * Other notes # Step by Step Instructions Preperation for the plugins that do not compile from the source code. * Install official/nighly build of LMMS. * Copy LMMS/ folder to a reference path. You will need plugins/ladspa folder from this reference. * Uninstall LMMS - so we can build our own copy. ``` cd d:\ git clone https://github.com/Microsoft/vcpkg cd vcpkg .\bootstrap-vcpkg.bat ``` ## Install vcpkg packages ``` .\vcpkg install --triplet=x64-windows fftw3 libsamplerate libsndfile lilv lv2 sdl2 fluidsynth fltk libstk portaudio graphviz glib ``` ## Getting the source code Obtain LMMS Source Code. Obtain 3rd party depenencies for LMMS ``` git clone --recurse-submodules -b master https://github.com/lmms/lmms cd lmms git submodule update --progress --init --recursive --force --merge --rebase mkdir build cd build cmake .. -G "Visual Studio 17 2022" -DCMAKE_PREFIX_PATH=C:\Qt\Qt5.12.12\5.12.12\msvc2017_64 -DQT_32_PREFIX=C:\Qt\Qt5.12.12\5.12.12\msvc2019 -DCMAKE_TOOLCHAIN_FILE=d:/vcpkg/scripts/buildsystems/vcpkg.cmake mkdir Debug mkdir Release mkdir plugins\Debug mkdir plugins\Release cmake --build . --config Debug cmake --build . --config Release ``` ## Replace the data folder. Manually copy parent data folder inside compiled output: "build/Debug/" ``` copy ..\..\data .\Debug\ ``` It should also consist: [data\stk\rawwaves](https://github.com/thestk/stk/tree/master/rawwaves) * directory where plugins will compile (reference only, auto created during the compilation) ``` mkdir plugins\Debug ``` * Reuse compiled plugins for main binaries. ``` cd Debug mklink /d plugins ..\plugins\Debug REM Reuse release version plugins for lmms.exe release version cd .. cd Release mklink /d plugins ..\plugins\Release ``` * open lmms.sln in Visual Studio * Unload 32bit projects from Visual Studio - `RemoteVstPlugin32` project * Compile! * Run :-) You will get lmms.exe at: build/Debug/ folder. I have not tested with Release build option. ## Plugins that are difficult None of the ladspa plugins compile natively. So, please copy them directly into plugins/ladspa folder from outside. You should first install with an official copy of LMMS installer to get this folder. - ladspa/*.dll copied directly into (imp_1199.dll, mbeq_1197.dll, pitch_scale_1193.dll, pitch_scale_1194.dll) - sf2player.dll - compiled/built but does not run well ## Other notes * Uses Microphone during the LMMS * Gigabytes of overall downloads * Gigabytes of total hard disk usage * Taking a lot of time to complete the proces * All projects are listed in same hierarchy. * For example, one language translation becomes a project on the top hierarchy of the lmms.sln file. * Translation projects, and application projects are mixed together. * Packaging, Installation, Uninstallation not considered. * Release mode build not considered. Hope, you builds were successful!