Skip to content

Consider moving from gyp to gn #6089

Closed
Closed
@jeisinger

Description

@jeisinger
Contributor

Chromium started to move from gyp to gn a while ago. Soon, the v8 build will be fully supported on gn. While there's no immediate plan to remove the gyp files right away, gyp itself will become unsupported the less people use it.

Consider planning for moving to gn: https://chromium.googlesource.com/chromium/src/+/master/tools/gn/README.md

Activity

MylesBorins

MylesBorins commented on Apr 6, 2016

@MylesBorins
Contributor

/cc @nodejs/build @nodejs/node-gyp

added
buildIssues and PRs related to build files or the CI.
on Apr 6, 2016
added
feature requestIssues that request new features to be added to Node.js.
on Apr 6, 2016
jbergstroem

jbergstroem commented on Apr 7, 2016

@jbergstroem
Member

This has been brought up a few times amongst issues while looking for a gyp replacement. GN in its current state is very tied to the google repo meaning building a standalone is tedious. There's a few attempts you likely can find in gists. I've been doing some attempts at ripping dependencies out in place for libuv and lessening ties to the rest of the google checkout, but since gn is moving in such high pace I don't think this is the way forward.

Here's more info: #133
..and here: nodejs/NG#24

I'll close this -- feel free to continue talking in above (the ng issue).

jeisinger

jeisinger commented on Apr 7, 2016

@jeisinger
ContributorAuthor

Thanks for the pointers. And yes, the fact that gn is checked into chromium is also a problem for v8 (which we work around by using a checked in gn binary...)

tojocky

tojocky commented on Jan 3, 2017

@tojocky

Hi @jbergstroem ,

It is easy to build gn standalone.
here is a shell script that I'm using:

#!/bin/bash

set -e
set -v

# Get the sources
mkdir gn-standalone
cd gn-standalone
mkdir tools
cd tools
git clone https://chromium.googlesource.com/chromium/src/tools/gn
cd ..
#mkdir -p third_party/libevent
#cd third_party/libevent
#wget --no-check-certificate https://chromium.googlesource.com/chromium/chromium/+archive/master/third_party/libevent.tar.gz
#tar -xvzf libevent.tar.gz
#cd ../..
git clone https://chromium.googlesource.com/chromium/src/base
git clone https://chromium.googlesource.com/chromium/src/build
#git clone https://chromium.googlesource.com/chromium/src/build/config
mkdir testing
cd testing
git clone https://chromium.googlesource.com/chromium/testing/gtest
cd ..

# Build
cd tools/gn
python ./bootstrap/bootstrap.py -s

# At this point, the resulting binary is at:
# gn-standalone/out/Release/gn
jbergstroem

jbergstroem commented on Jan 3, 2017

@jbergstroem
Member

@tojocky thanks; I've also used that snippet. It doesn't really solve the fact that gn is dependent on a lot of third party code bases which makes it less usable in this scenario. You should check out all progress that Fedor has been doing over here!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildIssues and PRs related to build files or the CI.feature requestIssues that request new features to be added to Node.js.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @mscdex@jbergstroem@jeisinger@MylesBorins@tojocky

        Issue actions

          Consider moving from gyp to gn · Issue #6089 · nodejs/node