Граф коммитов

39 Коммитов

Автор SHA1 Сообщение Дата
Ricky Stewart 807b3a0bf2 Bug 1562996 - Add a GeneratedFile template to get rid of some of the boilerplate involved in interfacing with GENERATED_FILES. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D47019

--HG--
extra : moz-landing-system : lando
2019-10-01 18:10:16 +00:00
Mike Hommey ef3ad686ee Bug 1512504 - Remove support for MSVC. r=froydnj
Consequently, this removes:
- MOZ_LIBPRIO, which is now always enabled.
- non_msvc_compiler, which is now always true.
- The cl.py wrapper, since it's not used anymore.
- CL_INCLUDES_PREFIX, which was only used for the cl.py wrapper.
- NONASCII, which was only there to ensure CL_INCLUDES_PREFIX still
  worked in non-ASCII cases.

This however keeps a large part of detecting and configuring for MSVC,
because we still do need it for at least headers, libraries, and midl.

Depends on D19614

Differential Revision: https://phabricator.services.mozilla.com/D19615

--HG--
extra : moz-landing-system : lando
2019-02-14 21:45:27 +00:00
Chris Manchester 9c0704f0de Bug 1499196 - Always use the topobjdir to output rust library dependencies. r=ted,firefox-build-system-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D9039
2018-10-18 10:40:32 +00:00
Margareta Eliza Balazs 6f90611dce Backed out 4 changesets (bug 1499196) for regression author didn't respond on time, depends on 1501178, requested by igoldan. a=backout
Backed out changeset c43c91d2b97b (bug 1499196)
Backed out changeset caaad097961a (bug 1499196)
Backed out changeset 98fad0b05551 (bug 1499196)
Backed out changeset 470e06d78a7b (bug 1499196)
2018-10-29 10:30:22 +02:00
Chris Manchester 8c172cbba2 Bug 1499196 - Always use the topobjdir to output rust library dependencies. r=ted,firefox-build-system-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D9039

--HG--
extra : moz-landing-system : lando
2018-10-18 10:40:32 +00:00
Myk Melez 7978cd2fe4 Bug 1482810 - set COMPILE_FLAGS var to hide warnings for Rust crates r=chmanchester
In conjunction with the cc crate changes in https://github.com/alexcrichton/cc-rs/pull/342 (which I'll land in https://phabricator.services.mozilla.com/D4699), this hides warnings generated by C code in Rust crates (by removing warnings flags from CFLAGS when compiling Rust libraries).

MozReview-Commit-ID: 9CZgLGbWjbA

Differential Revision: https://phabricator.services.mozilla.com/D3939

--HG--
extra : moz-landing-system : lando
2018-08-30 17:29:54 +00:00
Chris Manchester c346a68ae0 Bug 1474028 - Add a way to exclude libraries from the default build. r=ted
MozReview-Commit-ID: MVfplx9lN2

