build scripts checkpoint

This commit is contained in:
2026-01-21 22:31:25 -06:00
parent fac95b1bae
commit 1acbbce033
4 changed files with 71 additions and 56 deletions

View File

@@ -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})

View File

@@ -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

View File

@@ -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
#>

View File

@@ -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