• 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

What I was working on before Xmas - A Cerberus-X Preview

they are changes to the IOS builder.
I was looking in to that last year. With a few extras to set SDK level, code signing and the correct Simulator for that. Involved querying instruments to get various bits of information.
 
I was looking in to that last year. With a few extras to set SDK level, code signing and the correct Simulator for that. Involved querying instruments to get various bits of information.
NICE! Much more enhanced then mine.
 
@VS Console: Just tested out a VS 2013 project using transcc as a code test.
Expected errors and warnings.
Errors no problem to fix.
Warnings.
Some whining about safe versions of character/string copying.
Some about loss of data with covertions.
Some about nonstandard extension used: zero-size array in struct/union.
Some unreferenced variables.

It may get worse with new version of VS.

@iOS: Only problem I have now it that my Apple hardware is just too old to work and test with. I could push it to Xcode 8.2 and iOS 9, but after that it would be pot look.
 
@iOS: Only problem I have now it that my Apple hardware is just too old to work and test with. I could push it to Xcode 8.2 and iOS 9, but after that it would be pot look.
MAybe we could collaborate on that part later this year. Right now I won't have much time for it. Should finish other things first.
 
MAybe we could collaborate on that part later this year
Sounds like a plan. I will dig out the code and clean it up a bit and upload it as a separate git project so not to mess up any main branches.
 
Ok, I have uploaded the changes I missed to the official repro

Edit: Of course, something I changed on my OSX version is not working on windows regarding the AGK target. Back to the drawing board.
 
Last edited:
Edit: Of course, something I changed on my OSX version is not working on windows regarding the AGK target. Back to the drawing board.
I know that feeling. I've got the VS C++Tool compiling with added icons for both MinGW and VS. Just got to work out what's wrong with the rebuildall script for Window when dealing with VS. Then the next task is to knock up a simple resource tools. I think I will just go for the quick and dirty for Window and get the end use to make their own .ico file with instructions on how to set up an icon folder for use.
 
As I've never really use VS2013 much with me being mostly a Linux user. I've started doing some testing of Cerberus generated code with it and discovered that a string
Code:
if(!((t_var).Length()!=0))
never gets evaluated correctly with VS2013 update 5. Later VS compilers don't seem to have a problem with it. I vaguely remember something over on the old Monkey forum being said about some sort of issue. So VS2013 solution files are out and the minimum requirement will be VS2015. This will be a bit of a problem with Ted still needing to be built with Qt5.5 and VS2013 as it would mean needing two compilers installed.

Who knows what other surprises are lurking in store with VS.
 
Last edited:
Updates:
Linux: Cerberus Preview 2018-07-25 (64 bit only)
MacOS: Cerberus Preview 2018-07-25
Windows: Cerberus Preview 2018-07-25

Update as of 2018-07-25
So whats new

Should now be able to build C++Tools with Visual Studio.
Icons with GLFW Desktops and Windows C++Tool
Reworked rebuildall scripts to make use of git to build deployment packages.
Added a bunch of new preprocessor directives for C++TooLS.
Reworked the documentation for App config settings.
Ted no longer needs Qt 5.5. You should be able to use later versions. I built Ted using Qt 5.9.2.
Note the Windows version was built entirely with Visual Studio 2015. Caveat: Note that I have not fully tested it or done any profiling.

SPECIAL NOTE: Check that there hasn't been any file corruption. The eol algorithm in git has trouble with files encoded in utf-16. Using crlf on one of these files can seriously ruin your day! took me 50 minutes to realise that I wasn't having a hard drive failure. Had to rethink on the .gitattribute file on how to handle xml's that can have this encoding. I've refreshed my github repo with what is currently on the main Cerberus one. I will push my updates back into it once I'm satisfied they can be no more file corruption misfortunes.

Note that the code has been merged with the the Cerberus main development branch to what was on there on the 20th of this month. So please check that nothing has been broken.
 
Last edited:
Thank you, will check it out!

Sounds like you are done with your changes, or?
 
