Commit graph

81 commits

Author SHA1 Message Date
Ryan Macnak e109c9bb0e Change build.py to invoke gn with '--check' to match the build bot's script and Flutter's usage.
R=zra@google.com

Review URL: https://codereview.chromium.org/2449503002 .
2016-10-25 09:43:37 -07:00
Zachary Anderson c67bd01d76 Select GN build with an environment variable
Setting DART_USE_GN to anything will cause 'gclient runhooks' and
build.py to use GN.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2400493002 .
2016-10-05 14:07:22 -07:00
Zach Anderson 5d01fb8458 Fix GN build.py for Windows
Review URL: https://codereview.chromium.org/2386103007 .
2016-10-05 09:44:59 -07:00
Zachary Anderson ff7ad2a4e1 Run GN from build.py if the output directory doesn't exist
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2397623003 .
2016-10-05 09:16:17 -07:00
Zachary Anderson eabd4ed9fb Improvements to tools/gn.py
This change enables gn.py to take comma separated lists of modes,
architectures, and os's similar to build.py. It also accepts 'all'
for each of these just like build.py. GN is invoked in parallel to
save time.

This change also adds an option --gn to build.py to invoke ninja
instead of the usual build system.

Will investigate invoking tools/gn.py automagically from build.py in
a future change.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2392603005 .
2016-10-04 19:49:14 -07:00
Zachary Anderson a274332ed7 Remove Fuchsia build from the gyp build
This isn't used anymore. The build happens in the Fuchsia tree using GN.

R=asiva@google.com

Review URL: https://codereview.chromium.org/2194223002 .
2016-08-01 12:38:11 -07:00
Zachary Anderson fe2b7b35c4 DBC: Enables unboxed doubles
This CL enables unboxed doubles for simdbc64. Unboxed
doubles are stored in regular dbc registers, which are
really 64-bit stack slots. It also implements binary
and unary double operations and comparisons.

R=vegorov@google.com

Review URL: https://codereview.chromium.org/2120703002 .
2016-07-14 16:05:20 -07:00
Zachary Anderson a503570e3a Fuchsia: Initial check-in.
Instructions to build and run are in README.fuchsia.

R=asiva@google.com

Review URL: https://codereview.chromium.org/2117593002 .
2016-07-01 12:42:05 -07:00
Vyacheslav Egorov 43dc5c223d Introduce a new ARMSIMDBC configuration.
This allows us to build dart binary with SIMDBC for non-Android ARM devices.

We are going to use it to measure performance.

BUG=http://dartbug.com/26421
R=zra@google.com

Review URL: https://codereview.chromium.org/1967613002 .
2016-05-10 20:06:54 +02:00
Ryan Macnak d7234da230 Include DBC in the "all" architecture.
R=zra@google.com

Review URL: https://codereview.chromium.org/1949423003 .
2016-05-05 15:19:58 -07:00
Zachary Anderson 3d7202bad3 DBC: Adds simdbc64 target, adds arm64 arithmetic overflow logic
There were differences between linux gcc, android gcc,
MacOS clang, and 32 vs. 64-bit w.r.t the __builtin
functions for detecting arithmetic overflow. I couldn't get
them all working at the same time. Instead, I removed them,
and changed to always use the inline assembly. This works
in all the configurations above.

This change also adds a simdbc64 target for building simdbc
for 64-bit, and sets up the android targets. simdbc targets
arm, and simdbc64 targets arm64. You can build them with:

$ ./tools/build.py -m release -a simdbc{64} --os=android runtime

R=iposva@google.com

Review URL: https://codereview.chromium.org/1904153003 .
2016-04-25 12:48:34 -07:00
Vyacheslav Egorov ee0f608ce4 Dart Byte Code interpreter.
This version is Clang/GCC only and does not support Windows because it uses computed goto's.

Only unoptimized mode is supported.

Architecture is described in constants_dbc.h and stack_frame_dbc.h.

R=fschneider@google.com, zra@google.com

Review URL: https://codereview.chromium.org/1858283002 .
2016-04-18 23:02:01 +02:00
Zachary Anderson 7a2512540a Build for Android x64
This change adds standalone VM build targets for x64 Android.

Build with, e.g.:

./tools/build.py -m debug -a x64 --os=android runtime

R=iposva@google.com

