aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/dependencies/ui.py
AgeCommit message (Collapse)AuthorFilesLines
2022-02-14Add wx-config-3.1 provided by mingw-w64-x86_64-wxmsw3.1apoorv5691-1/+1
On Windows using MSYS2 MinGW installing the package `mingw-w64-x86_64-wxmsw3.1` provides `wx-config-3.1`. I have tried building my software by making this exact change and it build correctly.
2021-07-13dependencies: drop Dependency.methods and Dependency.get_methods()Dylan Baker1-18/+0
Both of these are artifacts of the time before Dependency Factories, when a dependency that could be discovered multiple ways did ugly stuff like finding a specific dependency, then replacing it's own attributes with that dependency's attributes. We don't have cases of that left in the tree, so let's get rid of this code too
2021-06-17move base class for system dependencies into base.pyEli Schwartz1-2/+1
In accordance with review comments; it's small enough this seems fitting.
2021-06-14dependencies: Use a typing.NewType for Dependency.type_nameDylan Baker1-3/+3
This allow mypy to catch cases where we accidently assign the dependency name to the type_name, as it sees them as having different types (though at runtime they're all strings).
2021-06-14dependencies: Use the SystemDependencyDylan Baker1-3/+3
This fixes these dependencies, which currently return the name of the dependency as the type. Fixes #8877
2021-06-09typing: Fully annotate dependenciesDaniel Mensinger1-13/+15
2021-06-03deps: Split dependencies.baseDaniel Mensinger1-1/+2
Split the Factory and dependency classes out of the base.py script to improve maintainability.
2021-03-22dependencies: split qt out of the ui moduleDylan Baker1-421/+1
It's a big enough and complicated enough bit of code that it deserves its own module.
2021-03-19split program related classes and functions out of dependenciesDylan Baker1-3/+3
Dependencies is already a large and complicated package without adding programs to the list. This also allows us to untangle a bit of spaghetti that we have.
2021-03-04mass rewrite of string formatting to use f-strings everywhereEli Schwartz1-4/+4
performed by running "pyupgrade --py36-plus" and committing the results
2021-02-07Add Qt6 moduleLuca Weiss1-0/+11
2021-01-04Use a single coredata dictionary for optionsDylan Baker1-3/+3
This patches takes the options work to it's logical conclusion: A single flat dictionary of OptionKey: UserOptions. This allows us to simplify a large number of cases, as we don't need to check if an option is in this dict or that one (or any of 5 or 6, actually).
2021-01-04use OptionKey for builtin and base optionsDylan Baker1-2/+2
I would have prefered to do these seperatately, but they are combined in some cases, so it was much easier to convert them together. this eliminates the builtins_per_machine dict, as it's duplicated with the OptionKey's machine parameter.
2020-10-30qt: dependency: Strip tool versions from newlinesLaurent Pinchart1-1/+1
When finding the Qt compilation tools (moc, uic, rcc, lrelease), the version strings contain a trailing newline character. This results in a stray newline in the meson log: Detecting Qt5 tools Program /usr/lib64/qt5/bin/moc found: YES 5.14.2 (/usr/lib64/qt5/bin/moc) Program /usr/lib64/qt5/bin/uic found: YES 5.14.2 (/usr/lib64/qt5/bin/uic) Program /usr/lib64/qt5/bin/rcc found: YES 5.14.2 (/usr/lib64/qt5/bin/rcc) Program /usr/lib64/qt5/bin/lrelease found: YES 5.14.2 (/usr/lib64/qt5/bin/lrelease) Strip the version to avoid this, resulting in a cleaner log: Detecting Qt5 tools Program /usr/lib64/qt5/bin/moc found: YES 5.14.2 (/usr/lib64/qt5/bin/moc) Program /usr/lib64/qt5/bin/uic found: YES 5.14.2 (/usr/lib64/qt5/bin/uic) Program /usr/lib64/qt5/bin/rcc found: YES 5.14.2 (/usr/lib64/qt5/bin/rcc) Program /usr/lib64/qt5/bin/lrelease found: YES 5.14.2 (/usr/lib64/qt5/bin/lrelease) Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2020-08-07qt dependency: do not require all the tools automaticallyEli Schwartz1-5/+5
The compilers_detect function is only used in the qt module, which checks every time before using a specific compiler, if it is found. e.g. meson.build:10:6: ERROR: MOC sources specified and couldn't find moc-qt5, please check your qt5 installation In fact, the current check means we never even hit this error to begin with, because we previously died on the uninformative error: meson.build:10:6: ERROR: Program(s) ['moc'] not found or not executable which doesn't actually tell the user why this matters, and is all around a waste of time. Fixes #5582
2020-07-04qt: Fix has_tools() when required=FalseXavier Claessens1-12/+15
Improve logs by making it clear when the program is found but has wrong version.
2020-06-12dependencies: Split search_tool out of ExternalDependencyDylan Baker1-3/+4
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-10dependencies: Remove finish_init methodDylan Baker1-4/+6
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-05-14ui/qt: Warn if Android cpu_family is unknownNirbheek Chauhan1-0/+3
2020-05-14ui/qt: use new directory layout for qt on androidMatthew Waters1-0/+14
Now follows ios and other platform directory layouts. Moves from separate android_$arch directories to every library containing a _$arch suffix. e.g. libQt5Core_x86.a in a single directory.
2020-04-05qt dependency: Pick debug libraries based on b_vscrtCerbero1-0/+5
`b_vscrt` has existed forever, and is the canonical source for which CRT to link to, and hence whether to use the debug libraries or not.
2020-03-19dependencies/base: Make the ConfigTool Dependency more flexibleDylan Baker1-2/+2
2020-02-05depdenencies/qt: Second attempt to allow qt --no-framework on MacOS.nikolayp1-4/+12
Sometimes qt can be installed not as framework on MacOS. One way to achieve this behaviour is to use conan package manager. Allow falling back to simple library search if framework was not found. In addition, allow to find the debug version of qt debug libraries which have "_debug" suffix added to them. Fixes #5091
2020-02-05dependencies/ui: Honor static argument with wxwidgetsDylan Baker1-2/+14
Fixes #6564
2020-02-05dependencies/ui: Add type annotations to WxDependencyDylan Baker1-2/+6
2020-02-05dependencies/ui: wxwidgets requires C++Dylan Baker1-1/+1
so set the language field appropriately
2020-01-30Qt5: Do not use system qmake if not specified in cross fileXavier Claessens1-16/+12
There is a comment saying we do it because we used to do it. But it's wrong and lead to using system library when cross compiling. Factor out the code we use to find pkg-config, because it is the same use-case.
2020-01-29dependencies: Use DependencyFactory for sdl2Dylan Baker1-28/+12
2020-01-29dependencies: Use DependencyFactory for glDylan Baker1-16/+8
2020-01-29dependencies: Use DependencyFactory for VulkanDylan Baker1-18/+12
2020-01-29dependencies: Make Dependency initializer signatures matchDylan Baker1-13/+12
Currently PkgConfig takes language as a keyword parameter in position 3, while the others take it as positional in position 2. Because most dependencies don't actually set a language (they use C style linking), using a positional argument makes more sense. ExtraFrameworkDependencies is even more different, and duplicates some arguments from the base ExternalDependency class. For later changes I'm planning to make having all of the dependencies use the same signature is really, really helpful.
2020-01-29dependencies/base: Split process_method_kw out of DependencyDylan Baker1-4/+4
I want to use this in a new class as well, that doesn't descend from Dependency.
2020-01-17Fix dependency('qt') crash with old Qt on OSXJon Turney1-1/+2
Don't fail with 'KeyError: QMAKE_XSPEC' if `qmake -query` doesn't report QMAKE_XSPEC. (Seen with 4.8.7)
2019-12-05lgtm: Fix redundant codeDaniel Mensinger1-4/+2
2019-11-25dependencies/ui.py: Fix Vulkan detection on WindowsChun-wei Fan1-2/+2
We might be using the 32-bit bits of the VulkanSDK on Windows on x64 Windows, so we still need to pass in the compiler items to detect what architecture we are building for, so that we link to the correct Vulkan libraries. We might want to look into this again if Microsoft will allow ARM/ARM64 versions of the Vulkan drivers and SDK, since post-basic OpenGL and any Vulkan are not supported on Windows-on-ARM.
2019-06-13tvOS: added support AppleTVOSRoman Shpuntov1-2/+2
2019-06-09Purge `is_cross` and friends without changing user interfacesJohn Ericson1-7/+6
In most cases instead pass `for_machine`, the name of the relevant machines (what compilers target, what targets run on, etc). This allows us to use the cross code path in the native case, deduplicating the code. As one can see, environment got bigger as more information is kept structured there, while ninjabackend got a smaller. Overall a few amount of lines were added, but the hope is what's added is a lot simpler than what's removed.
2019-05-02Merge pull request #4952 from mensinda/cacheCompilesDylan Baker1-1/+1
Cache compilers.compile() in coredata
2019-04-29Fix builtin variable namesDaniel Mensinger1-4/+4
2019-04-28Disable cache for dependenciesDaniel Mensinger1-1/+1
2019-04-28Print '(cached)' when compiler result was cachedDaniel Mensinger1-1/+1
2019-02-01qt: Only look for a framework on macOS if building for macOSNirbheek Chauhan1-1/+3
When building for iOS, the Qt binaries only contain static libraries and headers. No framework. With this, Meson can successfully compile and link to Qt on iOS
2019-02-01qtdep: Look for QMAKE env var again + sprinkle debugNirbheek Chauhan1-0/+3
We used to look for the QMAKE env var in earlier versions of Meson, start looking for it again.
2019-02-01Rewrite appleframework and extraframework dependency classesNirbheek Chauhan1-4/+4
Instead of only doing a naive filesystem search, also run the linker so that it can tell us whether the -F path specified actually contains the framework we're looking for. Unfortunately, `extraframework` searching is still not 100% correct in the case when since we want to search in either /Library/Frameworks or in /System/Library/Frameworks but not in both. The -Z flag disables searching in those prefixes and would in theory allow this, but then you cannot force the linker to look in those by manually adding -F args, so that doesn't work.
2019-01-31gnustep-config: config tools are lists, not stringsNirbheek Chauhan1-2/+2
More programming errors exposed by not ignoring all exceptions.
2019-01-30qt: Print the full path of the `qmake` binary foundNirbheek Chauhan1-1/+1
2019-01-29pep8 py37Michael Hirsch, Ph.D1-1/+1
2019-01-02Remove cross_info; cross file is parsed up front and discardedJohn Ericson1-14/+10
2018-12-19dependencies/ui: Fix qmake detection when not using cross or native fileDylan Baker1-3/+1
Fixes #4641
2018-12-19dependencies/ui: Fix Qt pkg-config detection on MacOSDylan Baker1-1/+9
Since 0.46.1 pkg-config detection has been broken using the qt from homebrew, due to a bug in homebrew (I think). Tested with qt 5.12.0 on Mojave.