Commit Graph

117 Commits

Author SHA1 Message Date
Mike Hommey
20f01277a6 Bug 1575375 - Pull mozbuild tests out of make check. r=nalexander
Differential Revision: https://phabricator.services.mozilla.com/D42759

--HG--
extra : moz-landing-system : lando
2019-08-21 05:00:50 +00:00
Justin Wood
baa089903e Bug 1559975 - Make config/ lint with 'py2' and 'py3' r=catlee
Depends on D36091

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

--HG--
extra : moz-landing-system : lando
2019-07-08 17:30:34 +00:00
Ted Campbell
388abb1424 Bug 1138579 - Support multiple Files patterns in moz.build r=gps
Add support for |with Files('a/**', 'b/**')| in mozbuild config files.

MozReview-Commit-ID: IoM4qfEhXXc

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

--HG--
extra : moz-landing-system : lando
2018-09-20 01:58:21 +00:00
Akshay Chiwhane
5d96779c1c Bug 1465046 - Remove ProcessHandler.waitForFinish(). r=whimboo
--HG--
extra : rebase_source : 9df8444de596c5868efd18c62054f321513b99d6
2018-08-20 21:28:21 +02:00
Andrew Halberstadt
9435736ade Bug 1471620 - Skip python-tests locally that don't run with python 3 in CI r=davehunt
This will make sure that when running |mach python-test --python 3| locally,
we only run the tests that also run in CI with python 3 (and therefore pass
presumably).

MozReview-Commit-ID: 3OBr9yLSlSq

--HG--
extra : rebase_source : 456340d0ecdddf1078f2b5b4ebb1eddf3813b26a
2018-06-27 11:10:02 -04:00
Sylvestre Ledru
a80feff40b bug 1463425 - Fix flake8/pep8 issue by hand in config/ r=gps
MozReview-Commit-ID: 6B60uh4n2nY

--HG--
extra : rebase_source : 4fd44789a9ee6376c72bae1132f73c81dd1eacbc
2018-05-22 06:22:46 -07:00
Sylvestre Ledru
3d085810e5 bug 1463425 - autopep8 on config/ r=gps
MozReview-Commit-ID: EaTAhH2CAee

--HG--
extra : rebase_source : f278cd9fc6e8f9db720c1430121ba91e0417c9b9
2018-05-22 00:01:01 +02:00
Chris Manchester
de12a7992b Bug 1429875 - Remove expandlibs and instead generate list files in the mozbuild backend. r=glandium
MozReview-Commit-ID: 5eLwnh1HHGj

--HG--
extra : rebase_source : cd308adc4542be0f9b33b64d31a2d0dc0310fcd4
2018-03-20 16:31:05 -07:00
Andrew Halberstadt
f79b06a32a Bug 1339178 - Use pytest to run python-tests, r=davehunt
This switches most tests over to use pytest as the runner instead of unittest (taking
advantage of the fact that pytest can run unittest based tests).

There were a couple tests that had failures when swithing to pytest:
config/tests/unit-expandlibs.py
xpcom/idl-parser/xpidl/runtests.py

For these tests, I added a runwith='unittest' argument so that they still run the
same way as before. Once we fix them to use pytest, the unittest logic in mozunit.py
can be deleted.

MozReview-Commit-ID: Gcsz6z8MeOi

--HG--
extra : rebase_source : 3c762422ce0af54cbbe7d9fc20085a2d1ebe7057
2017-08-29 14:50:33 -04:00
Gregory Szorc
3712aeca37 Bug 1304508 - Remove makefile mkdir testing; r=ted
Several years ago, joey starting writing a handful of unit tests for
primitives in our make files. IIRC a lot of the impetus behind this
work was to flush out bugs between GNU make and pymake.

AFAICT the only survivor of these tests today is check_mkdir.py. The
test is a one-off and has been a bit fragile over the years,
contributing technical debt along the way. And as part of removing the
last references to pymake in automation, it is once again showing
itself and failing in a way that has to do with the way the test
is written and not an issue with the code it is testing. Enough is
enough. This commit removes the test and eliminates the technical
debt. I don't think it will be missed.