Review URL: https://codereview.chromium.org/1762043002 .
2016-03-03 14:04:52 -08:00
Ryan Macnak 33752c55fc Update tools/build.py --mode=all to include product.
(Product mode added in 9c0c6cb5c2212fd53a1f57dee6c968410c61fcd2.)

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1679873002 .
2016-02-08 10:48:03 -08:00
Ivan Posva 9c0c6cb5c2 Add product mode:
- Add PRODUCT define and build mode to gyp configurations.
- Add product mode to test harness.
- Start to unify list of flags.
- Allow flags to be constant for particular build configurations.

R=fschneider@google.com

Review URL: https://codereview.chromium.org/1663863002 .
2016-02-03 21:10:30 -08:00
Zachary Anderson 80f358dede Adds targets for simarmv6 and armv6
related #25562

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1624593002 .
2016-01-22 13:07:48 -08:00
Ryan Macnak 642f754219 Note that R19 is a C preserved register, fixing crash returning from the first Dart entry on Linux ARM64.
Bug was introduced by 91bc8005fe.

 - Move the Dart stack pointer from R19 (C preserved) to R15 (C volatile) so it isn't among the registers saved by the InvokeDartCode stub.
 - Set a default cross compiler for ARM64.
 - Use ARM32 instead of IA32 binary to build Observatory on ARM64 hosts.

R=regis@google.com

Review URL: https://codereview.chromium.org/1559223003 .
2016-01-07 09:30:17 -08:00
William Hesse 9aeb907f9d Observatory build should try backup method if the SDK doesn't work.
Fix up SDK for mips and arm processors on demand.

BUG=
R=iposva@google.com, johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1343103002 .
2015-09-16 13:13:32 +02:00
zra@google.com 86bfd7cb30 Adds a simarmv5te build and test target.
Also:
- Removes command line flags to choose simulated arm version.
  I think we should use build targets instead, like in this change,
  to make building and testing more obvious.
- Skips pkg tests on all simulators.

R=regis@google.com, ricow@google.com

Review URL: https://codereview.chromium.org//1077823002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45181 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-15 20:44:43 +00:00
zra@google.com 34044a4ca8 Adds armv5 build and test target.
R=regis@google.com

Review URL: https://codereview.chromium.org//1043263002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44828 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-31 23:11:33 +00:00
johnmccutchan@google.com 261200c587 Build Observatory as part of runtime
Relanding https://codereview.chromium.org/810623005/

Review URL: https://codereview.chromium.org//837723004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42645 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-06 21:59:42 +00:00
whesse@google.com aa5a986d5d Revert "Build Observatory with runtime"
This reverts commit 76df7b3c1bf83c08d3994d61df4c9c530fadb4e5.
This commit breaks dartium compilation.

BUG=
R=ricow@google.com

Review URL: https://codereview.chromium.org//839543002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42619 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-06 10:07:58 +00:00
johnmccutchan@google.com 9d6ac72b46 1) Remove prebuilt Observatory sources
2) Move observatory from runtime/bin/vmservice/observatory to runtime/observatory

3) Add two tools scripts:
- tools/run_pub.py (runs pub before SDK is built)
- tools/obs_tool.py (helper for get, build, and deploy stages)

4) Build Observatory with runtime:
- pub get --offline
- pub build
- deploy

5) Build artifacts are now in standard output directory, for example, out/DebugIA32/observatory.

6) Add a new 'dart_boostrap' host target (no snapshot, no observatory) that can be used as the Dart executable to run pub when building Observatory. This is behind a build.py flag --use-bootstrap-for-observatory because:

- It is only necessary on older Linux distributions that are incompatible with the prebuilt Dart testing executable.
- running pub build with the boostrap Debug build is significantly slower.

7) Detect if the prebuilt executable doesn't work and automatically switch to the 'dart_bootstrap' executable. Also, warn the user and provide a Wiki link with more information.

R=turnidge@google.com

Review URL: https://codereview.chromium.org//810623005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42614 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-05 21:26:52 +00:00
zra@google.com 3af5c2e52d Builds 32-bit arm and intel for Android using gcc 4.9 against L-release.
R=koda@google.com

Review URL: https://codereview.chromium.org//833663002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42575 260f80e4-7a28-3924-810f-c04153c831b5
2014-12-30 19:30:03 +00:00
collinsn@google.com 086555fd0d Make 'tools/build.py -h' warn the user to run it from the repo root.
The script by default runs 'make all' in the current directory. Since it's common to have a Makefile with an 'all' rule, this can lead to silent failure when a user runs the script from outside the repo root while intending
to do a default build. That behavior is error prone: in my case it made my regression tests pass when they should fail, because I was not actually rebuilding when I thought I was.

