• Dear Cerberus X User!

    As we prepare to transition the forum ownership from Mike to Phil (TripleHead GmbH), we need your explicit consent to transfer your user data in accordance with our amended Terms and Rules in order to be compliant with data protection laws.

    Important: If you accept the amended Terms and Rules, you agree to the transfer of your user data to the future forum owner!

    Please read the new Terms and Rules below, check the box to agree, and click "Accept" to continue enjoying your Cerberus X Forum experience. The deadline for consent is April 5, 2024.

    Do not accept the amended Terms and Rules if you do not wish your personal data to be transferred to the future forum owner!

    Accepting ensures:

    - Continued access to your account with a short break for the actual transfer.

    - Retention of your data under the same terms.

    Without consent:

    - You don't have further access to your forum user account.

    - Your account and personal data will be deleted after April 5, 2024.

    - Public posts remain, but usernames indicating real identity will be anonymized. If you disagree with a fictitious name you have the option to contact us so we can find a name that is acceptable to you.

    We hope to keep you in our community and see you on the forum soon!

    All the best

    Your Cerberus X Team

How do I compile Cerberus from source on MacOS?

SimonVD

New member
Tutorial Author
Joined
Dec 22, 2019
Messages
39
Even a bash script would be a start but I couldn't find anything...
 
Sorry can't help here. I use a previous version of Trans to compile a new one.
 
Thanks anyway.

Is there a reason that you can't share the binary and the steps you take to compile the source?
 
What binary?

I do everything manually. May I ask what you want to do?

Anyway, out of memory, here is what I do....

MakeDocs

Open TED, load src/Makedocs/makedocs.cxs
Select C++ Target
Build
Replace the version in the bin folder with the one you just have created. Of course you need to rename it.

Trans

Open TED, load src/Trans/makedocs.cxs
Select C++ Target
Build
Replace the version in the bin folder with the one you just have created. Of course you need to rename it.

Ted

Open QT-Creator, load the project
Modify the settings to your system
Build it
Run the Mac-Deploy script which you need to modify to your setup.

Launcher

Open BlitzMax-NG, load src/launcher/launcher.bmx
Build it
Copy it over to the one located inside the main CX folder.
 
First of all, thank you, very, very much for keeping available Cerberus X... I'm all new to Cerberus and I love it so far... and thanks again for sharing the steps, it really helped me to create a mental image about the process.


What binary?

I thought that you begin with a special "Trans" binary that I don't have but now I see that I was wrong.

May I ask what you want to do?

Sure. I'd like know that I'd be able to fix some simple problems myself when I encounter them without waiting the next release plus, in time, I'd learn to contribute to the project.

For example, yesterday I was learning documenting my code and found out that...
Code:
Import "file"
...breaks the Makedocs parser when I document the code directly in the Cerberus source files as opposed to using an external file. See related forum post. Now, still not knowing If I will be able to fix the problem myself or not... I'll look into the Makedocs source since I know that I can compile it.
 
Nice! Always good to see people willing to contribute =)

For example, yesterday I was learning documenting my code and found out that...
Code:
Import "file"
...breaks the Makedocs parser when I document the code directly in the Cerberus source files as opposed to using an external file. See related forum post. Now, still not knowing If I will be able to fix the problem myself or not... I'll look into the Makedocs source since I know that I can compile it.

That'll be in makedocs' parser.cxs: Method ParseDecl sees the import keyword, then calls ParseImportDecl, which throws an error, if there's no modpath following (modpath = module scopes & module name with dots in between). Instead of throwing an error, it should either
  • just ignore it and not append the import decl (a bit ugly)
  • warn* à la "import statement not followed by valid modpath" and not append the import decl (better)
  • check, if instead of a modpath it's a filepath (a.k.a some string in double quotes) and if so, quietly not append the import decl and only otherwise throw an error (best)
* I think there's also a possibility to output warnings which don't abort the process.

I hope that helps ;-)
 
Back
Top Bottom