dart-lang / sdk

The Dart SDK, including the VM, JS and Wasm compilers, analysis, core libraries, and more.
https://dart.dev
BSD 3-Clause "New" or "Revised" License
10.2k stars 1.57k forks source link

Building dart sdk #36018

Open MuAladdinIbrahim opened 5 years ago

MuAladdinIbrahim commented 5 years ago

I'm trying to install dart sdk on fedora 29. when I comes with ./tools/build.py --mode release --arch x64 create_sdk step .. the output is

ninja -C out/ReleaseX64 create_sdk
ninja: Entering directory `out/ReleaseX64'
ninja: error: loading 'build.ninja': No such file or directory
BUILD FAILED

So what I can do? I checked permissions and checked that "build.ninja" is in ReleasseX64 directory.

sassman commented 5 years ago

@MuhammadAlaeldin

Can you try to run it in verbose mode?

./tools/build.py --verbose --mode release --arch x64 create_sdk

Maybe the gn did not ran successfully and the ninja files were not generated, or do they exist?

MuAladdinIbrahim commented 5 years ago

@sassman I tried it and the same error occurs. yes they exist.

I found this answer but actually I can't do as he said.

Okay apparently using /opt/depot_tools/ninja is what causes the error. Use the /usr/bin/ninja bundled with the project makes it work.

sassman commented 5 years ago

@MuhammadAlaeldin can you check if your distro ships ninja out of the box? If so you could e.g. symlink /opt/depot_tools/ninja to the distributors one, or just remove it from the dept_tools folder.

MuAladdinIbrahim commented 5 years ago

@sassman It doesn't work too :/ thanks for your help anyway. at all I'm not good with linux so this is a big problem to me.

sassman commented 5 years ago

@MuhammadAlaeldin I was able to reproduce it and got this error:

Step 10/11 : RUN sdk/tools/build.py --mode=release --arch=x64 create_sdk
 ---> Running in 96b0ab6cbe32
gn gen --check in out/ReleaseX64
GN Time: 0.579 seconds
Running python /tmp/sdk/tools/generate_buildfiles.py
Traceback (most recent call last):
  File "sdk/tools/build.py", line 343, in <module>
    sys.exit(Main())
  File "sdk/tools/build.py", line 318, in Main
    configs.append(BuildOneConfig(options, targets, target_os, mode, arch))
  File "sdk/tools/build.py", line 258, in BuildOneConfig
    if UseGoma(out_dir):
  File "sdk/tools/build.py", line 208, in UseGoma
    return 'use_goma = true' in open(args_gn, 'r').read()
IOError: [Errno 2] No such file or directory: 'out/ReleaseX64/args.gn'
The command '/bin/sh -c sdk/tools/build.py --mode=release --arch=x64 create_sdk' returned a non-zero code: 1

It can be reproduced with the Dockerfile

FROM fedora:29 as builder

RUN yum -y update && \
    yum -y install git subversion make gcc-c++ python-pip findutils

RUN pip install --upgrade pip setuptools wheel && \
    pip install virtualenv

RUN git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git /tmp/tools
ENV PATH $PATH:/tmp/tools

WORKDIR /tmp
RUN fetch --no-history dart
RUN sdk/tools/build.py --mode=release --arch=x64 create_sdk