greynewell / musegpt

Local LLMs in your DAW!
https://musegpt.org/
GNU Affero General Public License v3.0
33 stars 1 forks source link

Fix windows build #9

Closed greynewell closed 1 month ago

greynewell commented 1 month ago

In GitHub Actions runner, build is not working:

Screenshot 2024-09-14 at 10 10 08 AM

I would imagine Windows builds are not working across the board, but I don't have the hardware to test/fix.

greynewell commented 1 month ago

Now that I added powershell scripts in #17, I can see the GitHub actions run is failing: https://github.com/greynewell/musegpt/actions/runs/10896300308/job/30235880066?pr=16

We're getting the following error:

-- Finished setting up juceaide
CMake Warning at JUCE/extras/Build/CMake/FindWebView2.cmake:67 (message):
  WebView2 wasn't found in the the local NuGet folder.

  To install NuGet and the WebView2 package containing the statically linked
  library, open a PowerShell and issue the following commands

  > Register-PackageSource -provider NuGet -name nugetRepository -location
  https://www.nuget.org/api/v2

  > Install-Package Microsoft.Web.WebView2 -Scope CurrentUser
  -RequiredVersion 1.0.1901.177 -Source nugetRepository
-- Configuring incomplete, errors occurred!

  Alternatively you can use the JUCE_WEBVIEW2_PACKAGE_LOCATION CMake variable
  to specify the directory where this find script is looking for the
  *Microsoft.Web.WebView2* package directory.
Call Stack (most recent call first):
  JUCE/extras/Build/CMake/JUCEUtils.cmake:298 (find_package)
  JUCE/extras/Build/CMake/JUCEUtils.cmake:2066 (_juce_link_optional_libraries)
  JUCE/extras/Build/CMake/JUCEUtils.cmake:2111 (_juce_initialise_target)
  CMakeLists.txt:7 (juce_add_plugin)

CMake Error at C:/Program Files/CMake/share/cmake-3.30/Modules/FindPackageHandleStandardArgs.cmake:233 (message):
  Could NOT find WebView2 (missing: WebView2_include_dir WebView2_library)
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.30/Modules/FindPackageHandleStandardArgs.cmake:603 (_FPHSA_FAILURE_MESSAGE)
  JUCE/extras/Build/CMake/FindWebView2.cmake:80 (find_package_handle_standard_args)
  JUCE/extras/Build/CMake/JUCEUtils.cmake:298 (find_package)
  JUCE/extras/Build/CMake/JUCEUtils.cmake:2066 (_juce_link_optional_libraries)
  JUCE/extras/Build/CMake/JUCEUtils.cmake:2111 (_juce_initialise_target)
  CMakeLists.txt:7 (juce_add_plugin)

MSBuild version 17.11.2+c078802d4 for .NET Framework
MSBUILD : error MSB1009: Project file does not exist.
Switch: ALL_BUILD.vcxproj

Error: Process completed with exit code 1.

I remember something about this in the JUCE documentation, I'll look it up and link it here.

greynewell commented 1 month ago

We now have a new error, uncovered after we removed the requirement for WebView 2:

-- Build files have been written to: D:/a/musegpt/musegpt/build/release
MSBuild version 17.11.2+c078802d4 for .NET Framework

  Checking File Globs
  1>Checking Build System
  Generating llama-server
  Error copying file "D:/a/musegpt/musegpt/build/llama.cpp/bin/llama-server" to "D:/a/musegpt/musegpt/build/release/llama-server".
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(254,5): error MSB8066: Custom build for 'D:\a\musegpt\musegpt\build\release\CMakeFiles\4fa0d497942fa91563e805352029f1b0\llama-server.rule;D:\a\musegpt\musegpt\build\release\CMakeFiles\514306aa5895e309126eeecac7f2b4b5\copy_llama_server.rule;D:\a\musegpt\musegpt\CMakeLists.txt' exited with code 1. [D:\a\musegpt\musegpt\build\release\copy_llama_server.vcxproj]
  Generating musegpt_artefacts/JuceLibraryCode/musegpt_resources.rc
  Building Custom Rule D:/a/musegpt/musegpt/CMakeLists.txt
  musegpt_rc_lib.vcxproj -> D:\a\musegpt\musegpt\build\release\musegpt_rc_lib.dir\Release\musegpt_rc_lib.lib
  Generating musegpt_artefacts/JuceLibraryCode/JuceHeader.h
  Generating llama-server
  Error copying file "D:/a/musegpt/musegpt/build/llama.cpp/bin/llama-server" to "D:/a/musegpt/musegpt/build/release/llama-server".
C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\Microsoft.CppCommon.targets(254,5): error MSB8066: Custom build for 'D:\a\musegpt\musegpt\build\release\CMakeFiles\2448d5eda35e27381f7e46a40e32cd4b\JuceHeader.h.rule;D:\a\musegpt\musegpt\build\release\CMakeFiles\4fa0d497942fa91563e805352029f1b0\llama-server.rule;D:\a\musegpt\musegpt\CMakeLists.txt' exited with code 1. [D:\a\musegpt\musegpt\build\release\musegpt.vcxproj]
  Building Custom Rule D:/a/musegpt/musegpt/CMakeLists.txt
  juce_VST3ManifestHelper.cpp
  juce_vst3_helper.vcxproj -> D:\a\musegpt\musegpt\build\release\Release\juce_vst3_helper.exe

Error: Process completed with exit code 1.
greynewell commented 1 month ago

I opened a variety of PRs with attempted fixes, notably: https://github.com/greynewell/musegpt/pull/20 Since I can't test this on my own hardware, this is going to be on hold for a little while.

greynewell commented 1 month ago

On second thought, I can try to debug the build process in a VM. Will try tomorrow.