summaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
Commit message (Collapse)AuthorAgeFilesLines
...
* FeatureNew: Make all checks subproject-specificNirbheek Chauhan2018-07-021-1/+1
| | | | | | | | | | | | We now pass the current subproject to every FeatureNew and FeatureDeprecated call. This requires a bunch of rework to: 1. Ensure that we have access to the subproject in the list of arguments when used as a decorator (see _get_callee_args). 2. Pass the subproject to .use() when it's called manually. 3. We also can't do feature checks for new features in meson_options.txt because that's parsed before we know the meson_version from project()
* Various bug fixes for FeatureNewSalamandar2018-07-021-5/+1
| | | | | | | | | | | | | | | | | * Use _get_callee_args to unwrap function call arguments, needed for module functions. * Move some FeatureNewKwargs from build.py to interpreter.py * Print a summary for featurenew only if conflicts were found. The summary now only prints conflicting features. * Report and store featurenew/featuredeprecated only once * Fix version comparison: use le/ge and resize arrays to not fail on '0.47.0>=0.47' Closes https://github.com/mesonbuild/meson/issues/3660
* Don't let build_always take precedence over build_by_default (#3816)Andrei Alexeyev2018-07-011-1/+2
| | | | | | | | * Don't let build_always take precedence over build_by_default * Test for proper interaction of build_by_default with build_always Fixes #3815
* custom targets: Only add a dependency on absolute path external programsNirbheek Chauhan2018-07-011-1/+5
| | | | | | If the external program is a string that is meant to be searched in PATH, we can't add a dependency on it at configure time because we don't know where it will be at compile time.
* Rename clike_langs to clink_langs for clarityNirbheek Chauhan2018-06-201-12/+12
| | | | | | | D is not a 'c-like' language, but it can link to C libraries. The same might be true of Rust in the future and Go when we add support for it. This contains no functionality changes.
* Deprecate `build_always`, add `build_always_stale`Alex Hirsch2018-06-181-4/+12
| | | | | | | | | | | | | | Since `build_always` also adds a target to the set of default targets, this option is marked deprecated in favour of the new option `build_always_stale`. `build_always_stale` *only* marks the target to be always considered out of date, but does *not* add it to the set of default targets. The old behaviour can still be achieved by combining `build_always_stale` with `build_by_default`. fixes #1942
* Install shared_module implibsJon Turney2018-06-071-1/+0
| | | | | | | | | | On Windows, if we are going to link with a shared module, we need the implib. Use case: The Xorg server builds some X protocol extensions as modules. The implibs for these modules need to be shipped as part of the SDK, to enable building of 3rd party extensions which reference symbols in (and hence on Windows, need to be linked with) these modules.
* More clearly explain portability issues with linking to a moduleJon Turney2018-06-071-2/+6
| | | | | | | | | | | | | | | | | | | | | Refine #3277 According to what I read on the internet, on OSX, both MH_BUNDLE (module) and MH_DYLIB (shared library) can be dynamically loaded using dlopen(), but it is not possible to link against MH_BUNDLE as if they were shared libraries. Metion this as an issue in the documentation. Emitting a warning, and then going on to fail during the build with mysterious errors in symbolextractor isn't very helpful, so make attempting this an error on OSX. Add a test for that. See also: https://docstore.mik.ua/orelly/unix3/mac/ch05_03.htm https://stackoverflow.com/questions/2339679/what-are-the-differences-between-so-and-dylib-on-osx
* Fix non-list used with FeatureNewKwargsJon Turney2018-06-051-1/+1
| | | | The type of this argument needs checking, or single strings need handling correctly.
* Allow substitutions in custom_target() depfile:Jon Turney2018-06-031-0/+12
| | | | Allow substitutions in custom_target() depfile: as well as in command:
* Add 'install_mode' to all installable targetsFilipe Brandenburger2018-06-021-0/+11
| | | | | | | | | This makes it possible to customize permissions of all installable targets, such as executable(), libraries, man pages, header files and custom or generated targets. This is useful, for instance, to install setuid/setgid binaries, which was hard to accomplish without access to this attribute.
* Add 0.43.0 featuresSalamandar2018-06-011-0/+1
|
* Add 0.42.0 featuresSalamandar2018-06-011-0/+1
|
* Add 0.41.0 featuresSalamandar2018-06-011-0/+1
|
* Add 0.40.0 featuresSalamandar2018-06-011-0/+5
|
* Don't accept an empty string for name_suffix:Nirbheek Chauhan2018-05-301-0/+4
| | | | | | This is never going to be useful, and the error message now points people to what they might be expecting: use the default value for this platform.
* vala: Fix shared_module linking with export_dynamic executableNirbheek Chauhan2018-05-101-1/+1
| | | | | | | Need to generate a vapi and a header, and then use that in the shared module. Needed for GNOME games. Closes https://github.com/mesonbuild/meson/issues/3538
* test setups: Inherit env when using a test setupNirbheek Chauhan2018-05-101-1/+1
| | | | Closes https://github.com/mesonbuild/meson/issues/3525
* Can combine D and C++ in a single target. Closes #3125.Jussi Pakkanen2018-05-021-3/+13
|
* pkgconfig: Don't expose internal libraries in .pc filesNirbheek Chauhan2018-05-021-3/+9
| | | | | | | | Libraries that have been linked with link_whole: are internal implementation details and should never be exposed to the outside world in either Libs: or Libs.private: Closes https://github.com/mesonbuild/meson/issues/3509
* Allow custom_target do depend on indexed output of custom_target Niklas Claesson2018-05-011-1/+1
| | | | Fixes: #3494
* extract_all_objects: Add 'recursive' keyword argumentXavier Claessens2018-04-181-3/+5
| | | | | | | To maintain backward compatibility we cannot add recursive objects by default. Print a warning when there are recursive objects to be pulled and the argument is not set. After a while we'll do pull recursive objects by default.
* extract_all_objects(): Recursively extract objectsXavier Claessens2018-04-181-6/+4
| | | | Fixes #3401
* Fix using object extracted from a unity buildXavier Claessens2018-04-181-21/+28
| | | | | | | | | | | - determine_ext_objs: What matters is if extobj.target is a unity build, not if the target using those objects is a unity build. - determine_ext_objs: Return one object file per compiler, taking into account generated sources. - object_filename_from_source: No need to special-case unity build, it does the same thing in both code paths. - check_unity_compatible: For each compiler we must extract either none or all its sources, taking into account generated sources.
* Generate target id based on subdirectory instead of subprojectAleksey Filippov2018-04-161-5/+10
| | | | | Allows creation of targets with same name in different subdirectories. Closes #2861 and closes #1867
* Merged Arm CC support.Jussi Pakkanen2018-04-161-1/+5
|\
| * Updates to CPP support and update review changesSomasekhar Penugonda2018-03-271-1/+2
| |
| * First cut of ARMCC support for MESON.Bedarkar, Malhar2018-03-051-1/+4
| | | | | | | | Change-Id: I15d8258e84d392baaccb8f670e33eefcfe8cd49a
* | Made it possible to override find_program to return a different program.Jussi Pakkanen2018-04-151-0/+2
| | | | | | | | Closes https://github.com/mesonbuild/meson/issues/2005
* | don't create unneeded internal dependency objectsBruce Richardson2018-04-131-7/+8
| | | | | | | | | | | | | | | | | | | | | | when flattening the chained dependencies of an object, we don't need to create any new internal dependencies if all the fields to be added to it are empty. For projects with a lot of libraries and dependency objects this can lead to noticeable performance improvements. fixup
* | Prune unneeded transitive dependenciesBruce Richardson2018-04-131-2/+6
| | | | | | | | | | | | | | | | When getting dependencies, we don't need to get the same dependencies and dependency chains multiple times. If library a depends on x, y and z, and library b depends on a, then we should not have to iterate through x, y and z multiple times. Pruning at the stage of scanning the dependencies leads to significant time savings when running meson
* | extract_all_objects: Also extract generated sourcesXavier Claessens2018-04-031-3/+8
| |
* | Remove duplicated list of known kwargs for build targetsXavier Claessens2018-04-031-87/+85
| |
* | Fixing flake8chitranjali2018-03-291-1/+1
| |
* | PR review changes closes #2865chitranjali2018-03-291-1/+3
| |
* | fix2865chitranjali2018-03-291-0/+8
| |
* | Squash target_type warning for jar targetsSam H2018-03-241-0/+4
| |
* | Merge pull request #3223 from sarum9in/renameJussi Pakkanen2018-03-201-1/+7
|\ \ | | | | | | Add install_data() rename parameter
| * | Add rename parameter to install_data()Aleksey Filippov2018-03-171-1/+7
| | |
* | | Create a helper for checking if a string has a path componentNirbheek Chauhan2018-03-191-4/+4
|/ / | | | | | | | | This is used in a number of places, and in some places it is incomplete. Use a helper to ensure it's used properly.
* | Use itertools.chain() instead of list concatenationAleksey Filippov2018-03-111-1/+1
| |
* | Exclude subprojects when doing coverageNiklas Claesson2018-03-101-0/+4
| |
* | Add link_whole argument to declare_dependency()Aleksey Filippov2018-03-061-1/+3
|/
* Harmonize data pickling.Hemmo Nieminen2018-03-011-0/+20
| | | | | Try to be more consistent on using save() and load() methods to pickle data.
* Do not unpack link_whole target, BuildTarget.link_whole() does listify() anywayAleksey Filippov2018-02-271-4/+0
|
* Look up compilers based on sources from deps, too. Closes #2768.Jussi Pakkanen2018-02-271-3/+9
|
* Use include_directories for D impdirs.Jussi Pakkanen2018-02-251-3/+7
| | | | | | Change the code to store D properties as plain data. Only convert them to compiler flags in the backend. This also means we can fully parse D arguments without needing to know the compiler being used.
* Don't version shared libraries for AndroidRobert Bragg2018-02-041-20/+32
| | | | | Android's loader doesn't handle shared library versioning so this avoids adding a suffix to the filename or soname for Android hosts.
* Make checks a bit more robust against empty entries.Jussi Pakkanen2018-01-311-0/+4
|
* Use os.path: basename() and dirname() instead of split()Aleksey Filippov2018-01-301-6/+6
| | | | | | | | | | | | 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