MozReview-Commit-ID: 3OzurtFbcyD

--HG--
extra : rebase_source : 6d3cf6121c90e9c47948862b8c4117bb1d3e5afd
2017-04-26 13:27:37 -07:00
Mike Shal
206b54e042 Bug 1338608 - Use mozunit in check_mkdir.py; r=chmanchester
This makes the check_mkdir.py match the TEST-PASS output of other tests
in the suite.

MozReview-Commit-ID: FR3m09wRXg0

--HG--
extra : rebase_source : 2e59fb8bc4756a9ef9fdbcf69af80e179be80cc0
2017-02-02 18:04:23 -05:00
Mike Shal
0acd1a6b5f Bug 1338608 - Move check_mkdir.tpy into a python unittest manifest; r=chmanchester
We also rename it to check_mkdir.py for consistency with other python
files.

MozReview-Commit-ID: ALuX6NUMsD2

--HG--
rename : config/tests/makefiles/autodeps/check_mkdir.tpy => config/tests/makefiles/autodeps/check_mkdir.py
extra : rebase_source : a7215c832896dd040ae2c5b3c3c2d7247c8163d8
2017-02-02 17:49:11 -05:00
Mike Hommey
dc5d1e6adf Bug 1335309 - Change the default for find_executables to False. r=mshal
Back when the class was written, for the packaging code, it made sense
that the default was True. But now that it's used all over the place,
and that the vast majority of uses are with find_executables=False, it
makes more sense for that to be the default.

--HG--
extra : rebase_source : ff813735fc0d53093f348f20eb77ee03e9b09d4e
2017-01-31 14:06:15 +09:00
Andrew Halberstadt
6adcf5b456 Bug 1317970 - Use manifestparser manifests for python unit tests, r=chmanchester
This deprecates PYTHON_UNIT_TESTS and replaces it with PYTHON_UNITTEST_MANIFESTS.
In the build system, this means python unittests will be treated the same as all
other test suites that use manifestparser. New manifests called 'python.ini' have
been created for all test directories containing python unittests.

MozReview-Commit-ID: IBHG7Thif2D

--HG--
extra : rebase_source : 11a92a2bc544d067946bbd774975140147458caa
2016-11-16 09:59:22 -05:00
Elias Probst
fa561f244a Bug 1293234 - Use octal notation for permission modes in the build system; r=gps
As of Python 3, decimal notations of octal values for permission modes
are no longer permitted and will result in a `SyntaxError` exception
(`invalid token`).

Using the proper octal notation which is also Python 2.7 compatible will
fix this issue.

--HG--
extra : rebase_source : 2e897c51f04ad0ee69071f84b98df224f3af72d3
2016-08-08 13:45:17 +02: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
8a3b88f341 Bug 1278415 - Also write a mozinfo for js standalone builds. r=gps
Historically, a mozinfo for js standalone build has not been necessary,
but with the move towards a) having things work with mach and b)
buildconfig using the MozbuildObject.from_environment in next patch,
mozinfo becomes necessary (it's required for
MozbuildObject.from_environment to find the directory is an objdir).

Interestingly, hazard builds do both a js standalone build and a desktop
Firefox build at the same time, both of which are done with MOZCONFIG
set in the environment... with the Firefox mozconfig. The result of now
writing a mozinfo for js standalone builds is that in that case, they
end up with a reference to the mozconfig, which the build system then
reads, and finds a MOZ_OBJDIR, which then doesn't match the js
standalone build objdir. So for those builds, reset MOZCONFIG.
2016-06-16 11:43:23 +09:00
Chris Manchester
6a21a3345a Bug 1256979 - Move MOZ_CHROME_FILE_FORMAT to Python configure. r=glandium
The config variable is re-named to avoid confusion, because it is not set by
--enable-chrome-format.

