Git Product home page Git Product logo

generate-ninja's Introduction

Generate-Ninja

travis-ci status appveyor-ci status

Generate-Ninja, or GN, is a meta-build system that generates Ninja build files so that you can build your project with Ninja.

GN was, originally, part of the Chromium source tree, and has since been extracted into its own standalone repo. However, this is a fork of the official GN, adding some minor features as well as some bug fixes:

  • Create build dir when necessary if it does not exist
  • Change ordering of libs and config flags such that dependent libs and config flags have the least precedence
  • Separate bootstrap vs integration builds
  • Fix unresolved dependencies for sub-configs
  • Fix invalid characters list for ninja rule names
  • Fix help messages title for GN commands
  • Fix duplicate pch ninja rules
  • Fix action targets not using substitutions
  • Fix errors when root build dir equals source root
  • Fix static library link order to fix unresolved symbol link errors
  • Fix --all-toolchains flag for gn ls and gn refs
  • Fix gn args regenerating ninja files with different command-line switches
  • Fix gn desc when showing outputs only
  • Allow gn desc to support multiple target labels
  • Support binary targets for get_target_outputs function
  • Support source substitutions for binary targets
  • Support for command in action targets
  • Support for description in action targets
  • Support for sys_include_dirs
  • Support for cppflags and asmppflags
  • Support for source extension substitution
  • Support specifying tool source file extentions
  • Support specifying object file extentions
  • Support specifying linker script extentions
  • Support custom interpreter for action scripts and exec scripts
  • Support custom interpreter for JSON IDE scripts
  • Support --all-toolchains option for QtCreator generator
  • Support separate compilation database per toolchain
  • Add define_switch and include_switch variables to toolchain function
  • Add color_console built-in variable
  • Add console_pool built-in variable
  • Add gn_version built-in variable
  • Allow gn desc to support multiple target labels
  • Allow clobbering in forward_variables_from
  • Use console pool to regenerate ninja files
  • Use abs path for sources when output dir is outside root dir
  • Add build_args to build_settings in JSON project file

For more information on GN and Ninja, please refer to the following links:

generate-ninja's People

Contributors

o-lim avatar sgraham avatar dpranke avatar tfarina avatar petrhosek avatar nico avatar sdefresne avatar tanderson-google avatar tmoniuszko-opera avatar andybons avatar agrieve avatar mdempsky avatar ngg avatar randomascii avatar jeremyroman avatar primiano avatar zetafunction avatar rakuco avatar mostynb avatar leizleiz avatar rsesek avatar timniederhausen avatar jdoerrie avatar petermayo avatar yngvenpettersen avatar eglaysher avatar vmpstr avatar ssiddhartha avatar erikchen avatar fdoray avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.