Commit Graph

42 Commits

Author SHA1 Message Date
Leon Krause 2fa44cf326 Enable default linker optimisations in MSVC release and minsize builds 2018-02-11 19:08:55 +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
Dylan Baker 4620bdd8b4 tests: fix rpath_uses_ORIGIN on dragonflybsd
Which always seems to prepend /usr/lib/gcc50 (or whatever version) to
the rpath, and $ORIGIN after that.
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
Alexey Stukalov 4f32d11e1b add Compiler.thread_flags() stub
fixes #2834
2017-12-30 23:21:42 +02:00
Nirbheek Chauhan 6f3e2a0a07 compilers: prefer C++ over objc in clink_langs
Otherwise we will try to use the objc compiler when linking projects
with both objc and C++.

Technically we should use the objc++ linker when doing this, but on
most (all?) systems the objc++ linker is `c++`, which is the same
as the C++ linker.

Closes https://github.com/mesonbuild/meson/issues/2468
2017-12-30 17:59:34 +02:00
Benjamin Redelings f3c182f07d Add whitespace around '+'. 2017-12-23 13:29:15 -08:00
Benjamin Redelings 907744d55e Fix linking with clang++ on linux if install_rpath. 2017-12-23 13:22:23 -08:00
Jussi Pakkanen b6dd50db31
Merge pull request #2791 from behlec/compiler-version
Add more version information to compiler
2017-12-20 20:42:01 +02:00
Hemmo Nieminen d232a80e90 Allow value 'if-release' for b_ndebug project option. (#1896)
When set, NDEBUG will be automatically defined for for release builds but
not for other build types.
2017-12-17 21:06:06 +02:00
Christoph Behle c6acf75617 More version information for compilers.
See issue #2762
Adds full_version to class Compiler. If set full_version will be printed
additionally.
Added support for CCompiler and CPPCompiler
Added support for gcc/g++, clang/clang++, icc.
2017-12-16 14:52:08 +01:00
Jussi Pakkanen 554b484468
Merge pull request #2618 from mesonbuild/osxlinkerfixes
Fix many things have have been slightly broken in OSX
2017-12-03 02:25:44 +02:00
Jussi Pakkanen fa6f01d096 Use absolute paths for rpaths on OSX. 2017-11-26 17:34:01 +02:00
Josh Soref 49f8d28ef5 spelling: overridden 2017-11-26 05:55:40 +00:00
Josh Soref 9dd4f047af spelling: occurrence 2017-11-26 05:55:13 +00:00
rkfg 87bf152e6e Fix #2620 2017-11-14 22:35:06 +02:00
Jussi Pakkanen 34d928a830 Better check for when address sanitizer is enabled. Closes #2590. 2017-11-09 21:14:42 +02:00
Alexis Jeandet dfab58772f Warn when no inc dir is found from parsing GNU compiler output
Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
2017-11-02 19:28:23 +01:00
Alexis Jeandet f15a57f31a Fix detection of include dirs with gnu compiler and non C locale
Auto detection was based on parsing gcc's output so we have to
ensure that it is always 'C'.

Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
2017-11-01 15:08:23 +01:00
Niklas Claesson 09ccd0eeaa C/C++: Get default include dirs from compilers 2017-10-01 18:35:33 +02:00
Luke Shumaker bb25260f00 flake8: Perform suggested whitespace/formatting changes
This only touches newlines, spaces, and (occaisionally) commas.  Anything
else is left for another commit.
2017-09-21 11:59:03 -04:00
Daniel Stone e1ffae0580 Add Compiler.get_supported_arguments()
Add a helper for the common pattern of:
  args_to_use = []
  foreach arg : candidate_args
    if cc.has_argument(arg)
      args_to_use += arg
    endif
  endforeach

Replaced with:
  args_to_use = cc.get_supported_arguments(candidate_args)
2017-08-31 20:24:20 +01:00
Peter Harris ee34f454ca Fix detection of clang "optimization arguments"
In version 3.6.0, clang added -Wignored-optimization-argument. Without
setting this flag to -Werror, "ignored optimization arguments" such as
(for example) -fpeel-loops, are accepted but warned about, leading to
noisy builds if meson thinks the flag is supported.

See also #755
2017-08-18 12:11:20 +03:00
Nirbheek Chauhan de2d59cc27 find_library: Ignore libs on MSVC properly
In addition to filtering libs out while generating the command-line, we
must also filter them out in find_library() otherwise these libs will be
detected as "found" on Windows with MSVC.

Closes https://github.com/mesonbuild/meson/issues/1509
2017-07-23 02:12:00 +03:00
Nirbheek Chauhan b3d048e93a CompilerArgs: Put start/end-group around shared libs too
Closes https://github.com/mesonbuild/meson/issues/2096
2017-07-23 02:07:04 +03:00
Jussi Pakkanen bff37a90fc Merged buildrpath branch. 2017-07-21 22:19:07 +03:00
Alessandro Decina a9559e0d77 Fix linking Objective-C shared libs on OSX.
This commit amends 04a2e6de making
linker.get_std_shared_lib_link_args() always return -shared for
SharedLibrary(es) instead of -bundle. SharedModule(s) get linked with
linker.get_std_shared_module_link_args() which already correctly returns
-bundle.

Before this change -bundle and -install_name ended up being emitted
for Objective-C shared libraries, which caused a linking error.
2017-07-21 20:36:50 +03:00
Jussi Pakkanen 2269b7f60b Add build_rpath as new property allowing people to specify rpath entries that are used in the build tree but will be removed on install. 2017-07-21 19:40:54 +03:00
Jussi Pakkanen 181510bd6e Fix checks on MinGW and VS2010. 2017-07-17 19:19:24 +03:00
Jussi Pakkanen 8396c4f3e6 Added VS support to simd detector. 2017-07-17 19:15:04 +03:00
Jussi Pakkanen 16ec3f0e19 Fix a few OSX "features". 2017-07-17 19:09:04 +03:00
Jussi Pakkanen d304aac504 Created simd module. 2017-07-17 19:06:16 +03:00
Chocobo1 24c2e4d3ac Fix typo
profile guide optimization -> profile guided optimization
2017-07-16 11:54:03 +02:00
Hemmo Nieminen 09a5399d09 Fix how rpath directories are handled.
Linking a library from a directory below the executable's directory caused
an invalid path to be written in the executable's RPATH.
2017-07-15 13:44:07 +02:00
Gabríel Arthúr Pétursson 39c7b0492c Allow both address- and undefined behavior sanitizers at the same time 2017-07-15 09:59:09 +02:00
Hemmo Nieminen ea79e94964 Fix a missing path issue causing Python traceback.
A path was missing from a call to os.path.relpath when handling rpaths.
Fix this by assuming empty target directory means build root.
2017-06-29 13:16:38 +03:00
Jussi Pakkanen dfb0414d9c Merged Genie support. 2017-06-27 19:01:00 +03:00
Guillaume Poirier-Morency 5b58ff2783 compilers: Use 'get_display_language' for language-related exceptions 2017-06-26 20:03:52 -04:00
Guillaume Poirier-Morency fab5634916 Add 'Compiler.get_display_language'
Use this when we print language-related information to the console and
via the Ninja backend.
2017-06-26 14:15:44 -04:00
Alistair Thomas cca0fa8154 Recognise .gs extension as a Vala source 2017-06-26 13:57:52 +01:00
Alistair Thomas 117f4ab8b5 Split out languages from compilers.py 2017-06-23 00:42:41 +01:00
Alistair Thomas d71da5bdb3 Converted compilers.py to a sub-package 2017-06-22 20:12:42 +01:00