#Igor completes without building project in command line on Windows for Mac

1 messages · Page 1 of 1 (latest)

wintry wedge
#

I'm setting up a building pipeline to export to Windows/Mac/Linux using command line tools.

  • It works fine for Windows but I'm having trouble setting it up for Mac (haven't tried Linux yet).
  • Building for Mac from the IDE also works.
  • Building for Linux from the IDE and CLI works.
  • Igor doesn't give me any errors apart from No target options set, build will fail! when trying to clean the project, which it doesn't give when trying to package, so not sure how to start debugging this.

Grateful for any pointers !

wintry wedge
#

Here's my bat file (commented out exports to Windows and Linux for now)

setlocal 
set _gm_user_folder=%appdata%\GameMakerStudio2\tom_133823
set _gm_runtime_folder=C:\ProgramData\GameMakerStudio2\Cache\runtimes\runtime-2023.11.1.160
set _gm_project_folder="C:\GMS\Chronique des Silencieux.yyp"
set _gm_cache_folder="C:\GMBuildCache"
set _gm_device_json=%_gm_user_folder%\devices.json
set _gm_licence_plist=%_gm_user_folder%\licence.plist

pause
cd %_gm_runtime_folder%\bin\igor\windows\x64"
REM Igor.exe /uf=%_gm_user_folder% /rp=%_gm_runtime_folder% /project=%_gm_project_folder% /of="C:\CDS-Builds\Windows\Chronique des Silencieux" /cache=%_gm_cache_folder% -- Windows Clean
REM Igor.exe /uf=%_gm_user_folder% /rp=%_gm_runtime_folder% /project=%_gm_project_folder% /runtime=YYC /of="C:\CDS-Builds\Windows\Chronique des Silencieux" /cache=%_gm_cache_folder% /tf="C:\CDS-Builds\Windows.zip" /config=Release_Steam -- Windows PackageZip
REM pause
Igor.exe /uf=%_gm_user_folder% /rp=%_gm_runtime_folder% /project=%_gm_project_folder% /cache=%_gm_cache_folder% /of="C:\CDS-Builds\Mac\Chronique des Silencieux" -- Mac Clean
Igor.exe /uf=%_gm_user_folder% /rp=%_gm_runtime_folder% /project=%_gm_project_folder% /cache=%_gm_cache_folder% /lf=%_gm_licence_plist% /runtime=YYC /of="C:\CDS-Builds\Mac\Chronique des Silencieux" /tf="C:\CDS-Builds\Mac.zip" /config=Release_Steam  /device="Mac Mini" /df=%_gm_device_json% -- Mac Package
pause
REM Igor.exe /uf=%_gm_user_folder% /rp=%_gm_runtime_folder% /project=%_gm_project_folder% /cache=%_gm_cache_folder% /of="C:\CDS-Builds\Linux\Chronique des Silencieux" -- Linux Clean
REM Igor.exe /uf=%_gm_user_folder% /rp=%_gm_runtime_folder% /project=%_gm_project_folder% /cache=%_gm_cache_folder% /runtime=YYC /of="C:\CDS-Builds\Linux\Chronique des Silencieux" /tf="C:\CDS-Builds\Linux.zip" /config=Release_Steam  /device="Ubuntu on Dell" -- Linux Package

endlocal```
#

Here is the full output when doing Mac Clean and then Mac Package :

Options: C:\Users\user\AppData\Roaming\GameMakerStudio2\tom_133823\local_settings.json
Setting up the Asset compiler
Found Project Format 2
C:/GMS/extensions/__VinylBuildScripts/__VinylBuildScripts.yy: C:/GMS/extensions/__VinylBuildScripts/__VinylBuildScripts.yy(21,70): GMSC Error: Unexpected JSON property 'name'.
+++ ORIGINAL SERIALISATION SUCCESSFUL LOAD AND LINK TIME: 1383.9229ms
Loaded Project: Chronique des Silencieux
finished.
Found Project Format 2
Release build
Options: C:\GMBuildCache\PlatformOptions.json
No target options set, build will fail!
Options: C:\GMBuildCache\ExtensionOptions.json
System.NullReferenceException: Object reference not set to an instance of an object.
   at Igor.MacBuilder.Clean()
Igor complete.
Options: C:\ProgramData\GameMakerStudio2\Cache\runtimes\runtime-2023.11.1.160\bin\platform_setting_defaults.json
Options: C:\Users\user\AppData\Roaming\GameMakerStudio2\tom_133823\local_settings.json
Setting up the Asset compiler
Found Project Format 2
C:/GMS/extensions/__VinylBuildScripts/__VinylBuildScripts.yy: C:/GMS/extensions/__VinylBuildScripts/__VinylBuildScripts.yy(21,70): GMSC Error: Unexpected JSON property 'name'.
Loaded Project: GMPresetParticles
finished.
Release build
Options: C:\GMBuildCache\PlatformOptions.json
mkdir -p ~/.ssh
cat ~/.ssh/authorized_keys
pwd
remote_install_path : /Users/tomallibert/GameMakerStudio2/Mac/GM_MAC/Chronique_des_Silencieux
Options: C:\GMBuildCache\ExtensionOptions.json
Igor complete.
Igor complete.```
indigo prawn
#

It's been a hot minute for me, but right off the bat you don't actually need to specify the user folder and the license file

#

Only one of them needs to be specified

#

User folder can access the license file from there

#

Beyond that, it seems a little weird that runtime wasn't specified at all for Windows/Mac. Maybe it's something that's not necessary but I do usually prefer to try and be explicit at least. (And especially with in regards to Steam, Mac needs to be compiled for YYC anyway)

wintry wedge
#

You mean apart from the runtime folder (%gm_runtime_folder%) ? It's the only argument related to the runtime I've seen in the manual

indigo prawn
#

No I meant /runtime=YYC or /runtime=VM

#

Oh wait

#

I see it now lol

wintry wedge
#

Since it's working on a remote Linux device, I'm expecting it to be a Mac OS shenanigan rather than an issue on the Igor side

#

Something about authentification that's not the same when doing CLI compared to IDE

indigo prawn
#

Well I can't really say what else could be wrong

#

igor has been able to make a connection to your Mac from what I can tell

#

Only other thing I could narrow down to is that you're not logged into an account

#

Or don't have a license file present

#

Which CLI straight up does not work without either, because GameMaker limits you to just testing with CLI (and only on two platforms, one where the IDE is based on)

wintry wedge
#

But how could Linux work and not Mac ? These things are all in the same user folder right ?

indigo prawn
#

That's what I'm saying lol

#

I don't know why it's not working, it clearly should

#

Provided that you're targeted at a valid user folder or license file, then CLI should work just fine for all non-console platforms

#

Maybe it's good to confirm

#

Is Mac Mini correct?

wintry wedge
#

Written like in the IDE

#

Unless I need to provide the host name rather than device name

indigo prawn
#

Should be the device name

#

Hmmm

#

I think it could be good to narrow something out

#

I have a small tool I keep on myself, mostly private as right now it's not really in a state to be released anywhere

#

But I use it a lot for multiplatform testing

#

I could send you that and see if it works

#

It does require the IDE to run it, but it effectively interrupts your game testing and spins up igor in just about the same way

wintry wedge
indigo prawn
#

DM'd

wintry wedge
#

Btw you are managing to build from Windows to a Mac yourself ?

indigo prawn
#

I haven't done it with igor very very recently (2024.2), but I usually am between the IDE and with my lil tool

#

And with the IDE specifically, exporting