Hi, I have a project where I have to call Projucer from the command line to generate the projects for compilation.
I am running this command via Github Actions:
Projucer --resave MyProject.jucer
It responds with on both Windows and OSX:
Re-saving file: MyProject.jucer
The issue is that on Windows, quite often there the ‘Build’ folder does not get generated:
MSBUILD : error MSB1009: Project file does not exist.
The issue is intermittent on Windows, and does not happen on OSX.
Tested on the master branch of GitHub - juce-framework/JUCE: JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, RTAS and AAX audio plug-ins.
This is possibly related to the fact that Github Actions’ default Windows shell is Powershell.
Switching to CMD seems to have helped, at least from initial tests.
Does this also happen locally and/or is the working directory a network share?
I’m so far unable to trigger this on my local machine but will continue to look into this.
Happens locally and I can reproduce 100% of the time.
The easiest way would be to install Powershell7 and launch Projucer --resave MyProject.jucer.
You should see that the prompt does not look like it comes back but once you start typing, you will overwrite the stdout from projucer.exe, which I think is related to the issue.
I’ve tested on the PowerShell that was available in Windows 10 and I explicitly downloaded v7, I was unable to create a scenario where ‘Builds’ does not get generated. I do however see the stdout flushing issue but unsure if it is related yet.
Are you accessing the ‘Builds’ directory immediately after running the ‘–resave’ command? Does refreshing the directory in Explorer ever reveal the directory?
I originally run into this issue inside of Github actions, so if you have a chance to test it there, you would be able to use the exact same environment as I have (windows-2019).
This is an Actions syntax I used:
- name: Compile Projucer
run: cmake --build modules/JUCE/cmake-build --target Projucer --config Release
- name: Set JUCE global paths
run: ./modules/JUCE/cmake-build/extras/Projucer/Projucer_artefacts/Release/Projucer.exe --set-global-search-path windows defaultJuceModulePath ./modules/JUCE/modules/
- name: Configure Projucer Windows
run: ./modules/JUCE/cmake-build/extras/Projucer/Projucer_artefacts/Release/Projucer --resave OneKnob.jucer
- name: Windows Compile
run: msbuild /m project.sln' /t:build /p:Configuration=release /p:Platform=x64
Modifying ‘Configure Projucer Windows’ by adding “shell: cmd” fixed the issue (plus switching slashes to backslashes so CMD can understand it).
Yep. That fails for me too on Github Actions. I can’t make it happen locally, however. I will continue digging.