MozReview-Commit-ID: 37gvjGGSkRc
2016-04-14 12:26:38 -07:00
Mike Hommey
e88f90548f Bug 1222323 - Avoid passing extra defines to the compiler from config.mk. r=gps
C/C++ code should not be relying on XPI_NAME or AB_CD being defined, so
moving them out works.
2015-11-14 08:40:54 +09:00
Chris Manchester
c95264033a Bug 1184405 - Add a test to fail the build if file patterns are present in test dependency annotations that don't correspond to any files on disk. r=gps
--HG--
extra : commitid : HuJebAX8Bwj
2015-09-25 07:33:11 -07:00
Wes Kocher
8c818726fd Backed out changeset f7a0080dfd6b (bug 1184405) for SM build bustage CLOSED TREE 2015-09-25 09:14:26 -07:00
Chris Manchester
a75c9ca6bd Bug 1184405 - Add a test to fail the build if file patterns are present in test dependency annotations that don't correspond to any files on disk. r=gps
--HG--
extra : commitid : 5xR5ZLc8wOl
2015-09-25 07:33:11 -07:00
Gregory Szorc
6d01f694ab Bug 1132771 - Support and test for reading without a config object; r=glandium
We want the ability to read data from any moz.build file without needing
a full build configuration (running configure). This will enable tools
to consume metadata by merely having a copy of the source code and
nothing more.

This commit creates the EmptyConfig object. It is a config object that -
as its name implies - is empty. It will be used for reading moz.build
files in "no config" mode.

Many moz.build files make assumptions that variables in CONFIG are
defined and that they are strings. We create the EmptyValue type that
behaves like an empty unicode string. Since moz.build files also do some
type checking, we carve an exemption for EmptyValue, just like we do for
None.

We add a test to verify that reading moz.build files in "no config" mode
works. This required some minor changes to existing moz.build files to
make them work in the new execution mode.

--HG--
extra : rebase_source : f701417f83dfa4e196e39182f8d0a6fea46c6fbb
extra : source : af07351bf2d6e85293ae3edf0fe4ae6cbc0ce246
2015-02-26 10:21:52 -08:00
Gregory Szorc
68dc339213 Bug 1132771 - Add a test for reading all moz.build files in filesystem traversal mode; r=glandium
moz.build files should execute in filesystem traversal mode. Add a test
that verifies this is true.

This test performs a brute force filesystem scan to find relevant
moz.build files. This can be a little slow. That's unfortunate. But it's
a price we need to pay in order to ensure metadata extraction mode
continues to work.

--HG--
extra : rebase_source : 7ae9be71b7cd995c0794f980c5d76f38366637c6
extra : source : 91d34d3107faa777264cdcc9c89456bf4c289466
2015-03-02 09:43:11 -08:00
Joshua Cranmer
6bc7254918 Bug 1099430, mozilla-central parts: Eliminate the duplication of the build system in comm-central, r=glandium.
See the revisions a few steps prior for more fine-grained information. This just
needs to be relanded because our automation doesn't like non-ASCII commit
messages.

--HG--
extra : amend_source : 0ee4e0da1ea9ada815abfe989c51030db24aac56
2014-11-29 19:45:31 -06:00
Phil Ringnalda
23f2a4bc21 Backed out 3 changesets (bug 1099430) because 256 characters should be enough for anybody's commit message
CLOSED TREE

Backed out changeset 28abb8af2d62 (bug 1099430)
Backed out changeset 358aa39360d5 (bug 1099430)
Backed out changeset 3313e545f4f6 (bug 1099430)
2014-11-29 17:17:58 -08:00
Joshua Cranmer
358bd037da Bug 1099430, part 一: Define MOZILLA_DIR early in the base makefiles, r=glandium.
This change allows us to use use MOZILLA_DIR even for changes in config.mk. The
corollary is that comm-central needs to define MOZILLA_DIR before calling into
baseconfig.mk, which it already does.

