totalcross icon indicating copy to clipboard operation
totalcross copied to clipboard

Better dependency management and healthiness

Open acmlira opened this issue 5 years ago • 5 comments

Our build process are broken :worried:

Not quite :sweat_smile:, but we need to talk about two points:

  1. Dependency management;
  2. Healthiness.

1. Dependency management

Today TotalCross VM contains many library sources integrated into the compile process, that greatly increases the time spend and prevents the usage of embedded/local sources. They are:

  • minizip;
  • zlib;
  • axTLS;
  • libpng;
  • libjpeg;
  • SQLite3;
  • Skia;
  • dlmalloc;
  • Litebase.

and more. This can mean a dramatic quality gain, it will be increases:

  • Reusability: we realized with #23 that SDL2 can be optimized for the target hardware and we don't want to be a problem for this type of system;
  • Modularity: once we make available: version, necessary flags, build scripts for each dependency we will allow a wider range of optimizations;
  • Maintainability: we will know all the borders of TotalCross.

2. Healthiness

We are receiving a lot of feedback and tips about our code, we want to make TC the best platform for devs, because that we gonna do this soon as we can:

  1. Rewrite a bunch of duplicated code;
  2. Make a bullet proof build system;
  3. Bytecode with VM version signature;
  4. Define a unique names to our supported platforms (remember: flag -linux_arm, build dir gcc-linux-arm, C define HEADLESS or __arm__, launcher source inside ../raspbian folder.. whaaaaaat)

We need you

We are open to all suggestions on how we can do this as the-state-of-the-art :art:

acmlira avatar May 13 '20 20:05 acmlira

Issue #71 will be resolved firstly for two reasons:

  • It will be simpler to test each lib removal with a new build system;
  • We have to figure it out the easiest way to install dependencies to run TotalCross (for makers).

ItaloYeltsin avatar Jul 13 '20 14:07 ItaloYeltsin

We have news about the build system :smile:

acmlira avatar Jul 29 '20 18:07 acmlira

I believe the dependency handling tool will vary across platforms.

For convenience, we might explore using a Docker for this.

otavio avatar Jul 29 '20 18:07 otavio

I agree and updated the news.

acmlira avatar Jul 30 '20 00:07 acmlira

@acmlira, maybe update this issue and break it down into several others so we can add as small steps in our planning.

flsobral avatar Nov 30 '20 14:11 flsobral