aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/objc.py
AgeCommit message (Collapse)AuthorFilesLines
2019-09-08fix objc freestanding sanitycheckNguyen, Giang (G. Yakiro)1-1/+1
2019-08-14compilers/objc[pp]: Pass extra keyword arguments to Compiler constructorDylan Baker1-6/+6
2019-07-15compilers: Put clang mixin in a moduleDylan Baker1-1/+2
2019-07-15compilers: split gnu and gnulike compilers out of compilersDylan Baker1-1/+2
I debated a bit whether both classes really belong in the same module, and decided that they do because the share a number of helpers.
2019-07-15compilers: Move clike into a mixins directoryDylan Baker1-1/+1
The compilers module is rather large and confusing, with spaghetti dependencies going every which way. I'm planning to start breaking out the internal representations into a mixins submodule, for things that shouldn't be required outside of the compilers module itself.
2019-07-14Do not fail on passing `-Werror=unused-parameter` from environmentDavid Seifert1-1/+1
2019-06-23compilers: Fix bitcode and other options for objc codeNirbheek Chauhan1-1/+0
We were setting the base options for the Objective-C compiler manually, due to which options such as b_bitcode and b_ndebug were not getting set at all. The base options here are the same as for C code with the Clang compiler, so just use the same inherited list. Also expand the bitcode test to ObjC and ObjC++ so this doesn't happen again.
2019-06-09Purge `is_cross` and friends without changing user interfacesJohn Ericson1-12/+8
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-03compilers: Split C-Like functionality into a mixin classesDylan Baker1-5/+7
Currently C++ inherits C, which can lead to diamond problems. By pulling the code out into a standalone mixin class that the C, C++, ObjC, and Objc++ compilers can inherit and override as necessary we remove one source of diamonding. I've chosen to split this out into it's own file as the CLikeCompiler class is over 1000 lines by itself. This also breaks the VisualStudio derived classes inheriting from each other, to avoid the same C -> CPP inheritance problems. This is all one giant patch because there just isn't a clean way to separate this. I've done the same for Fortran since it effectively inherits the CCompiler (I say effectively because was it actually did was gross beyond explanation), it's probably not correct, but it seems to work for now. There really is a lot of layering violation going on in the Compilers, and a really good scrubbing would do this code a lot of good.
2019-03-27Sanity check with external argsJohn Ericson1-2/+8
Previously cross, but not native, external args were used. Then in d451a4bd97f827bb492fd0c0e357cb20b6056ed9 the cross special cases were removed, so external args are never used. This commit switches that so they are always used. Sanity checking works just the same as compiler checks like has header / has library.
2019-02-19Add warning level zerojml17951-2/+4
2019-02-15Remove get_cross_extra_flagsJohn Ericson1-1/+1
This is no longer needed, we just remove conditionals around it.
2018-09-16Use enum instead of `int` for compiler variantsDavid Seifert1-6/+10
* Enums are strongly typed and make the whole `gcc_type`/`clang_type`/`icc_type` distinction redundant. * Enums also allow extending via member functions, which makes the code more generalisable.
2017-06-26Add 'Compiler.get_display_language'Guillaume Poirier-Morency1-0/+3
Use this when we print language-related information to the console and via the Ninja backend.
2017-06-23Split out languages from compilers.pyAlistair Thomas1-0/+64