DidactiCOde
Program your World

BlackBerry 10 Toolchain

This toolchain enables C and C++ programmers to compile software for BlackBerry 10 (BB10) using a custom-built gcc-9.3.0!

  • Build or download a current compiler compliant with modern standards.

  • Compile C++11 - C++17 programs and shared libraries.

  • Learn and test POSIX-compatible software with minimal modifications.

--- Update ---

When BlackBerry decommissioned their infrastructure for End-Of-Life devices, this included the servers that issued development 'tokens'. Without them, it is "practically" impossible to install native apps on BlackBerry 10, so this toolchain is, for the moment, ineffective; it can build software that cannot be installed on the target devices.

As such, I have removed the download links for the moment. I will expound on future directions/alternatives in a forthcoming post. For now, I urge any aspiring developers to backup your Momentics SDK! Specifically, the actual native headers and libraries are crucial. They were not included with the IDE and had to be downloaded separately, so archive the entire installation folder! Distributing proprietary software that BlackBerry has removed them from their site, would be... unbecoming?

Hopefully, BlackBerry will be as kind and generous as they have been so far and archive the SDK along with their other projects on a publically-accessible site. QNX on BlackBerry 10 is still their most undeniable proof that they have an OS that can work from the deepest Inner Bytes to the Yotta-Limits.

Please stand by...

Z10 displaying text from a file processed using C++17's string_view
Successful build of gcc-9.3.0 libstdc++

While the C standard has remained fairly unchanged since BlackBerry stopped manufacturing smartphones themselves, C++ has seen major revisions to the language that enhanced and improved its utility as a general purpose and systems programming language.

Unfortunately, these features have remained inaccessible to the BB10 developers who still appreciate the impressive architecture that underlies BlackBerry's last smartphone Operating System, the incredible QNX Real-Time OS. One of BB10's unique features was the ability to interface with QNX's POSIX API directly. This characteristic also opened up the possibility of continued software development using current tools even after the official ones became outdated.

The official development tools that come with the original Momentics development kit are still functional and can be used to develop software for BB10. BlackBerry has also kept their authentication servers active, which is necessary for the signing that all apps require before being deployed onto devices. Applications written in C or compatible with the C++03 and C++11 draft standards can still be compiled with the official tools available from BlackBerry's Native Development site.

However, Web, multimedia and some other foundational libraries have moved on towards newer standards, which is why the availability of an updated compiler toolchain is exciting news! There is renewed hope for up-to-date BB10 software!

This is just one piece of the puzzle, though. Bringing web browsing, productivity, and other modern apps to BB10 will require the personal investment of dedicated fans of the platform. Of these, there are many, and QNX is such an amazing Operating System, that the effort of porting foundational libraries as well as full-featured applications is much easier than on other embedded systems. It was a pleasure; a challenging, sometimes frustrating, yet very rewarding and educational pleasure, building these tools. I could not have done it without the prior efforts of other BB10 developers so I would like to thank everyone who continues to keep the 'Spark' glowing bright.

Links:

QNX: BlackBerry's versatile Operating System.