Virtual Machine solutions for cross-platform development
-
@Christoph-Hart said in Virtual Machine solutions for cross-platform development:
Yes, you can use HISE as command line tool and create a shell script that compiles all versions and builds an installer automatically. This is required for any automated build process, so you can run CI tools (eg. Jenkins).
Okay, I have not used such CI tools before but Jenkins (which I just saw a nice introduction to) seems great. However also more time to get into more tech I don´t already use. But If I was to do that, how would you set that up in detail? (Assuming you have 3 physical machines, for simplicity sake)
Bare in mind, I don´t use git or have ever used it, I do know the terminal and shell script (bash on mac/linux).
If I got it correctly:
- use git to commit/sync? to all machines, which are also running git in their command line environments
- then use Jenkins on my main machine to push the command to build the latest committed code on the other machines, Jenkins (which is also installed on all other machines) would execute and build the latest shell-script on each machine.
Right?
(also, since shell-script does not natively run on windows, what´s the tool for windows to cover or handle that?)
-
@dustbro said in Virtual Machine solutions for cross-platform development:
Give it a try and let us know what happens. I ended up building a dual boot Win10/hackintosh, which is working great so far.
Both OS share a "work drive" formatted exFAT so I can work with the same data.Okay, seems like a great option, using a hack is much easier today than just a few years ago. So you do not build at all for Linux right now?
@Lindon said in Virtual Machine solutions for cross-platform development:
and I just followed Christophs advice and bought a second hand mac mini...very cheap
Mac minis are a great option and they will be sufficient for both windows and macOS. If you got money for only one, get a mac and dual-boot/bootcamp. An older mac will ensure backwards compatibility as a mac can only be used with the OS version it was shipped with and up. So a brand new mac = nothing but Catalina and up. A pretty big "cons" for a new Apple computer.
-
Mac minis are a great option and they will be sufficient for both windows and macOS
An GNU/Linux. I've set mine up with a triple boot.
If I got it correctly:
use git to commit/sync? to all machines, which are also running git in their command line environmentsI wouldn't use git as a syncing tool (I did, but not any more). I use git to manage code versions and I keep everything up to date on my main system. I then use network file sharing so that the Mac Mini has access to the HISE project files on my main system.
This means I don't need to manage multiple versions of HISE or my projects, everything is on the main system.
-
@d-healey said in Virtual Machine solutions for cross-platform development:
An GNU/Linux. I've set mine up with a triple boot.
Cool, nice to hear it can be done on Linux as well.
I then use network file sharing so that the Mac Mini has access to the HISE project files on my main system.
This means I don't need to manage multiple versions of HISE or my projects, everything is on the main system.So the networking lets you just get in and copy the files over to the system you´re working on, or you actually run it from the original place?
And the HISE files are not specific to any OS, I guess, so the whole HISE source folder is just read in place then? From the original machine?
-
@d-healey said in Virtual Machine solutions for cross-platform development:
This means I don't need to manage multiple versions of HISE or my projects, everything is on the main system.
And do you build it by opening HISE as an application and running the build via the app on each system or use a terminal script on all machines? (just curious)
-
So the networking lets you just get in and copy the files over to the system you´re working on, or you actually run it from the original place?
And the HISE files are not specific to any OS, I guess, so the whole HISE source folder is just read in place then? From the original machine?I run the files from the main system. I of course still have to build HISE on each OS first, but these executables all reside on the main system too.
And do you build it by opening HISE as an application and running the build via the app on each system or use a terminal script on all machines? (just curious)
I use build scripts, much faster, and I can just leave it to build everything while I get on with other stuff.
-
I am running a Jenkins server on a Mac Mini that is connected to a Windows PC as slave machine in my private network. They automatically pull the latest state from GitHub and launch the build scripts, then upload the signed installers to Dropbox when they are ready.
The setup took me at least two annoying weeks to implement, but it's the most convenient and bulletproof workflow.
-
@d-healey said in Virtual Machine solutions for cross-platform development:
I use build scripts, much faster, and I can just leave it to build everything while I get on with other stuff.
@Christoph-Hart said in Virtual Machine solutions for cross-platform development:
I am running a Jenkins server on a Mac Mini that is connected to a Windows PC as slave machine in my private network. They automatically pull the latest state from GitHub and launch the build scripts...
I found @Christoph-Hart´s build scripts in the example projects. Lot´s of good work already done
Are you both using those?
What language are they written in? Is it windows shell script / batch script?
Or are you using Linux/Mac bash/shell-script and, on Windows, running that in git-bash or something to run bash on windows?
-
@andioak said in Virtual Machine solutions for cross-platform development:
I found @Christoph-Hart´s build scripts in the example projects. Lot´s of good work already done
Are you both using those?
Mine are heavily modified from scripts Christoph provided me with a few years ago, so they are probably similar to Christoph's example scripts.
What language are they written in? Is it windows shell script / batch script?
Or are you using Linux/Mac bash/shell-script and, on Windows, running that in git-bash or something to run bash on windows?Bash on GNU/Linux and MacOS. Batch on Windows.
-
Building and testing are two different beasts. Graphics are rarely supported or not using virtual or headless build systems. A Mac will run all the OS's you need if you have a legitimate licence for windows and Linux is of course open source. Can recommend an SSD for quickly booting from system to system. Some CLI's will compile for a fee but you will need a system or users to test builds on multiple hosts.
-
@d-healey said in Virtual Machine solutions for cross-platform development:
Bash on GNU/Linux and MacOS. Batch on Windows.
Thanks! Could I bother you for an example of your build script, the bash version?
-
@danial said in Virtual Machine solutions for cross-platform development:
Building and testing are two different beasts. Graphics are rarely supported or not using virtual or headless build systems...
True, and I want to make it clear that I never intend to test out the softwares on anything less than a real physical machine with the OS in question installed on. So this virtual machine stuff is only for build processes. All systems could be started on one machine using Jenkins and two VBox OS:es.
-
@andioak said in Virtual Machine solutions for cross-platform development:
Thanks! Could I bother you for an example of your build script, the bash version?
superOrgan/Packaging at master · augustofilocamo/superOrgan
CollaborativeOrgan. Contribute to augustofilocamo/superOrgan development by creating an account on GitHub.
GitHub (github.com)
-
@d-healey Fantabulous!! Thanks a bunch!
-
I'm posting here because it's the only feed I've found here. i just installed apple bigsur and xcode 12.3 on a windows via vmware. my bigsur runs like clockwork. in short, I do the usual procedure, sdk, x code command line, Ipp. this is all ok. I am having a problem with juce which tells me that the modules are missing. something that never happens when I want to compile on windows or mac. so this problem may be the first in a long series but i will explain to you why i intend to do this. I opened a ticket with apple developper concerning the problem of audio units in logic pro with M1 processors. the apple engineer m certified that it was necessary to configure xcode for silicone processors otherwise logic pro will not open the plugins (rosetta disables logic pro plugins in this case and none are executable). you should know that all software, except logic pro, accept vst / plugin compiled on old macs provided they are notarized. therefore, not having the possibility of compiling on a real mac because the bigsur update is not possible (mac mini 2013 64bits), I therefore wanted to use a virtual machine. and the problems begin
. so i open projucer, i load the hise standalone project, directly i have a missing module notification. being completely incompetent with projucer, how to point the correct path of the modules? sorry, I open the file hisestandalone.jucer directly. so i know it is not advisable to compile with such a recent version of mac and xcode. but according to apple engineers, there should be no problem. thank you for your feedback;)
-
@yall hello there. While the problems can be many running on virtual machines as a concept, macOS is at least with the proper drivers on VMware pretty decent.
You probably have either an error or incompatibility between HISE and JUCE, or a HISE setting not correctly entered. Is the hise path correctly entered when you built HISE?
JUCE issues may be the thing here, where JUCE 5 does not support XCode 12. I have not tried Xcode past version 8.3.3.
Did the Apple engineer specify that you needed to use Big Sur at all? Or could you install the XCode Silicone additions or libraries on earlier versions? If so, the issues may only be the actual clang or c++ compiler flags and the necessary libs, not the actual OS, or even XCode. Ask him about that, and please get back to me, I want to support the Silicone M1 chips too.