It turns out that the build script is sometimes run outside the repo root on purpose, so we can't simply require it be run from the repo root.  So, we document the relative nature of the build script.

R=ricow@google.com, jwren@google.com
BUG= https://code.google.com/p/dart/issues/detail?id=20958

Review URL: https://codereview.chromium.org//569343003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40465 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-18 21:22:43 +00:00
zra@google.com ec1140b188 Adds support for building arm64 Android.
R=regis@google.com

Review URL: https://codereview.chromium.org//539573003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39844 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-03 23:31:51 +00:00
zra@google.com 12e83bbd84 Allows building debian packages for ARM.
This change adds arm as a possible architecture to
the create_debian_packages.py script and additionally
adds a toolchain flag so that arm packages can be
built using different cross-compilers that target
different ARM versions. The specified cross-compiler
is passed on to the debian/rules file through an
environment variable.

R=ricow@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org//396123003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39291 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-15 15:20:42 +00:00
whesse@google.com 4b9def5115 Fix merge problems in r38573, a cleanup of build scripts.
BUG=
R=kustermann@google.com

Review URL: https://codereview.chromium.org//423483002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38574 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-25 12:47:48 +00:00
whesse@google.com c7d5711688 Build Tools Cleanup
Cleans up Python Code in Build Tools

TEST: build everything and run tests
BUG: https://code.google.com/p/dart/issues/detail?id=19592

R=ricow@google.com

Review URL: https://codereview.chromium.org//350483003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38573 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-25 11:47:59 +00:00
iposva@google.com ad7cbdeb05 - Fail if toolchain is not set instead of warning always even if not necessary.
R=whesse@google.com

Review URL: https://codereview.chromium.org//404333004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38460 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-22 15:01:05 +00:00
zra@google.com 2e6e3133f0 Fixes create_sdk target for cross-builds.
Building an sdk requires snapshots to be generated for
pub, analyzer, dart2js, etc. using a Dart VM binary that
has been built for the host. Currently, when we cross-build,
we do not build a Dart VM binary for the host.

Rather than monkey with the gyp files to do that, this
change modifies build.py to explicitly build:
1. The create_sdk target for the host arch,
2. The runtime target for the target arch,
After which files are copied to create a dart-sdk
directory for the target archetecture.

After this change, we *should* be able to cross-build Debian
packages for arm, which I'll work on in a subsequent change.

R=iposva@google.com, whesse@google.com

Review URL: https://codereview.chromium.org//397593006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38337 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-17 18:05:42 +00:00
vegorov@google.com d30ecd3fcd Fix Win64 build of Dart VM.
1. Build script tools/build.py now actually builds X64 target when x64
is passed as an architecture:

- GYP files set 'msvs_configuration_platform': 'x64' for Win_x64
configuration;

- NSS related files are fixed to have correct set of defines for ia32
and x64 builds and include right files. A os_windows.c file added to
work-around inability to have different sets of source files per
configuration. Originally this was controlled through target_arch GYP
define and required regeneration of the solution.

- build.py passes Win32 or x64 platform to devenv as part of build
configuration argument;

2. Dart VM now supports Win64 ABI. ABI description is moved into a
separate class CallingConventions in constants_x64.h.

BUG=http://dartbug.com/7792
R=iposva@google.com, ricow@google.com, srdjan@google.com

Review URL: https://codereview.chromium.org//317773002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37078 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-06 12:14:15 +00:00
zra@google.com 9c73009ff9 Prepares for arm64 cross-build.
With this change, the cross-build succeeds with the Linaro arm64 toolchain.

R=regis@google.com

Review URL: https://codereview.chromium.org//303443010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36698 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-27 18:05:20 +00:00
aprelev@gmail.com 0ed82805e5 Support build completion notification on Windows.
Build notifications looks cool on Linux and Mac. Let Windows folks have fun with them too.

BUG=dartbug.com/18808
R=ahe@google.com, ricow@google.com

Review URL: https://codereview.chromium.org//284743007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36199 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-15 01:02:04 +00:00
ahe@google.com 76ba04eec9 Add DART_BUILD_NOTIFICATION_DELAY to control notifications
BUG=http://dartbug.com/17965
R=ricow@google.com

