Skip to content

ctc-oss/omega-edit

Repository files navigation

Omega Edit Logo

Ωedit™ Library

Release Build Status CodeQL codecov FOSSA Status Join the chat at https://gitter.im/ctc-oss/community

Goal

The goal of this project is to provide an open source library for building editors that can handle massive files, and multiple viewports.

User documentation

User documentation is published to https://ctc-oss.github.io/omega-edit/.

Requirements

Command line tools

IDE

The Ωedit™ project is built primarily using CLion, though Visual Studio Code also works well.

Build the core library (C/C++)

❗ These commands should be executed at the root level of the repository ❗

Install conan:

Conan is the package manager used to install the C/C++ dependencies. It can be installed via pip.

pip install conan

Configure a build:

Depending on your linking needs, Ωedit™ can be built either as a static (e.g., libomega_edit.a) or shared (e.g., libomega_edit.so) library. Release or Debug versions can be created. Example programs and documentation can also be built if desired. The Scala server requires a shared library.

Here is how to build a debug version of a shared library, with no documentation or example programs.

cmake -S . -B _build -DCMAKE_BUILD_TYPE=Debug -DBUILD_DOCS=NO -DBUILD_EXAMPLES=NO -DBUILD_SHARED_LIBS=YES

Build the configured build:

This will build the core library, and any example programs or documentation if configured. Note that the config type (Debug or Release) must match the config type (CMAKE_BUILD_TYPE) used when configuring the build.

cmake --build _build --config Debug

Run the test suite:

This will run the test suite for the core library. Note that the build config (Debug or Release) must match the config type (CMAKE_BUILD_TYPE) used when configuring the build.

ctest --build-config Debug --test-dir _build/core --output-on-failure

Install the core library:

We're installing in a directory named _install in the root of the repository. This is is where the Scala server will look for the shared library by default or it can use the OE_LIB_DIR environment variable if different than the default location. If you just want to use the library itself, you can install it anywhere you like (e.g., /usr/local).

cmake --install _build --config Debug --prefix _install

Packaging Ωedit™ gRPC Server and Node Client

❗ These commands should be executed at the root level of the repository after building/installing the core library ❗

Build, test, and package the server and client node packages. The server package will include the shared library built in the previous step and packages a gRPC server that runs in a Java Virtual Machine (JVM). The client package will include the node client.

yarn install
yarn workspace @omega-edit/server package
yarn workspace @omega-edit/client test

Node packages will be in .tgz files located at:

/packages/server/omega-edit-node-server-${VERSION}.tgz
/packages/client/omega-edit-node-client-${VERSION}.tgz

More information about the node packages can be found in the packages folder.

Release Binaries

Binary releases for macOS (Apple Silicon and x86), Windows (x86), and Linux (ARM, and x86; glibc 2.31 or greater required) are built and published via GitHub CI workflows.

Versioning

Ωedit™ follows Semantic Versioning.

⚡Powered by Ωedit™

License

FOSSA Status