--HG--
extra : rebase_source : 10b4bd3dcc1386d782531206c84b66207297d00a
2018-08-10 12:07:29 -07:00
Narcis Beleuzu f4e5fb2d0f Backed out 2 changesets (bug 1474028) per chmanchester`s request. a=backout
Backed out changeset 52bd814d3589 (bug 1474028)
Backed out changeset 39a528147c34 (bug 1474028)
2018-08-12 21:22:45 +03:00
Chris Manchester 2476269229 Bug 1474028 - Add a way to exclude libraries from the default build. r=ted
MozReview-Commit-ID: MVfplx9lN2

--HG--
extra : rebase_source : 3eb5352b5bc0d1b9be857c16efa5af0313afb6e7
2018-08-10 12:07:29 -07:00
Ted Mielczarek ce290f24b1 bug 1409276 - disable warnings-as-errors for Rust libraries/programs. r=chmanchester
When compiling C/C++ sources via Rust build scripts there's no point in
enabling warnings-as-errors as all such code is third-party code.

MozReview-Commit-ID: 5pGH6w9ZE2I

--HG--
extra : rebase_source : ad36be6aed39d55055728f85b799adf5f0cf0f4b
2018-07-16 13:52:14 -04:00
Mike Hommey b2837054ff Bug 1469091 - Build the clang plugin as a host shared library. r=ted
This adds just enough host shared library support for this one use case,
but also takes shortcuts, because fully supporting host shared library
is a deep rabbit hole I'm not ready to take just to fix --enable-lto
--enable-clang-plugin on mac builds.

One downside is that one my machine the plugin now takes > 80s to build,
instead of 15s before, thanks to the lack of unified sources.

--HG--
extra : rebase_source : bf52a72a01d4e3eb77cf52b646b19734b9273075
2018-07-05 14:58:09 +09:00
Kris Maglione c4035f104c Bug 1463637: Remove mozilla-config.h hacks for Hunspell extra includes. r=ted
MozReview-Commit-ID: 2yBlykhQsyV

--HG--
extra : rebase_source : d51a663c5f7d4c9cce09c649003c5577fe5952d0
2018-05-22 20:36:39 -07:00
Xidorn Quan 1c8dc43017 Bug 1457524 part 1 - Use a list for rust tests. r=froydnj
MozReview-Commit-ID: 6A0hHClXDUE

--HG--
extra : rebase_source : 827bb569642aa2ad834b94f08af3f60b68552de4
2018-05-02 11:51:25 +10:00
Mike Hommey e0bbb4aa9e Bug 1423802 - Handle stdc++compat and STLPORT_LIBS at the emitter level. r=nalexander
Bug 1256642 introduced magic at the emitter level to determine whether a
binary contains C++ sources and should be linked with the C compiler or
the C++ compiler.

Unfortunately, the Binary() moz.build template always adds C++ OS
libraries on Android (through STLPORT_LIBS), and C++ libraries on Linux
(stdc++compat).

The latter only ends up forcing every Binary() to be linked with the C++
linker, which is unfortunate, but doesn't cause much problems. The
former, however, involving OS libraries, the magic from bug 1256642
doesn't kick in, so we end up trying to link C++ OS libraries with the C
linker. Which ends up failing, because the libraries in STLPORT_LIBS
require -lm, which, while it's added by the C++ compiler when linking,
is not when the linkage is driven by the C compiler.

Because the fallible library, linked to all GeckoBinary()s is a C++
library, we still ended up linking with the C++ compiler on Android, so
this wasn't actually causing any problem... until I tried to remove that
fallible library in bug 1423803.

Anyways, the core problem is that moz.build evaluation is happening too
early to know whether any C++ sources are being linked together, so
there is no way the Binary() template can do the right thing. So this
change moves the logic to the emitter.

This also changes the type of STLPORT_LIBS to a list.

--HG--
extra : rebase_source : a70ddf7a132f94dc10e7e1db94ae80fb8d7a269f
2017-12-07 12:15:32 +09:00
Chris Manchester 89f38841e2 Bug 1403346 - Implement ALLOW_COMPILER_WARNINGS as a template. r=glandium
MozReview-Commit-ID: 611XXi8hCKm
2017-10-25 15:12:09 -07:00
Nathan Froyd f0fcd23367 Bug 1373878 - part 2 - build system support for Rust tests; r=rillian 2017-10-02 09:21:22 -04:00
Chris Manchester 73a827ed43 Bug 1398897 - Move includes associated with CPP_UNIT_TESTS to the CppUnitTests template. r=glandium
MozReview-Commit-ID: DhjnzhAjoyy

--HG--
extra : rebase_source : 75faf6212f3a9913d75ecb223f29ce7e9ac46a1c
2017-09-20 12:43:24 -07:00
Chris Manchester 26d4e4810c Bug 1386876 - Move visibility flag handling to computed compile flags with templates. r=glandium
MozReview-Commit-ID: 9hwiCQv8WKU

--HG--
extra : rebase_source : cc7593fd06949a432dd056194ff19c1ac0daf4e4
2017-09-11 11:36:31 -07:00
Chris Manchester e059037e2b Bug 1386876 - Add classes to handle compile flags computed by moz.build with templates, convert 'DISABLE_STL_WRAPPING' to use them. r=glandium
MozReview-Commit-ID: 3PYOtX4E8OC

--HG--
extra : rebase_source : 162999582bc2ef078680ce6feae628d5b1f4e857
2017-04-28 16:35:19 -07:00
Nathan Froyd 3b6501dd91 Bug 1377970 - add -llog for Android in moz.build; r=chmanchester
Adding -llog in this way is cleaner and is just a little bit less m4.
2017-07-05 09:32:30 -04:00
Nathan Froyd a13c8b0b74 Bug 1302704 - part 3 - propagate information about CARGO_TARGET_DIR from the frontend into the backend; r=chmanchester
Rust libraries can set RUST_LIBRARY_TARGET_DIR so that they can share
compilation artifacts with other libraries.  This setting needs to be
propagated to the backend so it can be communicated to Cargo.
2017-02-23 10:35:07 -05:00
Chris Manchester 26adeacc8a Bug 1312916 - Add support for host rust libraries in moz.build. r=froydnj
MozReview-Commit-ID: It8VH5Obnx5

--HG--
extra : rebase_source : bc4dabb18ff51c45ac8df5a409881d0d4a7279fa
2017-01-19 14:58:10 -08:00
Nathan Froyd 26ac93d4c7 Bug 1319156 - followup - only assign RUST_LIBRARY_FEATURES when features are provided to RustLibrary; r=me
Do this to re-open the CLOSED TREE.
2016-12-02 11:56:43 -05:00
Nathan Froyd d861eee0f6 Bug 1319156 - part 1 - add features to RustLibrary objects and moz.build definitions; r=chmanchester
Ideally, people will just use the extra argument to RustLibrary to
define features for their library.
2016-12-02 11:39:15 -05:00
Nathan Froyd ed9a70c138 Bug 1301076 - remove stlport support from the build system and stlport code; r=glandium
We can no longer build with STLport now that we require a
C++11-compliant standard library, so we might as well get rid of all the
support for it.
2016-09-21 19:21:40 -04:00
Nathan Froyd f7fb6722a6 Bug 1231764 - part 6 - build rust code via cargo; r=chmanchester
This patch is really two separate changes.

The first change is that rust crates are large, standalone entities that
may contain multitudes of source files.  It therefore doesn't make sense
to keep them in SOURCES, as we have been doing.  Moving to use cargo
will require a higher-level approach, which suggests that we need a
different, higher-level representation for Rust sources in the build
system.

The representation here is to have the build system refer to things
defined in Cargo.toml files as the entities dealt with in the build
system, and let Cargo deal with the details of actually building things.
This approach means that adding a new crate to an existing library just
requires editing Rust and Cargo.toml files, rather than dealing with
moz.build, which seems more natural to Rust programmers.  By having the
source files for libraries (and binaries in subsequent iterations of
this support) checked in to the tree, we can also take advantage of
Cargo.lock files.

The second is that we switch the core build system over to building via
cargo, rather than invoking rustc directly.

We also clean up a number of leftover things from the Old Way of doing
things.  A number of tests are added to confirm that we'll only permit
crates to be built that have dependencies in-tree.
2016-08-06 00:49:26 -04:00
Wes Kocher 9605851be0 Backed out 7 changesets (bug 1231764) for apparently causing linux debug wpt bustage
Backed out changeset 4b71272c92cf (bug 1231764)
Backed out changeset 234d8a930afa (bug 1231764)
Backed out changeset f9b204c2f5a7 (bug 1231764)
Backed out changeset f933119e57e4 (bug 1231764)
Backed out changeset e3af0b1d3473 (bug 1231764)
Backed out changeset 643b03aae1dd (bug 1231764)
Backed out changeset a945dbf63410 (bug 1231764)

--HG--
extra : rebase_source : e71360fa4b5e3e74859c82e74e183e13e6211c4c
2016-08-03 16:27:06 -07:00
Nathan Froyd 6b2618fb44 Bug 1231764 - part 6 - build rust code via cargo; r=chmanchester
This patch is really two separate changes.

The first change is that rust crates are large, standalone entities that
may contain multitudes of source files.  It therefore doesn't make sense
to keep them in SOURCES, as we have been doing.  Moving to use cargo
will require a higher-level approach, which suggests that we need a
different, higher-level representation for Rust sources in the build
system.

The representation here is to have the build system refer to things
defined in Cargo.toml files as the entities dealt with in the build
system, and let Cargo deal with the details of actually building things.
This approach means that adding a new crate to an existing library just
requires editing Rust and Cargo.toml files, rather than dealing with
moz.build, which seems more natural to Rust programmers.  By having the
source files for libraries (and binaries in subsequent iterations of
this support) checked in to the tree, we can also take advantage of
Cargo.lock files.

The second is that we switch the core build system over to building via
cargo, rather than invoking rustc directly.

We also clean up a number of leftover things from the Old Way of doing
things.  A number of tests are added to confirm that we'll only permit
crates to be built that have dependencies in-tree.
2016-08-03 19:40:41 -04:00
Tom Tromey 5538d692d3 Bug 1286877 - do not set c-basic-offset for python-mode; r=gps
This removes the unnecessary setting of c-basic-offset from all
python-mode files.

This was automatically generated using

    perl -pi -e 's/; *c-basic-offset: *[0-9]+//'

... on the affected files.

The bulk of these files are moz.build files but there a few others as
well.

MozReview-Commit-ID: 2pPf3DEiZqx

--HG--
extra : rebase_source : 0a7dcac80b924174a2c429b093791148ea6ac204
2016-07-14 10:16:42 -06:00
Mike Hommey 07dc39e490 Bug 1249167 - Fix dependencies involving stdc++compat and clang-plugin. r=mshal 2016-02-19 07:00:03 +09:00
Nick Alexander 151142df55 Bug 1227248 - Part 2: Add GeneratedTest{Certificate,Key} mozbuild templates. r=gps
--HG--
extra : commitid : 793A1duvlom
extra : rebase_source : 5a8fa9f0fb76dceb19525986381cb2a28676601b
extra : histedit_source : aebc6e99e83aaafba08626517850ff4ee23e4c82
2015-12-14 11:50:56 -08:00
Nathan Froyd 70573b80f5 Bug 1164921 - part 3 - make more things depend on CONFIG[MOZ_ANDROID_CXX_STL]; r=glandium 2015-10-15 16:32:25 +09:00
Mike Hommey 47c853314f Bug 1077148 part 4 - Add and use new moz.build templates for Gecko programs and libraries. r=gps
There are, sadly, many combinations of linkage in use throughout the tree.
The main differentiator, though, is between program/libraries related to
Gecko or not. Kind of. Some need mozglue, some don't. Some need dependent
linkage, some standalone.

Anyways, these new templates remove the need to manually define the
right dependencies against xpcomglue, nspr, mozalloc and mozglue
in most cases.

Places that build programs and were resetting MOZ_GLUE_PROGRAM_LDFLAGS
or that build libraries and were resetting MOZ_GLUE_LDFLAGS can now
just not use those Gecko-specific templates.
2014-10-30 13:06:12 +09:00
Mike Hommey deb5d056a6 Bug 1090107 - Define stlport dependencies in moz.build. r=mshal 2014-10-29 13:29:42 +09:00
Mike Hommey af78326e62 Bug 1059129 - Move the addition of stdc++compat to templates. r=mshal 2014-09-04 09:05:12 +09:00
Mike Hommey 4b99580194 Bug 1059113 - Use templates for shared libraries and frameworks. r=gps
Also force to use the existing template for XPCOM components.
2014-09-04 09:04:45 +09:00
Mike Hommey 0060683747 Bug 1059090 - Don't require SOURCES to be set for CPP_UNIT_TESTS and SIMPLE_PROGRAMS. r=mshal 2014-09-03 14:16:37 +09:00
Mike Hommey ed70c5f377 Bug 1041941 - Use templates for programs, simple programs, libraries and C++ unit tests. r=gps 2014-09-03 14:10:54 +09:00
Mike Hommey 9461e860e6 Bug 1041941 - Use templates for Gecko XPCOM components. r=gps 2014-08-24 09:11:05 +09:00