Sounds like you are done with your changes, or?
The main things are out of the way. With the restructuring, C++Tool MSBuild and icons. There's still:
  • Any special kind of code-signing etc. could be done via directives and the right changes made to the Xcode project to work with them.
  • Some method to locate MSBuild without having to keep updating the path variable each time. It's what I was thinking of with the VS_VERSION variable in the config.winnt.txt file.
  • Where possible all targets should use the library store directory or the option to use a local user project directory as I've done with GLFW and access via directives. Mostly to try and get the number of times libraries get copied over reduced.
  • At some point there will be a requirement to have some sort of library cache file to speed up linking if and when the library store directory starts to get a bit on the full side.
  • Adding a general include/source directory for non CX module native code. Think here of instead of having GLFW in each target you have it in a central location that gets compiled the once, but links to the built library on subsequent builds cutting down build times. Did play around last year attempting this while trying to maintain some sort of project backward compatibility by generating symlinks on the fly, but hit a snag with Windows and it's symlink issues. If CX can do all of the work, then maintaining compatibility with needing to open any back-end compiler tools wouldn't be needed.
But I think that those can be added at a later date.

The there are two things that I'm looking at:
  1. The .gitattribute file control of line endings and if xml files should be treated as binary with them having a file encoding and a tag that gives information on the encoding used.
  2. The double clicking of a file in Finder on MscOS to open Ted up with that file. The only way I think that can be achieved is to create a derived QApplication class and over-ride the event method to capture a QFileOpenEvent. The problem would be to get this derived class to work in conjunction with MainWindow.
I've push my changes to my repo copy on git, but they are in a branch called experimental branch for now, so you shouldn't use it directly as at some point I will be merging/rebase it into the main develop branch and deleting it.

Edit: One Known quirk on OSX is that the tab close button isn't visible. It's supposed to have been fixed in Qt 5.9.2, but I cannot see it in El Capitan. And the launcher for OS X uses the application bundle id to locate Ted. This can make it confussing if there are multiple copies of Cerberus installed on disk.
 
Last edited:
Update as of 2018-07-31
So what's new?

Ted is now a single instance application. Opening multiple files at once via the systems file explorer will not open multiple instances of Ted. But should open the files in Ted. The source code has been updated to use nullprt to stop C++11 compilers complaining.
Note that I have noticed that Ted appears to be leaking memory when creating editors and tabs.

Had to do a work-around for vanishing icons with Qt 5.9.2 on Mac OS X. Tab close buttons became invisible when style sheets are used. This is a known bug in Qt, so had to add icons to Default and Dark Orange themes and set the default theme at first run.

Linux: Cerberus Preview 2018-07-31 (64 bit only)
MacOS: Cerberus Preview 2018-07-31
Windows: Cerberus Preview 2018-07-31


Still thinking of what to do with the .gitattribute file and xml. At the moment it's using LF line endings: this I'm sure will get Visual Studio complaining. So I'm thinking that binary maybe the better choice here for it.
 
Last edited:
Just test building on Linux Mint 19. And it looks now that I will have to make changes to the binaries to detect which version of GCC is being used.
The file explorer is reporting that it cannot determine how to open an executable file. This has to do with Position Independent Executables (PIE) compilation introduced with GCC 6.
 
Mmmh, regarding testing. Simple execution or the build scripts too? Because with later, I will fuckup all building stuff to the current version, or?
 
I downloaded your latest preview and Launcher and Ted alone didn't start. From the command line I got no message back.

The Windows events showed this:

Name der fehlerhaften Anwendung: Ted.exe, Version: 0.0.0.0, Zeitstempel: 0x5b6180e4
Name des fehlerhaften Moduls: Qt5WebEngineCore.dll, Version: 5.9.2.0, Zeitstempel: 0x59d389c7
Ausnahmecode: 0x80000003
Fehleroffset: 0x0000000000930b29
ID des fehlerhaften Prozesses: 0x1940
Startzeit der fehlerhaften Anwendung: 0x01d42b4ab63e0ad9
Pfad der fehlerhaften Anwendung: C:\Users\mike\Desktop\cerberus-preview\bin\Ted.exe
Pfad des fehlerhaften Moduls: C:\Users\mike\Desktop\cerberus-preview\bin\Qt5WebEngineCore.dll
Berichtskennung: 88f297bf-922b-43df-ae39-b005774cb2d1
Vollständiger Name des fehlerhaften Pakets:
 
