MrJ0se / cct

C(++) Crosscompile Tools, scripts with unique CI interface (and friendly programatic interface) to automate C/C++ development processes: compiler, package import, utils for test emsdk modules and http(s) requests.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Obsolet

Indevelopment replacement: https://github.com/MrJ0se/deno-cct

Support changelog:

  • 28/8: plan to drop/pause support for MacOS IOS UWP/XBOX Arduino (working but without updates/corrections) and ESP (not yet runnable)

Imports:

Status:

  • πŸ”¨ some limitations
  • βœ… ok
  • ❌ fail
  • βš™οΈ fail, but rest some tries
  • ☒ incompatible
Windows Linux MacOS Android IOS WEB UWP/XBOX obs.
Codecs -- -- -- -- -- -- --
libpng βœ… βœ… βœ… βœ… βœ… βœ… βœ…
libjpeg-turbo πŸ”¨ βœ… βœ… βœ… βœ… πŸ”¨ πŸ”¨ win/web/uwp: no turbo/SIMD, static only
giflib βœ… βœ… βœ… βœ… βœ… βœ… βš™οΈ uwp: win only file api
libwebp βœ… βœ… βœ… βœ… βœ… βœ… βœ…
aom βœ… βœ… πŸ”¨ βš™οΈ βš™οΈ βœ… βš™οΈ mac: static only. android: multiple wrong named neon SIMD functions. uwp: aom\av1\encoder\interp_search.c(472): error C4703: possible uninitied variable 'switchable_interp_p0'
libavif βœ… βœ… πŸ”¨ βœ… mac: static only
opus βœ… βœ… βœ… βœ… βœ… βœ… βœ…
flac βœ… βœ… βœ… βœ… βœ… βœ… βš™οΈ uwp: need a workaround: some function renames.
Vision -- -- -- -- -- -- --
opencv βœ… βœ… βœ… βœ… βœ… βš™οΈ uwp: broken cmake file
leptonica βœ… βœ… βœ… βœ… βœ… βœ… βš™οΈ uwp: win only file api
tesseract βœ… βœ… βœ… βœ… βœ… βœ…
Basic -- -- -- -- -- -- --
zlib βœ… βœ… βœ… βœ… βœ… πŸ”¨ βœ…
brotli βœ… βœ… βœ… βœ… βœ… βœ… βœ…
sqlite βœ… βœ… βœ… βœ… βœ… βœ… ❌ uwp: win only api
libreSSL βœ… βœ… βœ… βœ… βœ… πŸ”¨ βœ…
  • *obs.: disable any optimization, and static build for web compilations

Compilation tips:

windows:

  • while windows runtime library recomendend is static (MT), in uwp supports MD only (dynamicly linked runtime).
  • if compiler say "cant found LIBCMT.lib", its a spectree mitigation library, and to use the visual studio needs library with spectre mitigation components installed.

IOS:

  • needs a team id specified, to get it, do a login in xcode, export the certified of team, get the number of Organization Unity / Unidade Empresarial of certify, and set on CCT.

Arduino:

  • setup arduino target with: "cct as [path to arduino IDE] [board]".
  • generate CMake lines to enable cmake-based autocomplete (to insert in your CMakeLists): "cct acc".
  • send program to arduino with: "cct aw [path to pogram] [port]".

To do (not implemented yet):

  • spectre mitigation option injection in vcprojects (proc/windows_runtime_spectre.ts).
  • replace hardcoded Apple SDK version in cmake.ts (use "xcrun --show-sdk-version" to get).
  • edit opencv script to use cct zlib instead clone a compile a new zlib.

Required Tools:

platform target(s) required recomended
windows uwp/win32 visual studio (components: msvc++, uwp, cmake, python, strawberry perl yasm, git (bash)
linux linux gcc,g++,binutils,python,perl,cmake clang, yasm
mac mac/ios xcode, xcode command line tools, brew, cmake(brew) yasm
android android studio (components: ndk), perl, python, cmake yasm
web android studio (components: ndk) perl, python, cmake
arduino arduino IDE (components: AVR boards) CH34X driver (to send program)

About

C(++) Crosscompile Tools, scripts with unique CI interface (and friendly programatic interface) to automate C/C++ development processes: compiler, package import, utils for test emsdk modules and http(s) requests.


Languages

Language:TypeScript 77.7%Language:CMake 22.3%