Review URL: https://codereview.chromium.org//223703002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34691 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-03 11:09:02 +00:00
zra@google.com 2fe51715e5 Begins work on ARM64, first assembler test.
Most new code is in constants_arm64.h and
{assembler,disassembler,simulator}_arm64.{h,cc}

The rest of the CL just #def's out tests, modifies status files,
and adds UNIMPLEMENTED functions, etc.

R=regis@google.com

Review URL: https://codereview.chromium.org//221133002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34654 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 17:39:32 +00:00
ahe@google.com 350a33f8ac Display notification when build is done.
For now, only works on Mac and Linux.

R=ricow@google.com

Review URL: https://codereview.chromium.org//219513003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34593 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-01 12:11:45 +00:00
iposva@google.com d20121e855 - Enable automatic cross-builds across ARM and MIPS architectures.
R=ricow@google.com

Review URL: https://codereview.chromium.org//192543002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33482 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-10 12:00:06 +00:00
ahe@google.com bd2ad26d7a Don't eat non-empty chunks.
R=kustermann@google.com

Review URL: https://codereview.chromium.org//138943005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31838 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-15 17:05:05 +00:00
ahe@google.com 974911e404 Update build.py to handle tweaked Xcode output in newer versions of Xcode.
R=ricow@google.com

Review URL: https://codereview.chromium.org//139443002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31832 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-15 14:57:58 +00:00
zra@google.com 6c84dd1c0f Updates build scripts for updated android_tools.
R=asiva@google.com

Review URL: https://codereview.chromium.org//120283002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31355 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 22:23:49 +00:00
zra@google.com 3508d336dd Simplifies standalone VM Android build.
This change also avoids the need to
do another 'gclient runhooks' when switching
between Android and Linux builds, and between
IA32 and ARM Android builds.

gyp does not allow 'libraries' sections inside of
configurations. Therefore, since some architecture
specific paths, libraries, etc. must be specified
on the Android NDK's linker command line, to avoid
re-gyping when switching between Android IA32 and ARM,
this change moves the architecture specific linker
flags to a script, android_link.py.

To avoid re-gyping when swtiching between Linux and
Android, this change creates new configurations
that specify the target OS as well as the the target
architecture, e.g. ReleaseLinuxARM or ReleaseAndroidARM
instead of ReleaseARM.

This change also adds a --toolchain flag to build.py,
and removes obsoleted logic for setting up the Android
build.

R=iposva@google.com

Review URL: https://codereview.chromium.org//105223002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31340 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 17:51:34 +00:00
zra@google.com df1e5247fe Adds support for ARM softfp calling convention.
The cross-compiler with the Android NDK doesn't support
the 'hard' calling convention, so we need both. I've
added a preprocessor define to the gyp file for the
standalone vm indicating support for 'hard' so that I
don't have to modify the Dartium gyp files.

R=srdjan@google.com

Review URL: https://codereview.chromium.org//52803002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29577 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-30 18:57:55 +00:00
zra@google.com e155ff8c53 Revert last commit
Review URL: https://codereview.chromium.org//23889034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27507 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-13 23:36:32 +00:00
zra@google.com a61d0c66b0 Allows build of the standalone VM for ARM adroid.
R=iposva@google.com, vsm@google.com

Review URL: https://codereview.chromium.org//23788009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27506 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-13 23:29:14 +00:00
kustermann@google.com 0d8293ef34 Initial support for mac installers. Currently only on our editor builders on FYI
R=devoncarew@google.com, ricow@google.com

Review URL: https://codereview.chromium.org//16831019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24271 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 08:37:25 +00:00
kustermann@google.com f73188d127 Use gnueabihf for ARM + enabled corelib/isolate/lib/standalone tests on ARM again
R=regis@google.com

Review URL: https://codereview.chromium.org//16638009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23854 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-11 14:21:28 +00:00
kustermann@google.com 8464ae2ed2 Remove hack for codesourcery crosscompiler since we've precise VMs now
R=ricow@google.com

Review URL: https://codereview.chromium.org//16168004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23334 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-29 09:36:18 +00:00
kustermann@google.com cfa3c09596 Support for overriding the target toolchain when cross compiling
R=ricow@google.com

Review URL: https://codereview.chromium.org//16143002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@23248 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-28 10:43:08 +00:00
gram@google.com 0eacf440b3 Fix the Skia build for Android.
This will allow the APKs to build successfully, but they are not working anymore. It's a useful step towards fixing them at least.

R=vsm@google.com

Review URL: https://codereview.chromium.org//15317012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22952 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-21 18:50:12 +00:00