A platform abstraction layer for building portable applications.
Provides APIs for...
The intended deployment of Platform is as a submodule inside other projects.
mkdir MyProject
cd MyProject
git init .
git submodule add https://github.com/AnotherJohnH/Platform.git
cd Platform
make template
Project dir [/Users/fred/MyProjects/Foo] : <project root directory>
Copyright owner [John D. Haughton] : <copyright owner>
Copyright year [2017] : <copyright year>
User name [AnotherJohnH] : <GitHub user id>
Application [Foo] : <name of application>
Version [0.0.0] : <initial version>
Description [Empty application] : <application purpose>
Binary [foo] : <filename of application binary>
Install template/.clang-format to <project root directory>/.clang-format
Install template/.gitignore to <project root directory>/.gitignore
Install template/CMakeLists.txt to <project root directory>/CMakeLists.txt
Install template/Doxyfile to <project root directory>/Doxyfile
Install template/LICENSE to <project root directory>/LICENSE
Install template/README.md to <project root directory>/README.md
Install template/Source/consoleApp.cpp to <project root directory>/Source/<filename of application binary>.cpp
cd ..
git add .
git commit -m Initial
mkdir build_native
cd build_native
cmake ..
make
The following small projects are using Platform...
One of the primary target platforms.
Depend on SDL2, so a development install of SDL2 is required.
Typically the following packages will be required...
sudo apt-get install cmake
sudo apt-get install libsdl2-dev
One of the primary target platforms.
Depend on SDL2, so a development install of SDL2 is required.
Typically the following packages will be required...
brew update
brew install cmake
brew install sdl2
NOTE: The current version of SDL2 (2.0.8) does not work properly on macOS 10.14 Mojave. The following patch seems to resolve the issue.
Although this is also a Linux build, it does not depend on SDL2.
Requires gcc/g++ built for arm-linux-gnueabihf targets that supports C++11 and a set of headers and static runtime libraries that are compatible with the Linux kernel v2.6.26 installed on the Kindle3.
The original ARMv6 Raspberry Pi running a Debian based Linux has been found to be suitable platform to build for Kindle3. But this is far easier if an old version of Rasbian (Wheezy) is used to ensure that libc is compatible with the old kernel on the Kindle.
Other packages required...
sudo apt-get install cmake
sudo apt-get install g++-4.7
Uses the SDL2 library supplied with Emscripten.
Requires access to a source installation of SDL2 which is built into a linSDL2.a as part of the application build process.
Build of an actual app has not been achieved yet, and may not be easily achievable without an Xcode project file.
Requires an NDK installation. Currently builds as a console only app as an integration with an Android build of SDL2 has not been achieved yet.
The source is C++ but has the following non-typical for modern C++ features ...