Name der fehlerhaften Anwendung: Ted.exe, Version: 0.0.0.0, Zeitstempel: 0x5b6180e4
Name des fehlerhaften Moduls: Qt5WebEngineCore.dll, Version: 5.9.2.0, Zeitstempel: 0x59d389c7
Ausnahmecode: 0x80000003
Fehleroffset: 0x0000000000930b29
ID des fehlerhaften Prozesses: 0x1940
Startzeit der fehlerhaften Anwendung: 0x01d42b4ab63e0ad9
Pfad der fehlerhaften Anwendung: C:\Users\mike\Desktop\cerberus-preview\bin\Ted.exe
Pfad des fehlerhaften Moduls: C:\Users\mike\Desktop\cerberus-preview\bin\Qt5WebEngineCore.dll
Berichtskennung: 88f297bf-922b-43df-ae39-b005774cb2d1
Vollständiger Name des fehlerhaften Pakets:
That error there is pointing to QWebEngine it could mean that QWebEngineProcess.exe failed to start or there are multiple processes of QWebEngineProcess, a resource is missing, or a path problem (qt.conf in the bin directory may interfere with paths), or from what I've seen around a few others having a similar issue, video driver related. I would think that it would be worth checking out what processes if any are hanging.

The latest preview versions that I have built for Windows, have paths cerberus-msbuild-preview/cerberus-preview-msbuild and not cerberus-preview. What date is the zip file you extracted? The Windows versions 2018-07-25 and 2018-07-31 are a full MSBuild's and have msbuild as part of the file name. When I push the next updates to my git repo, I will build both msbuild and mingw builds.

Mmmh, regarding testing. Simple execution or the build scripts too? Because with later, I will fuckup all building stuff to the current version, or?
Well the compressed archives are previews for testing the binaries, but you can test out the build scripts. But the git deploy bit in the scripts won't work as the pre-built stuff I've linked are meant for the end user. And I've not updated the my git repo yet with the current updates with single instance Ted.

As long as there is a untouched transcc.build. You should be able to build from scratch.
There are a number of files and directories that I've not added as back ups in the src/archives.

Quick build with the scripts for Windows.
  • Using Visual Studio with the default of VS2015
    • .\rebuildall.ps1 -msbuild
  • Using Visual Studio 2017
    • .\rebuildall.ps1 -msbuild -v "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build" -vsversion "2017"
  • Using MinGW-w64 with posix and sjsl
    • .\rebuildall.ps1 -mingw-static
  • Using MinGW-w64 with posix and sjsl copy shared libraries
    • .\rebuildall.ps1 --runtimes
Note that the script default expects Qt path to be at C:\Qt and the Qt version to be 5.9.2. And Visual Studio to be 2015 in it's default location. You can override these with --qtsdk, -qtversion, --visualstudio and -vsversion. One thing that you cannot get round is that as it's setting environment variables in the current running Powershell. You have to start a fresh with a new Powershell instance if you what to re-run with a different compiler.

If transcc is already built, the script will back up that version. If the script detects that there is a back up; it will ask if you want to use the back up or replace it with the current version. The transcc.build_new folder that you will find contains what has just been built. When you are happy with everything, it's just a case of a bit of directory renaming of transcc.build_new to transcc.build.
 
Last edited:
I tested the 2018-07-31 version. I just renamed the folder. I will test the binaries only then, don't wanna interfear with the official release atm. I think I should get that out first and then prepare the whole system to use your stuff.
 
OK. I've updated my github fork and built some more new binaries. You will find my work in the experimental branch.
@MikeHart : Try and see if these work. Note that the launcher for the Mac looks for an installed bundle identifier for Ted, which can be a bit of a problem if there are a few copies of knocking around.

Windows:
Cerberus-msbuild-preview-2018-08-04
Cerberus-mingw-w64-preview-2018-08-04

MacOS:
Cerberus-preview-2018-08-04

Linux:
Cerberus-preview-2018-08-04

@QWebEngine:
If, you still see the the error. See what happens when you delete all the .pak files apart from en-US.pak found in bin/translations/qtwebengine_locales.
 
Last edited:
I think I should get that out first and then prepare the whole system to use your stuff.
Best make sure that everything I've been working on works and is stable. Best keeping what's current and releasing the stuff I've been working on as alpha/beta tests.
 
Back
Top Bottom