Skip to content

rene-fonseca/base

Repository files navigation

The Base Framework

Binder

A framework for developing platform independent applications in C++.

Copyright (C) 2000-2020 by René Møller Fonseca rene.m.fonseca+base@gmail.com

Primary hosting at https://dev.azure.com/renefonseca/base

The Wiki for the framework is available at https://github.com/rene-fonseca/base/wiki

Reference API documentation is hosted at https://rene-fonseca.github.io/base-api

Status

Windows x64 Windows x86 Windows ARM64 Windows ARM32 Windows Clang x64 Debian Ubuntu 19.10 Ubuntu 19.04 Ubuntu 18.04 Ubuntu 16.04 CentOS 8 Fedora x64 macOS iOS Ubuntu ARM64 Ubuntu PowerPC64LE Ubuntu S390x Ubuntu SPARC64 Ubuntu RISC-V32 Ubuntu RISC-V64 Ubuntu PA-RISC openSUSE Amazon Linux GCC 9 GCC 9 GCC 9 GCC 9 FreeBSD x64 Emscripten wasm32

Dependencies

ZLib, BZip2, XMLSOFT XML, XMLSOFT XSLT, OpenSSL, Curl, OpenGL, and X11 are optional packages.

For Ubuntu install:

sudo apt-get install zlib1g-dev
sudo apt-get install libbz2-dev
sudo apt-get install libxml2-dev
sudo apt-get install libxslt-dev
sudo apt-get install libssl-dev
sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libx11-dev

For FreeBSD run:

portsnap fetch
portsnap extract
portsnap update
cd /usr/ports/textproc/libxml2
make install clean
cd /usr/ports/textproc/libxslt
make install clean
cd /usr/ports/ftp/curl
make install clean

Other optional dependencies: Wasmtime-C-API

Build

Make sure GIT, cmake, make, and compiler (e.g. g++) are installed.

Debug build

git clone https://dev.azure.com/renefonseca/base/_git/base
cd base
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug
cmake --build .. --config Debug --target install -- -j 4
./testing/unittesting
ctest . -C Debug

Release build

git clone https://dev.azure.com/renefonseca/base/_git/base
cd base
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .. --config Release --target install -- -j 4
./testing/unittesting
ctest . -C Release

Platforms

List of platforms tested.

OS Arch Compiler Status Comment
Windows x86_64 MSC Ok Runs continuously on pipeline
Windows x86 MSC Ok Runs continuously on pipeline
Windows ARM32 MSC Ok Runs continuously on pipeline but no testing
Windows ARM64 MSC Ok Runs continuously on pipeline but no testing
Windows x86_64 Clang Ok Runs daily on pipeline
Ubuntu 18.04 x86_64 GCC Ok Runs continuously on pipeline
Ubuntu 16.04 x86_64 GCC Ok Runs continuously on pipeline
Ubuntu ARM64 GCC Ok Runs continuously on pipeline
Ubuntu PowerPC GCC Ok Runs continuously on pipeline
Ubuntu s390x GCC Ok Runs continuously on pipeline
Ubuntu SPARC64 GCC Ok Runs continuously on pipeline
Ubuntu PA-RISC GCC Ok Runs continuously on pipeline
Ubuntu RISC-V32 GCC Ok Runs daily on pipeline
Ubuntu RISC-V64 GCC Ok Runs continuously on pipeline
CentOS 8 x86_64 GCC Ok Runs continuously on pipeline
Fedora x86_64 GCC Ok Runs continuously on pipeline
macOS x86_64 Clang Ok Runs continuously on pipeline
iOS ARM64 Clang Ok Runs continuously on pipeline but no testing
WebAssembly WASI WASM32 LLVM Ok Runs continuously on pipeline - Exceptions cause abort()
Debian 10 x86_64 GCC Ok Runs daily on pipeline
Ubuntu 19.10 x86_64 GCC Ok Runs daily on pipeline
Ubuntu 19.04 x86_64 GCC Ok Runs daily on pipeline
openSUSE x86_64 GCC Ok Runs daily on pipeline
Amazon Linux 2 x86_64 GCC Ok Runs daily on pipeline - using newer cmake build
GCC 9 C++11 x86_64 GCC Ok Runs daily on pipeline
GCC 9 C++14 x86_64 GCC Ok Runs daily on pipeline
GCC 9 C++17 x86_64 GCC Ok Runs daily on pipeline
GCC 9 C++2a x86_64 GCC Ok Runs daily on pipeline
Emscripten WASM32 LLVM Ok Runs daily on pipeline but no testing
FreeBSD 12.1 x86_64 GCC Ok Runs daily on pipeline but no testing
RedHat 8.1 x86_64 GCC Ok Tested on 7 Dec 2019
FreeBSD 12.1 x86_64 Clang Ok Tested on 7 Dec 2019
OpenBSD 66 x86_64 GCC Ok Tested on 9 Dec 2019
Raspbian 10 ARM32 GCC Ok Tested on 9 Dec 2019
FreeRTOS N/A GCC Compiles Tested on 28 Jan 2020 - linking not done yet
Zephyr N/A GCC Compiles Tested on 30 Jan 2020 - linking not done yet
OpenSolaris 11 x86_64 GCC Ok Tested on 6 Dec 2019
OpenSolaris 11 x86_64 LLVM Pending
OpenSolaris 11 x86_64 Studio Pending
OpenSolaris 11 SPARC64 Pending
HP-UX 11i v2 PA-RISC Pending
AIX 7.2 PowerPC Pending
RHEL 8 PowerPC Pending

Docker images are available at: https://hub.docker.com/repository/docker/renefonseca/