build scripts checkpoint
This commit is contained in:
@@ -111,18 +111,6 @@ if (WIN32)
|
|||||||
RtMidi::RtMidi
|
RtMidi::RtMidi
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_command(TARGET metabolus POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
||||||
"C:/rtaudio/bin/rtaudio.dll"
|
|
||||||
$<TARGET_FILE_DIR:metabolus>
|
|
||||||
)
|
|
||||||
|
|
||||||
add_custom_command(TARGET metabolus POST_BUILD
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
||||||
"C:/rtmidi/bin/rtmidi.dll"
|
|
||||||
$<TARGET_FILE_DIR:metabolus>
|
|
||||||
)
|
|
||||||
|
|
||||||
else()
|
else()
|
||||||
target_include_directories(metabolus PRIVATE ${RTAUDIO_INCLUDE_DIRS} ${RTMIDI_INCLUDE_DIRS})
|
target_include_directories(metabolus PRIVATE ${RTAUDIO_INCLUDE_DIRS} ${RTMIDI_INCLUDE_DIRS})
|
||||||
target_link_libraries(metabolus PRIVATE Qt6::Widgets ${RTAUDIO_LIBRARIES} ${RTMIDI_LIBRARIES})
|
target_link_libraries(metabolus PRIVATE Qt6::Widgets ${RTAUDIO_LIBRARIES} ${RTMIDI_LIBRARIES})
|
||||||
|
|||||||
48
README.md
48
README.md
@@ -37,11 +37,45 @@ This synthesizer isn't very good, but it's neat :3
|
|||||||
- [ ] Noise
|
- [ ] Noise
|
||||||
- [ ] LFO modulation
|
- [ ] LFO modulation
|
||||||
|
|
||||||
## setup
|
## Build Instructions
|
||||||
TODO: instructions on build setup
|
|
||||||
TODO: add dependencies into lib
|
|
||||||
TODO: autobuild libs in build scripts
|
|
||||||
Package Dependencies: Qt 6, RtAudio, RtMidi
|
|
||||||
|
|
||||||
$ ./scripts/build.sh
|
Prerequisites:
|
||||||
PS ./scripts/build.bat
|
CMake: https://cmake.org/download/
|
||||||
|
Ninja: https://github.com/ninja-build/ninja/releases
|
||||||
|
|
||||||
|
Windows: MSVC
|
||||||
|
Linux: GCC
|
||||||
|
|
||||||
|
Clone repository
|
||||||
|
```PowerShell
|
||||||
|
git clone https://github.com/Blitblank/metabalus.git --recursive
|
||||||
|
```
|
||||||
|
or if you forgot to --recursive:
|
||||||
|
```PowerShell
|
||||||
|
git clone https://github.com/Blitblank/metabalus.git
|
||||||
|
git submodule update --init --recursive
|
||||||
|
```
|
||||||
|
Build. The script will build and install dependencies automatically
|
||||||
|
|
||||||
|
On Windows (MSVC):
|
||||||
|
```PowerShell
|
||||||
|
.\scripts\build.ps1
|
||||||
|
```
|
||||||
|
|
||||||
|
On Linux (GCC):
|
||||||
|
```Bash
|
||||||
|
./scripts/build.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
Configure the CMake/build script if you have issues
|
||||||
|
|
||||||
|
To clean:
|
||||||
|
```
|
||||||
|
.\scripts\clean.ps1
|
||||||
|
./scripts/clean.sh
|
||||||
|
```
|
||||||
|
Note: dependencies are built into build/lib, so don't delete that unless you want to rebuild qt which takes forever :)
|
||||||
|
Use the install_dependencies script to manually install dependencies.
|
||||||
|
|
||||||
|
Build troubleshooting:
|
||||||
|
On windows, `bcdedit /set IncreaseUserVa 3072` solved cc1plus.exe: out of memory errors while building qt for me
|
||||||
|
|||||||
@@ -1,13 +1,15 @@
|
|||||||
|
|
||||||
|
$PROJECT_ROOT = $PWD
|
||||||
|
|
||||||
# config
|
# config
|
||||||
|
|
||||||
$BUILD_DIR = "build"
|
$BUILD_DIR = "$PWD/build"
|
||||||
$CONFIG = "Release"
|
$CONFIG = "Release"
|
||||||
|
|
||||||
# change these to the build libs
|
# change these to the build libs
|
||||||
$QT_ROOT = "C:\Qt\6.10.1\msvc2022_64"
|
$QT_ROOT = "$BUILD_DIR\lib\qt\install"
|
||||||
$RTAUDIO_ROOT = "C:\rtaudio"
|
$RTAUDIO_ROOT = "$BUILD_DIR\lib\rtaudio"
|
||||||
$RTMIDI_ROOT = "C:\rtmidi"
|
$RTMIDI_ROOT = "$BUILD_DIR\lib\rtmidi"
|
||||||
|
|
||||||
# setup
|
# setup
|
||||||
|
|
||||||
@@ -21,7 +23,7 @@ if (-not (Test-Path -Path $BUILD_DIR)) {
|
|||||||
|
|
||||||
# detect dependencies
|
# detect dependencies
|
||||||
|
|
||||||
$libraries = @("qt", "rtaudio", "rtmidi", "yaml-cpp")
|
$libraries = @("qt", "rtaudio", "rtmidi")
|
||||||
$dependencies_found = 0
|
$dependencies_found = 0
|
||||||
foreach ($lib in $libraries) {
|
foreach ($lib in $libraries) {
|
||||||
if (Test-Path -Path ".\build\lib\$lib") {
|
if (Test-Path -Path ".\build\lib\$lib") {
|
||||||
@@ -34,44 +36,27 @@ foreach ($lib in $libraries) {
|
|||||||
|
|
||||||
if (-not ($dependencies_found -eq $libraries.Count)) {
|
if (-not ($dependencies_found -eq $libraries.Count)) {
|
||||||
& "scripts\install_dependencies.ps1"
|
& "scripts\install_dependencies.ps1"
|
||||||
|
} else {
|
||||||
|
Write-Host "All dependencies detected, skipping depency install step..."
|
||||||
}
|
}
|
||||||
|
|
||||||
# configure
|
# configure
|
||||||
|
Write-Host "Configuring metabolus..."
|
||||||
<#
|
cmake -S . -B $BUILD_DIR -G Ninja -DCMAKE_BUILD_TYPE=$CONFIG -DQt6_ROOT="$QT_ROOT\lib\cmake\Qt6" -DRTAUDIO_ROOT=$RTAUDIO_ROOT -DRTMIDI_ROOT=$RTMIDI_ROOT
|
||||||
cmake -S . -B $BUILD_DIR ^
|
|
||||||
-G Ninja ^
|
|
||||||
-DCMAKE_BUILD_TYPE=$CONFIG ^
|
|
||||||
-DRTAUDIO_ROOT=$RTAUDIO_ROOT ^
|
|
||||||
-DRTMIDI_ROOT=$RTMIDI_ROOT
|
|
||||||
|
|
||||||
|
|
||||||
if errorlevel 1 goto error
|
|
||||||
|
|
||||||
# build
|
# build
|
||||||
|
Write-Host "Building metabolus..."
|
||||||
cmake --build $BUILD_DIR
|
cmake --build $BUILD_DIR
|
||||||
|
|
||||||
if errorlevel 1 goto error
|
|
||||||
|
|
||||||
# link dlls
|
# link dlls
|
||||||
|
Write-Host "Deploying metabolus..."
|
||||||
|
cd $BUILD_DIR
|
||||||
|
|
||||||
cd %BUILD_DIR%
|
& "$QT_ROOT\bin\windeployqt.exe" metabolus.exe
|
||||||
|
|
||||||
windeployqt metabolus.exe
|
Copy-Item -Path "$RTAUDIO_ROOT\bin\rtaudio.dll" -Destination .
|
||||||
|
Copy-Item -Path "$RTMIDI_ROOT\bin\rtmidi.dll" -Destination .
|
||||||
|
|
||||||
copy "%RTAUDIO_ROOT%\bin\rtaudio.dll" .
|
|
||||||
copy "%RTMIDI_ROOT%\bin\rtmidi.dll" .
|
|
||||||
|
|
||||||
echo.
|
# TODO: allow input of an external qt install because this one is huge
|
||||||
echo Build successful
|
# TODO: remove unnecessary qt modules bc why is this install like 80 gb
|
||||||
goto end
|
|
||||||
|
|
||||||
:error
|
|
||||||
echo.
|
|
||||||
echo Build failed
|
|
||||||
exit /b 1
|
|
||||||
|
|
||||||
:end
|
|
||||||
endlocal
|
|
||||||
pause
|
|
||||||
#>
|
|
||||||
|
|||||||
@@ -2,12 +2,20 @@
|
|||||||
echo "Installing dependencies ... "
|
echo "Installing dependencies ... "
|
||||||
|
|
||||||
$project_root = $PWD
|
$project_root = $PWD
|
||||||
|
|
||||||
|
if (-not (Test-Path -Path "$PWD\build\lib")) {
|
||||||
|
mkdir "$PWD\build\lib"
|
||||||
|
}
|
||||||
|
|
||||||
$build_lib_dir = "$PWD\build\lib"
|
$build_lib_dir = "$PWD\build\lib"
|
||||||
|
|
||||||
|
|
||||||
# qt
|
# qt
|
||||||
mkdir "$build_lib_dir\qt"
|
mkdir "$build_lib_dir\qt" -Force
|
||||||
cd $project_root\lib\qtbase
|
#cd $project_root\lib\qt5
|
||||||
|
cd $build_lib_dir\qt
|
||||||
|
& "$project_root\lib\qt5\configure.bat" -prefix .\install -submodules qttools,qtbase -widgets
|
||||||
|
cmake --build . --parallel
|
||||||
|
cmake --install .
|
||||||
|
|
||||||
|
|
||||||
# rtaudio
|
# rtaudio
|
||||||
|
|||||||
Reference in New Issue
Block a user