aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-06-13Handle multiple substitutions in eval_custom_target_command()Jon Turney1-29/+30
Handle command arguments which contain multiple substitutions correctly in Backend.eval_custom_target_command() In particular, gnome.gtkdoc() makes arguments of the form '--cflags -I@SOURCE_ROOT@ -I@BUILD_ROOT' (where these arguments are then passed down to a compiler invocation) Normally, these are subsequently made right by NinjaBackend.replace_paths(), but if Backend.as_meson_exe_cmdline() decides that the command needs to be pickled, that doesn't happen. (Although having two places where this substitution might happen smells really bad)
2020-06-13azure: Run gtkdoc tests for CygwinJon Turney1-0/+1
2020-06-13ci: Pin ninja to 1.9.0.post1 for nowNirbheek Chauhan1-1/+5
See: https://github.com/mesonbuild/meson/pull/7306#issuecomment-643606736
2020-06-13tests: reset CMakeDependency.class_cmakeinfoDaniel Mensinger1-0/+3
2020-06-13cmake: Fix handling of path seperators (fixes #7294)Daniel Mensinger6-5/+30
2020-06-13mdist: Filter out buildtype to avoid warningNirbheek Chauhan1-1/+1
Since we parse buildoptions.json to pass options, we end up passing -Dbuildtype and also -Doptimization and -Ddebug which triggers the warning: WARNING: Recommend using either -Dbuildtype or -Doptimization + -Ddebug [...] Filter out buildtype. It is redundant.
2020-06-12dependencies: Add a couple of type annotationsDylan Baker1-2/+3
2020-06-12dependencies: Don't allow using the default binary for host on cross compilesDylan Baker2-5/+5
Otherwise we can end up finding dependencies from the build machine for the host machine, which is incorrect. This alters cmake, pkg-config, and all config-tool based dependencies. Fixes: #7276
2020-06-12dependencies: Don't try to find a binary by "default_path" when cross compilingDylan Baker1-4/+7
2020-06-12cmake: Use shared find_external_program instead of open codingDylan Baker1-22/+5
2020-06-12dependencies: Split search_tool out of ExternalDependencyDylan Baker2-24/+29
it really doesn't make sense to put this in the ExternalDependency class. It doesn't rely on any of the state of that class, and it's generically useful inside meson.
2020-06-12mintro: typings again x2TheQwertiest1-1/+1
Co-authored-by: Dylan Baker <dylan@pnwbakers.com>
2020-06-12mintro: more typing shenanigansTheQwertiest1-1/+1
2020-06-12mintro: typing fixTheQwertiest1-1/+1
2020-06-12mintro: typing fixTheQwertiest1-1/+1
2020-06-12mintro: enforced order for subcommandsTheQwertiest1-12/+14
2020-06-12[skip ci] docs: Bring up to date on options per machineJohn Ericson2-14/+64
I tried to fix the docs when the stuff was added, but it turns out I missed things, as noted in https://github.com/mesonbuild/meson/issues/7284#issuecomment-641641177
2020-06-12modules/cmake: Fix setting install_dirDylan Baker4-2/+21
Fixes: #7301
2020-06-12cmake: Subprojects support CMAKE_PREFIX_PATH (fixes #7249)Daniel Mensinger4-15/+37
2020-06-12docs: remove duplicated entry for gnome.generate_gir() documentation [skip ci]坂本 貴史1-1/+0
The documentation of gnome.generate_gir() has duplicated entry for dependencies parameter. As a fix, this patch removes the entry added recently. Fixes: 893d101fff01 ("gnome: Add header kwarg to generate_gir()") Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
2020-06-11Correct argument typo in partial_dependnecy (#7300) [skip ci]Phillip Johnston1-1/+1
Should be "sources" not "source" ``` ../meson.build:162: WARNING: Passed invalid keyword argument "source". WARNING: This will become a hard error in the future. Traceback (most recent call last): File "/usr/local/lib/python3.7/site-packages/mesonbuild/mesonmain.py", line 131, in run return options.run_func(options) File "/usr/local/lib/python3.7/site-packages/mesonbuild/msetup.py", line 245, in run app.generate() File "/usr/local/lib/python3.7/site-packages/mesonbuild/msetup.py", line 159, in generate self._generate(env) File "/usr/local/lib/python3.7/site-packages/mesonbuild/msetup.py", line 192, in _generate intr.run() File "/usr/local/lib/python3.7/site-packages/mesonbuild/interpreter.py", line 4359, in run super().run() File "/usr/local/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 465, in run self.evaluate_codeblock(self.ast, start=1) File "/usr/local/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 490, in evaluate_codeblock raise e File "/usr/local/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 483, in evaluate_codeblock self.evaluate_statement(cur) File "/usr/local/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 498, in evaluate_statement self.assignment(cur) File "/usr/local/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 1151, in assignment value = self.evaluate_statement(node.value) File "/usr/local/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 500, in evaluate_statement return self.method_call(cur) File "/usr/local/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 895, in method_call return obj.method_call(method_name, args, self.kwargs_string_keys(kwargs)) File "/usr/local/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 39, in method_call return method(args, kwargs) File "/usr/local/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 285, in wrapped return f(*wrapped_args, **wrapped_kwargs) File "/usr/local/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 151, in wrapped return f(*wrapped_args, **wrapped_kwargs) File "/usr/local/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 213, in wrapped return f(*wrapped_args, **wrapped_kwargs) File "/usr/local/lib/python3.7/site-packages/mesonbuild/interpreter.py", line 484, in partial_dependency_method pdep = self.held_object.get_partial_dependency(**kwargs) TypeError: get_partial_dependency() got an unexpected keyword argument 'source' FAILED: build.ninja ```
2020-06-11unit tests: Pass args to pytestNirbheek Chauhan1-0/+3
Gets --help working and --failfast too.
2020-06-11apple: -headerpad args are ignored when bitcode is enabledNirbheek Chauhan2-7/+13
Causes spammy warnings from the linker: ld: warning: -headerpad_max_install_names is ignored when used with -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES)
2020-06-11Fix typo in bitcode messageNirbheek Chauhan1-1/+1
2020-06-11compilers: corretify deduplication directionMarcel Hollerbach2-2/+21
so: when building compile args, meson is deduplicating flags. When a compiler argument is appended, a later appearance of a dedup'ed is going to remove a earlier one. If the argument is prepended, the element *before* the new one is going to be removed. And that is where the problem reported in https://github.com/mesonbuild/meson/pull/7119 is coming in. In the revision linked there, the order of replacement in the prepend case was revesered. With this patch, we restore this behaviour again.
2020-06-10Updated to resolve issue identifying SGI CPUs on IRIX systemsEric Dodd3-2/+11
2020-06-10Fix python3 installed from the Windows StoreD Scott Phillips2-4/+26
When meson is currently being run with a python that seems to have been installed from the Windows Store, replace the general WindowsApps directory in search paths with dirname(sys.executable), and also handle failures with pathlib.resolve on WindowsApps exe files.
2020-06-10dependencies: Remove finish_init methodDylan Baker3-26/+37
This is a holdover from before we had the DependencyFactory. It should have already been refactored into the initializer, but wasn't for some reason.
2020-06-10tell variable name when erroring on bad combo optionMichael Hirsch1-1/+3
fixes #7269
2020-06-09Made --help options sortedTheQwertiest2-2/+2
2020-06-09cmake_traceparser: ignore parse errorMichael Hirsch1-1/+1
2020-06-09compilers: Add UNIX large file support for MinGWSeungha Yang1-3/+3
MinGW gcc supports _FILE_OFFSET_BITS=64 and we need to set it for MinGW as well
2020-06-08docs/users: Add Le Machine Learning library [skip ci]Kyrylo Polezhaiev1-0/+1
2020-06-08Merge pull request #7245 from dankegel/response-files-when-needed-tidiedJussi Pakkanen16-110/+444
Make ninja backend only use response files when needed, on linux too
2020-06-07Merge pull request #7119 from marcelhollerbach/masterJussi Pakkanen2-38/+73
Performance optimize ninja backend
2020-06-07Merge pull request #7256 from peterh/openmpJussi Pakkanen4-18/+25
Fix OpenMP on Visual Studio
2020-06-07Remove warnings from sample code. Closes #7248.Jussi Pakkanen1-1/+1
2020-06-07End test code with a newline. Closes #7247.Jussi Pakkanen1-2/+2
2020-06-06backend/vs: Fix OpenMP supportPeter Harris1-17/+17
Use the IDE's OpenMP flag instead of adding /openmp to additional arguments. The IDE appears to override /openmp in additional arguments with the IDE setting, which defaults to false, leading to binaries built without OpenMP.
2020-06-06msvc: Avoid spurious openmp link warningsPeter Harris3-1/+8
The linker that comes with MSVC does not understand the /openmp flag. This results in a string of LINK : warning LNK4044: unrecognized option '/openmp'; ignored warnings, one for each static_library linked with an executable. Avoid this by only setting the linker openmp flag when the compiler is not MSVC.
2020-06-05docs: add snippet about response file changeDan Kegel1-0/+7
2020-06-05run_unittests.py: skip test_internal_include_order for now if forcing ↵Dan Kegel1-0/+3
response files on msys2 That test looks at the compdb very carefully, but isn't yet set up to handle gcc responsefile quoting on windows, it seems.
2020-06-05ci: run some builders with response file threshold set to zeroDan Kegel3-1/+12
2020-06-05test cases/common/234: get limit right on linux, generate fewer filesDan Kegel1-2/+25
2020-06-05ninja: response file threshold now more accurate, overridable, portable.Dan Kegel1-2/+20
2020-06-05gnulike linkers (and ar) accept rsp files.Dan Kegel1-0/+7
2020-06-05ninja: Add ninja variable DEPFILE_UNQUOTED with unquoted DEPFILE valueJon Turney1-1/+7
It's assumed that where we use DEPFILE in command or rspfile_content, it can be quoted by quoting the ninja variable (e.g. $DEPFILE -> '$DEPFILE') This is nearly always true, but not for gcc response files, where backslash is always an escape, even inside single quotes. So this fails if the value of DEPFILE contains backslashes (e.g. a Windows path) Do some special casing, adding DEPFILE_UNQUOTED, so that the value of depfile is not shell quoted (so ninja can use it to locate the depfile to read), but the value of DEPFILE used in command or rspfile_content is shell/response file quoted) (It would seem this also exists as a more general problem with built-in ninja variables: '$out' appearing in command is fine, unless one of the output filenames contains a single quote. Although forbidding shell metacharacters in filenames seems a reasonable way to solve that.) (How does this even work, currently? Backslashes in the value of all ninja variables, including DEPFILE were escaped, which protected them against being treated as escapes in the gcc response file. And fortunately, the empty path elements indicated by a double backslash in the value of depfile are ignored when ninja opens that file to read it.)
2020-06-05ninja: Specifically implement gcc rspfile style quotingJon Turney1-8/+18
This differs from sh-quoting in that a backslash *always* escapes the following character, even inside single quotes. Yes, really. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libiberty/argv.c#l176
2020-06-05backend: There is no need for 'compiler-specific escaping' anymoreJon Turney2-24/+7
Now that all command-line escaping for ninja is dealt with in the ninja backend, escape_extra_args() shouldn't need to do anything. But tests of existing behaviour rely on all backslashes in defines being C escaped: This means that Windows-style paths including backslashes can be safely used, but makes it impossible to have a define containing a C escape.
2020-06-05ninja: Implement Windows-style command line quotingJon Turney1-4/+11
We avoided having to get this right previously, as we'd always use a response file if possible. But this is so insane, I can't imagine it's right. See also: subprocess.list2cmdline() internal method