Nirbheek Chauhan
aeee01f639
rmtree: Don't retry when the file is not found
...
No need to pointlessly loop for several seconds in this case.
2018-02-20 00:19:11 +02:00
Nirbheek Chauhan
657d9f2b29
Support running out-of-tree tests against a meson in PATH
...
Closes https://github.com/mesonbuild/meson/issues/3015
2018-02-20 00:17:18 +02:00
Robert Bragg
6f510ca695
Don't version shared libraries for Android
...
Android's loader doesn't handle shared library versioning so this avoids
adding a suffix to the filename or soname for Android hosts.
2018-02-04 00:49:16 +02:00
Aleksey Filippov
2cf85ae16f
Use os.path: basename() and dirname() instead of split()
...
According to Python documentation[1] dirname and basename
are defined as follows:
os.path.dirname() = os.path.split()[0]
os.path.basename() = os.path.split()[1]
For the purpose of better readability split() is replaced
by appropriate function if only one part of returned tuple
is used.
[1]: https://docs.python.org/3/library/os.path.html#os.path.split
2018-01-30 07:08:22 +11:00
Salamandar
93ba30751e
dump_conf_header should rewrite file only if modified (just like do_conf_file) ( #2952 )
2018-01-30 06:33:38 +11:00
Jussi Pakkanen
dfd368d405
Merge pull request #2803 from dcbaker/wip/freebsd-fixes
...
various BSD fixes
2018-01-09 22:08:00 +02:00
Jussi Pakkanen
392b3d8bc7
Merge pull request #2840 from alyst/fix_detect_location
...
Fix meson location detection from other meson tools
2018-01-07 19:27:19 +02:00
Dylan Baker
660dee1e10
LLVM: use DragonFly BSD workaround on FreeBSD as well
2018-01-06 13:49:34 -08:00
Dylan Baker
10a560a411
compilers: fix unittest "16 prebuilt shared" on dragonfly bsd
2018-01-06 13:49:34 -08:00
Jussi Pakkanen
0538009d30
Bump minimum supported Python from 3.4 to 3.5.
2018-01-04 21:29:02 +02:00
Alexey Stukalov
da44a93daa
normpath to bundled meson executable
...
add comments clarifying when the 1st method of finding meson.py may fail
2018-01-03 14:58:30 +01:00
Alexey Stukalov
8fc4244187
fix meson location detection if run by wraptool
...
teach detect_meson_py_location() that meson.py is not the
only one meson executable (there's wraptool + legacy scripts)
that could be installed to the PATH folder
fixes #2810
2018-01-03 14:58:09 +01:00
Benjamin Redelings
c62078dae5
Add missing for_linux( ) function.
2018-01-01 22:42:49 -08:00
Jussi Pakkanen
ff98407ade
Dead code removal.
2017-12-21 21:06:17 +02:00
Jussi Pakkanen
164fb9a150
Also promote wrap files.
2017-12-17 21:19:22 +02:00
Jussi Pakkanen
5b9d79b902
Print instructions on how to promote subsubprojects.
2017-12-17 21:19:22 +02:00
Jussi Pakkanen
88756bfe95
Print UTF-8 warning only when actually encountering non-ascii filenames.
2017-12-14 23:49:12 +02:00
Dylan Baker
fc547ad05e
haiku: do not add pthread arguments
...
Haiku has pthreads, but they are part of the standard C library, and do
not need either special compiler or linker flags.
2017-12-07 09:35:12 -08:00
Jussi Pakkanen
112e6c1927
Merge pull request #2638 from jibsen/use-value-regex
...
Use regex to substitute template strings
2017-12-03 23:03:13 +02:00
Nirbheek Chauhan
91d8784a04
configure_file: Compare difference in binary mode
...
Otherwise Python will try to use string decode on the configured file
and fail if it contains characters that can't be mapped to the current
encoding.
2017-11-27 20:53:27 +02:00
Jussi Pakkanen
4ca1e8638c
Fix running tests when there is a period in PATH.
2017-11-27 01:35:27 +02:00
Joergen Ibsen
91a0126590
Improve escaping in configuration files
...
Replace pairs of backslashes before '@' or '\@' with singles (allows
escaping the escape character). Do not consume next '@' after '\@'.
2017-11-26 13:21:21 +02:00
Jussi Pakkanen
247d632f37
Try harder to find meson.py. Closes #2672 .
2017-11-23 20:48:44 +02:00
Joergen Ibsen
f31142de88
Use regex to substitute template strings
2017-11-22 10:55:35 +01:00
Jussi Pakkanen
d882b6fbd4
Merge pull request #2498 from mesonbuild/runpython
...
Add possibility to run Python scripts with current interpreter
2017-11-22 00:47:20 +02:00
Joergen Ibsen
fdb48a3a0f
Use re.sub instead of replace loop
...
This also prohibits recursive substitution.
2017-11-22 00:43:32 +02:00
Jussi Pakkanen
22adda1617
Review fixes.
2017-11-21 23:29:06 +02:00
Jussi Pakkanen
9d67e5030b
Changed code to use detected executables rather than hardcoding sys.executable.
2017-11-20 23:08:17 +02:00
Nirbheek Chauhan
d2a250412c
compilers: Improve manual library searching
...
We can now specify the library type we want to search for, and whether
we want to prefer static libraries over shared ones or the other way
around. This functionality is not exposed to build files yet.
2017-11-11 23:06:48 +05:30
Nirbheek Chauhan
bb0e18b738
Use listify and extract_as_list everywhere
...
They now flatten by default and unhold objects if required
Includes unit tests.
2017-10-01 22:27:48 +05:30
Nirbheek Chauhan
24e0774ace
Always flatten in listify() since we always want that
...
All our kwargs take lists that must be flattened
Closes https://github.com/mesonbuild/meson/issues/2408
2017-10-01 12:18:57 +05:30
Jussi Pakkanen
898b723ee5
Merge pull request #2331 from mesonbuild/winencode
...
Do not use universal newlines on old Python versions.
2017-09-19 22:05:11 +03:00
Alexis Jeandet
bf64cf569b
Gnome, pkgconfig, Qt4, Qt5 and windows modules slightly refactored.
...
Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
2017-09-18 22:21:22 +02:00
Alexis Jeandet
55975f852e
Introduced extract_as_list.
...
Corrected code style and typo.
Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
2017-09-18 22:21:22 +02:00
Alexis Jeandet
7549a39a17
Introduction of listify method. Test on build.py module to see benefits.
...
Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
2017-09-18 22:21:22 +02:00
Jussi Pakkanen
df18c1ac98
Do not use universal newlines on old Python versions.
2017-09-18 20:33:07 +03:00
Jérôme Duval
0b8db94065
Add is_haiku(), needed for run_tests.py.
2017-09-14 00:11:17 +03:00
Nirbheek Chauhan
b3c70f495b
interpreter: Always flatten when unholding arrays
...
Otherwise we might end up with wrapper holders in the Build object and
pickling will then fail, defeating the purpose of the holder objects.
Closes https://github.com/mesonbuild/meson/issues/2211
2017-09-11 23:50:12 +03:00
Michal Koutný
e94a9c8fcf
Allow version labels with trailing dots
...
Fixes #1586
2017-09-04 19:26:57 +03:00
Jussi Pakkanen
50fb7d37ab
Make all functionality invokable via the main Meson binary,
...
which can be a Windows .exe file.
2017-08-18 12:08:20 +03:00
Christoph Reiter
ceea746222
configure_file: warn in case a variable to subsitute is not present in the passed configuration. Fixes #2090
2017-07-21 20:11:50 +03:00
Jussi Pakkanen
ad3dc937f1
Fix remaining Interpreter object leaks.
2017-07-01 02:10:02 +03:00
Jussi Pakkanen
c11a4cb952
Make Interpreter object unpicklable as it was being pickled by accident in copies of kwargs.
2017-07-01 00:11:27 +03:00
Jussi Pakkanen
effe4fb134
Create helper function for a rmtree that works reliably on Windows.
2017-05-21 21:47:24 +03:00
Dylan Baker
e419198ff8
Flatten should always return a list
...
Currently if flatten() is passed a non-list object, it returns that
object. This is surprising behavior, and prone to causing serious and
numerous problems, since many objects implement the iterable interface,
and thus can be used in cases a list is expected, but with undesirable
results.
2017-05-11 09:57:38 -07:00
Jussi Pakkanen
69abca2a67
Merge pull request #1751 from centricular/fix-cached-deps
...
Fix caching of external dependencies of various types
2017-05-09 18:41:51 +03:00
Nirbheek Chauhan
8cf29bd288
Completely overhaul caching of external dependencies
...
The old caching was a mess of spaghetti code layered over pasta code.
The new code is well-commented, is clear about what it's trying to do,
and uses a blacklist of keyword arguments instead of a whitelist while
generating identifiers for dep caching which makes it much more robust
for future changes.
The only side-effect of forgetting about a new keyword argument would
be that the dependency would not be cached unless the values of that
keyword arguments were the same in the cached and new dependency.
There are also more tests which identify scenarios that were broken
earlier.
2017-05-09 14:24:48 +05:30
Dylan Baker
3a688dc4b7
Implement difference method for OrderedSet
...
This implementation is obvious rather than efficient, but it's efficient
enough for our uses I think. It uses `type(self)` to guarantee that it
works even in subclasses or if the name of the class changes.
2017-05-08 10:37:34 -07:00
Dylan Baker
93187797d6
Fix OrderedSet `__repr__` protocol for non-string objects
...
Prefer using `repr` on the keys to `str` since `repr` is guaranteed to
be implemented, and will return something "good enough"
2017-05-08 10:36:03 -07:00
Dylan Baker
6944d06116
Don't use dict.keys() to check membership
...
It's much faster to do 'if a in dict' instead of 'if a in dict.keys()',
since the latter constructs an iterator and walks that iterator and then
tests equality at each step, and the former does a single hash lookup.
2017-04-28 22:42:39 +03:00