/cal

CAL: C Abstraction Layer

Primary LanguageC++MIT LicenseMIT

CAL: C Abstraction Layer

license Travis-CI Build AppVeyor Build

Every C programmer that's had to maintain compatibility across platforms has had to deal with the headache of working with implementation differences. Linux vs Windows, POSIX vs WinAPI, the list goes on. This library aims to ease this issue by providing minimal functions that abstract away these differences, giving users a single API that can be used across platforms.

Current features:

  • Dynamic library loading
  • Endian-swapping
  • Getting common filesystem paths
  • Getting network interface information
  • High-frequency timing
  • Text conversion

Testing

Using Travis and AppVeyor, every push to this repository is automatically tested under the following configurations:

  • Compile, unit test:
    • Ubuntu 14.04 (x64)
      • GCC: 4.8.4, 6.2.0
      • Clang: 3.5.0, 4.0.0
    • Windows Server 2012 R2
      • MSVC (x86, x64): 2013, 2015
  • Cross-compile only:
    • MSVC (ARM): 2013, 2015

All source files are analyzed with CppCheck.

Unit tests use the Unity framework.

README last updated: 2017/06/24