The change to the test Makefile is needed since it decides to skip including
config.mk, and hence baseconfig.mk, where it would need to grab the MOZILLA_DIR
declaration.
2014-11-29 18:44:10 -06:00
Mike Hommey
8c10235da0 Bug 1077151 - Always use expandlibs descriptors when they exist. r=mshal
Currently, when there is both an expandlibs descriptor and an actual static
library, expandlibs picks the static library. This has the side effect that
if there are object files in the static library that aren't directly used,
they're dropped when linking, even when they export symbols that would be
exported in the final linked binary.

In most cases in the code base, files are not dropped that way. The most
notable counter-example is xpcomglue, where actually not dropping files
leads to link failure because of missing symbols those files reference
(yes, that would tend to say the glue is broken in some way).

On the opposite side, there is mozglue, which does have both a descriptor
and a static library (the latter being necessary for the SDK), and that
linking as a static library drops files that shouldn't be dropped (like
jemalloc). We're currently relying on -Wl,--whole-archive for those files
not to be dropped, but that won't really be possible without much hassle
in a world where mozglue dependencies live in moz.build land.

Switching expandlibs to use descriptors when they exist, even when there
is a static library (so, the opposite of the current behavior) allows to
drop -Wl,--whole-archive and prepare for a better future. However, as
mentioned, xpcomglue does still require to be linked through the static
library, so we need to make it a static library only.

To achieve that, we make NO_EXPAND_LIBS now actually mean no expandlibs
and use that to build the various different xpcomglues.
2014-10-04 10:33:00 +09:00
Mike Hommey
99fdc4c1d6 Bug 1043869 - Derive build dependencies for programs and libraries from make backend data instead of getting them from expandlibs. r=mshal 2014-07-29 08:59:56 +09:00
Mike Hommey
b161fa67a5 Bug 1027890 - Remove all sorts of build system code dedicated to pymake. r=gps 2014-06-25 08:38:28 +09:00
Mike Hommey
cd488645d5 Bug 1024620 - Use object files next to archives when extracting them at link time, or in a subdirectory. r=ted 2014-06-14 09:08:22 +09:00
Gregory Szorc
e396fc159d Bug 774572 - Part 2: Define JAR_MANIFESTS in moz.build files; r=glandium
Every directory with a jar.mn now has JAR_MANIFESTS defined in its
moz.build file.

We also removed the may_skip special consideration of jar.mn files
because this information is now available during tier traversal by the
reader courtesy of the variables being present in moz.build files.

--HG--
extra : rebase_source : 21049b15e6bd9cf65b0805ccaccc4ba5aae93c98
extra : amend_source : 0b1ea866d725beef92d37c6f6d475369ac002e19
2013-12-10 16:18:11 +09:00
Mike Hommey
881a7c1554 Bug 943728 - Replace double quotes with single quotes in Makefiles (or remove them when it makes sense). r=mshal 2013-12-03 06:34:21 +09:00
Mike Hommey
29056e837a Bug 942377 - Fix check_mkdir.tpy with mozmake. r=mshal 2013-11-26 11:49:55 +09:00
Gregory Szorc
e7b3d38b5c Bug 937803 - os.path.exists should work with MockedOpen; r=glandium
--HG--
extra : rebase_source : 567b70b6a75f3c918da2c99ceb490ac569919ed0
2013-11-12 12:30:34 -08:00
Mike Hommey
a470038314 Bug 935305 - Move preprocessor to mozbuild.action. r=gps
--HG--
rename : config/Preprocessor.py => python/mozbuild/mozbuild/preprocessor.py
rename : config/tests/unit-Expression.py => python/mozbuild/mozbuild/test/test_expression.py
rename : config/tests/unit-LineEndings.py => python/mozbuild/mozbuild/test/test_line_endings.py
rename : config/tests/unit-Preprocessor.py => python/mozbuild/mozbuild/test/test_preprocessor.py
2013-11-09 10:35:44 +09:00
Joshua Cranmer
9e2f53a5c5 Bug 900526, part 2: Move backend.mk inclusion to config.mk instead of rules.mk, r=gps 2013-10-21 13:08:00 -05:00
Gregory Szorc
81b47f773e Bug 924615 - Move JarMaker.py into mozbuild; r=mshal
--HG--
rename : config/JarMaker.py => python/mozbuild/mozbuild/jar.py
rename : config/tests/unit-JarMaker.py => python/mozbuild/mozbuild/test/test_jarmaker.py
2013-10-11 13:19:11 -07:00
Gregory Szorc
dfb77e1fbd Bug 585016 - Move buildlist.py to a mozbuild action; r=mshal
--HG--
rename : config/buildlist.py => python/mozbuild/mozbuild/action/buildlist.py
rename : config/tests/unit-buildlist.py => python/mozbuild/mozbuild/test/action/test_buildlist.py
2013-10-11 07:22:49 -07:00
Mike Hommey
f8bc7fa754 Bug 912293 - Remove now redundant boilerplate from Makefile.in. r=gps 2013-09-05 09:01:46 +09:00
Mike Hommey
b411362875 Bug 912368 - Set relativesrcdir in config/tests/src-simple/Makefile and adjust so that it works. r=gps 2013-09-05 09:01:45 +09:00
Gregory Szorc
725466ff53 Bug 902619 - Write mozinfo.json as part of config.status; r=ted
There are both mechanical and logical changes in this patch.

The mechanical changes involve moving some files into the mozbuild
package.

The logical changes include move writing of mozinfo.json into
config.status (from configure.in). There were some variable assignments
being performed in configure.in. These variables were read from
writemozinfo.py. However, these variables don't appear to be necessary!
Now that mozinfo has full access to the underlying config.status data
structure, it can now access these variables directly. I verified that
every variable being assigned in configure.in had a corresponding
AC_SUBST earlier in the file.

The only variable that's a bit weird is the TOPSRCDIR and MOZCONFIG
environment variables. mozinfo continues to look in the environment for
MOZCONFIG. However TOPSRCDIR is now coming from config.status.

As part of moving the code, I also modernized the test file, cleaned up
some style, and removed some unused imports.

--HG--
rename : config/writemozinfo.py => python/mozbuild/mozbuild/mozinfo.py
rename : config/tests/unit-writemozinfo.py => python/mozbuild/mozbuild/test/test_mozinfo.py
2013-08-07 23:48:41 -07:00
Mike Hommey
b97d1767fc Bug 892904 - Remove useless includes of config.mk. r=gps 2013-07-15 18:48:40 +09:00
Andrew Halberstadt
268cae137d Bug 746546 - writemozinfo.py should use the buildconfig module, r=ted 2013-05-21 16:06:42 -04:00
Matt Brubeck
e1d2564c1b Reapplied changeset 31ff9550fba6 (bug 870073) 2013-05-10 15:49:57 -07:00
Kyle Machulis
72a717a860 Bug 855465 - Add emacs python mode comments to moz.build files; r=gps 2013-04-01 11:36:59 -07:00
Kyle Machulis
43628a7867 Backout for changeset 03452b187c14 (Bug 855465) due to bustage on a CLOSED TREE; r=qdot 2013-03-29 15:12:58 -07:00
Kyle Machulis
334c0800cf Bug 855465 - Add emacs python mode comments to moz.build files; r=gps
--HG--
extra : rebase_source : 004a756492323e1a049586e85b3be5037159df20
2013-03-29 13:56:18 -07:00
Mike Hommey
b8333c7486 Bug 648407 - Support expandlibs_exec.py --extract on windows. r=ted 2013-03-17 07:44:57 +01:00
Yati Sagade
999eeb2111 Bug 812179 - Removed hacks for Python < 2.6 from config/ [r=ted] 2013-02-27 22:30:56 +05:30