Skip to content

Latest commit

 

History

History
45 lines (30 loc) · 2.45 KB

README.md

File metadata and controls

45 lines (30 loc) · 2.45 KB

Basic concepts of the ya make build system

General information

The ya make project build automation system was developed by Yandex.

ya make enables you to:

  • Compile code in different languages and ensure transparent interaction between method calls.
  • Manage dependencies.
  • Run tests.
  • Generate executables and packages in a single and consistent environment, regardless of the project complexity.

The system structure uses a declarative approach to describing builds, making it similar to CMakeLists.txt and therefore easier to grasp if you're familiar with CMake concepts.

The entire build configuration is described in ya.make files by calling macros with parameters.

The system supports more than 300 macros and 70 modules that you can customize using a special macro description language or plugins in Python. This makes it possible to flexibly adapt the system to diverse project needs.

ya make is used to build C++, Python, Java, and Go projects with various test frameworks. It integrates with various code generation technologies, such as protobuf and ragel.

The build system runs on Linux, Windows, and macOS. Cross-compilation enables you to build programs for many different platforms, including mobile devices, on a single local machine.

Strict dependency and data management eliminates the influence of external and changing resources, ensuring that the build results are stable and identical each time the build is run.

Build system commands

Build commands are integrated into the universal ya utility, which offers a wide range of functions and command-line parameters for tailoring the build process to individual project requirements:

Additional information: