Thanks for doing this TRon!
You are more than welcome carl.
As long as you have/show incentive then I am more than happy to share my knowledge (how minimal it might perhaps be) and please do share what you've learned (if any). There are not that many mac users around so any help is welcome in that regards.
My current setup was created using "fpcupdeluxe" v2.4.0e, and was done by selecting 3.3.1 for FPC and 3.99 for Lazarus. I'd like to keep with these two versions if possible. I'm curious as to how it's a mess, given that I used similar steps to the ones that you outline... Maybe things are just done different(ly) in macOS 😉
It is guessing on my part but based on the evidence so far I believe that you first installed Lazarus+FPC combination in some (specified) directory and later on installed the cross-compiler but doing so system-wide (that or you have another system wide installation done on a previous occasion,and perhaps even removed later but some remnants were left).
There is always the possibility that things are done differently on/for macos but Don (the FPCUpDeluxe maintainer) is pretty consistent when it comes to how FPCUpDeluxe does it setups.
What are "the prerequisites that need to be in place"?
That depends on the platform that you are using. For as far as they are known they are listed
here for all platforms. F.e. for Linux I have to install some packages because Lazarus relies on them but also because some basic development tools are required.
Does this refer to a base FPC/Lazarus installation on which your steps are built upon?
No
FPCUpdeluxe does not require anything else than mentioned. No other Free Pascal compiler or Lazarus is needed. Even stronger I would personally recommend removing at least any system wide installed FPC and/or Lazarus prior to using FPCUpDeluxe as the program itself keeps it very neat and clean.
FPCUpDeluxe tries to download all other requirements automatically for you and install them to designated directories in your installation path.
Do keep in mind that FPCUpdeluxe allows a user to set some customization options as well as allow you to add custom parameters to the build-process thus you can influence some things (but that would then be your own doing/responsibility).
In case FPCUpDeluxe does require some prerequisite that is required (and not automatically installed by FPCUpDeluxe) then it will try and tell what exactly is missing in the progress window (sometimes even with instructions on how to install). Information might differ depending on the host platform though.
Or do you just mean a working OS with a folder called "bin" that's in the OS search path?
No paths, no specific directories and please do not use system wide directories for FPCUpDeluxe's installations. Doing so would defeat the purpose of the program.
It's also not clear from your "fpcupdeluxe" instructions if they will leave me with a Lazarus which runs in macOS but which is able to cross-compile to Windows on demand.
The instructions as shown should do that for you. That is why I tested it
Ofc. with the side-note that platform specific compiler and build-options needs to be accounted for.
Another point is that the "-WM11.0" in the Project Options is to ensure that the resultant macOS executable respond to the macOS theme, dark or light.
Yes, but it is macos specific. It will make the cross-build to windows fail. So the option needs to be enabled when building for macos and disabled when (cross)build for windows. I edited my previous post (later) to refer to the project build-modes option and which contains a link. Please re-read and checkout the link.
UPDATE: Okay I've been looking more closely at your instructions, and given that I'm quite happy with my current 3.3.1 + 3.99 macOS combo. it seems that I only really need to consider the steps from "press the tab cross" onwards, since they seem to deal with the addition of the cross-compiler components.
Correct.
I'm guessing that I need to repeat the...
* select from left X86_64
* select from right windows
* press button "install compiler"
...steps for as many different extra target platforms as I need. These would be Mac (Intel), Linux and Windows.
Again correct
One big warning though:
MAKE SURE THAT YOU SELECT THE CORRECT LAZARUS INSTALLATION PATH PRIOR TO DOING SOI shout it because whenever I download FPCUpDeluxe to test things like this I forget to do that and end up with a system wide installation
Does that sound like a reasonable basis for my next steps?
Yes. but with some side notes.
1. you can have as many different Lazarus installations on your system at the same time (which incorporate the FPC command-line compiler and optional cross-compiler(s)). You can do that as long as they are stored inside another directory (anywhere on your system and where you have access rights).
2. In case you opt for having multiple installations alongside each other then make sure that FPCUpDeluxe points to the correct installation path on you system in case wanting to add new cross-compiler(s) and also make sure you do not accidentally use the wrong version for adding the cross-compiler(s). The versions need to match.
That is what makes it difficult to add a cross-compiler to an already installed trunk versions of Lazarus because it might happen that trunk was updated to support only newer unit versions.
I do not have enough knowledge about FPCUpDeluxe to know if it is able to recognize this situation and react accordingly (I personally do all my installations manually and from source).
3. in case you want a newer trunk version (3.99 for Lazarus and 3.3.1 for FPC) (e.g. update) then you need to select the update button instead (but there is always the small risk that it will be able to bork your current installation so be aware. Also here I do not have enough knowledge about FPCUpDeluxe so please do take precautions and make a backup first to make sure).
In case you do decide to setup different installations on a single system and in case you happen to install f.e. version 3.4 of Lazarus twice (but into different directories) then be aware that to my knowledge FPCUpDeluxe will only create a single link in your startup menu/desktop folder and that might cause confusion. As long as you are aware then it is a situation that can be worked around
Thanks again!
You're welcome. Don't forget to also have some fun !
PS: The bin folder that I used in my example can be located anywhere on your system. It does not even has to be named bin, I simply used it as an example to separate FPCUpDeluxe from the Lazarus installation. They can even be located on different drives if you want to.
Personally I have created a group named "developers" that have access to a user folder named "apps" in which I created the subfolders "fpc" and "lazarus" (e.g. I do not have FPC installed inside the Lazarus folder like FPCUpDeluxe does).
PPS: If you have some time in the future then try to remove the system wide installation from your system. It will remove any (future) confusion.
PPPS: I have attached a tree of my FPCUpDeluxe installation that I used for compiling your project so that you are able to see and/or compare. Of course my x86_64-linux directory would (most probably) be your aarch64-darwin directory