Commit Graph

166 Commits

Author SHA1 Message Date
88aafd363e Normalize the path of a configured file to avoid dupes (#640) 2016-07-19 20:10:57 +03:00
5351b091a8 ninja: Remove duplicated if check (#637)
Trivially correct
2016-07-15 17:52:14 +03:00
64919b1c74 Merge pull request #417 from nirbheek/dll-paths
Fix filenames and paths used in DLL shared library generation
2016-07-13 22:18:50 +03:00
a0666ebf9c Gcc versions older than 4.9 do not support color output. 2016-07-01 23:38:25 +03:00
4f2b663928 Unify common code in run_target and custom_target. 2016-07-01 22:12:15 +03:00
0143c32c7c Overhaul versioning and naming of libraries
This commit contains several changes to the naming and versioning of
shared and static libraries. The details are documented at:
https://github.com/mesonbuild/meson/pull/417

Here's a brief summary:

* The results of binary and compiler detection via environment functions
  are now cached so that they can be called repeatedly without
  performance penalty. This is necessary because every
  build.SharedLibrary object has to know whether the compiler is MSVC or
  not (output filenames depend on that), and so the compiler detection
  has to be called for each object instantiation.

* Linux shared libraries don't always have a library version. Sometimes
  only soversions are specified (and vice-versa), so support both.

* Don't use versioned filenames when generating DLLs, DLLs are never
  versioned using the suffix in the way that .so libraries are. Hence,
  they don't use "aliases". Only Linux shared libraries use those.

* OS X dylibs do not use filename aliases at all. They only use the
  soversion in the dylib name (libfoo.X.dylib), and that's it. If
  there's no soversion specified, the dylib is called libfoo.dylib.
  Further versioning in dylibs is supposed to be done with the
  -current_version argument to clang, but this is TBD.

  https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/DynamicLibraryDesignGuidelines.html#//apple_ref/doc/uid/TP40002013-SW23

* Install DLLs into bindir and import libraries into libdir

* Static libraries are now always called libfoo.a, even with MSVC

* .lib import libraries are always generated when building with MSVC

* .dll.a import libraries are always generated when building with
  MinGW/GCC or MinGW/clang

* TODO: Use dlltool if available to generate .dll.a when .lib is
  generated and vice-versa.

* Library and executable suffix/prefixes are now always correctly
  overriden by the values of the 'name_prefix' and 'name_suffix' keyword
  arguments.
2016-07-01 20:50:47 +05:30
0733c0f9a1 Changed run_target to take command as kwarg and add depends. This makes it behave the same as custom_target. 2016-06-24 23:07:57 +03:00
ea4fe8e417 Run_target can run binaries obtained with find_program. 2016-06-24 15:02:43 +03:00
50fef89218 ninjabackend: Add subdir includes before external dep includes
Fixes https://github.com/mesonbuild/meson/issues/604
2016-06-21 01:53:26 +05:30
68dbbeb78f Octopus merged cross fixes and genetor custom because why not. 2016-06-16 21:03:57 +03:00
a661708b54 Use target name to decide generated Vala .h & .vapi filenames
Previously Meson would use the name of the first .vala source file. This
doesn't work for some projects. Tracker is one example: it has
several libraries that mix Vala and C code. In such cases, none of the
.vala files tend to bear the name of the library we actually want to
generate.
2016-06-15 15:15:58 +01:00
475175f4b5 Can use generator outputs in custom targets. Closes #587. 2016-06-13 21:17:13 +03:00
7bd424fea6 ninjabackend: Add missing ninja_quote for cross compilation rule. 2016-06-13 00:12:15 +02:00
1f76b76a84 Add support for running specific test suites with valgrind. 2016-06-06 10:28:00 +03:00
fac6f869e0 Change test suite separator character from '-' to ':'.
This allows defining test suites for test-valgrind target without the risk
of e.g. being unable to differentiate the targets test-valgrind (testing
with valgrind) from test-valgrind (testing the valgrind subproject).
2016-06-06 10:28:00 +03:00
0482635c12 Handle case of install_subdirring a subdir. 2016-05-30 23:08:24 +03:00
8e734a8c9f Set Gnu fortran type based on platform. 2016-05-30 22:42:11 +03:00
beb6827413 Installing subdirs now merges with existing files in the target dir. 2016-05-30 21:48:03 +03:00
16e032c289 Fix installing manpages from subdirs. 2016-05-30 20:26:31 +03:00
c2082146ab Merge branch 'nioncode-vs-generator' 2016-05-28 23:09:59 +03:00
4377f773e0 Can set global linker arguments. Closes #536. 2016-05-28 21:31:59 +03:00
a29d9c2c33 vs: fix generators that use indexed output replacements (like @OUTPUT0@) 2016-05-26 13:08:33 +02:00
eb181485d0 ninja: Fix cross-build when using the compiler's stdlib
Logic was reversed. We want to pass -nostdinc when there's no c_stdlib specified
in the cross-info file.
2016-05-26 06:21:08 +05:30
df03f849a8 Merge pull request #542 from mesonbuild/ownstdlib
Build transparently with a custom standard library
2016-05-25 23:44:24 +03:00
babdb27570 Merge pull request #479 from mesonbuild/i18n
Moved gettext into i18n module.
2016-05-25 17:53:35 +03:00
1a0938cc25 Automagic scan-build support. 2016-05-22 19:24:59 +03:00
afe7252476 Can specify a stdlib subproject that is used implicitly on all targets with said language. 2016-05-21 21:46:03 +03:00
dc148e0702 Remove all special casing for gettext and use elementary operations instead. 2016-05-21 18:21:23 +03:00
8d73d3023a Better error message when compdb generation fails. 2016-05-03 21:53:36 +03:00
46ce7a9d4b Merge pull request #516 from centricular/cross-compile_32bit-x86_on_64bit-x86_exe-wrapper
Special-case the 32-bit executable on 64-bit x86 case while cross-compiling
2016-05-01 18:56:07 +03:00
2e2df70dd0 Merge branch 'centricular-customtarget-path-windows' 2016-05-01 18:39:45 +03:00
1d7201dd35 Move all coverage reporting related files under $BUILD_DIR/meson-logs. 2016-05-01 18:22:47 +03:00
e8f3e1ef3a Merge branch 'nioncode-vs-manygen'. 2016-04-21 22:41:00 +03:00
c95b0a6c17 Fix a bug in coverage reporting.
The directory from where the source files are sought when producing a
coverage report in text or XML format should not be the build directory
but the source directory instead.
2016-04-21 22:32:26 +03:00
060f195fe0 vs2010: add generated libs as link dependencies 2016-04-19 23:25:45 +02:00
86aa51232e backends: Don't duplicate test setup data file name
Instead, return the values of the test and benchmark setup data files so
that the ninja/osx/vs backends can use those filenames instead of
hard-coding them.
2016-04-15 05:49:42 +05:30
e3bc2e5c68 ninja: Set PATH for CustomTargets with built EXEs on Windows
When a CustomTarget is run with a command that is an executable built
by the project which also has a DLL built in the same project as a
dependency, the EXE can't run on Windows because the DLL can't be found.
On UNIX-like systems, we set the RPATH using the linker so these
dependencies can be found, but on Windows the only way is to set the
PATH environment variable.

The same problem exists for tests, so we reuse that infrastructure by
creating a new meson_exe.py script that can be used as a wrapper to run
CustomTarget commands on Windows. This can later also be extended to add
support for setting an environment while calling the command needed to
generate a CustomTarget: https://github.com/mesonbuild/meson/issues/266
2016-04-15 05:49:42 +05:30
c0765b0e8d Don't require an exe_wrapper when cross-compiling 32-bit on 64-bit
Almost all 64-bit x86 OSes can run 32-bit x86 binaries natively. Detect
that case and don't require an exe wrapper.
2016-04-15 00:25:34 +05:30
48e678db76 Strip leading source tree dir name from install files if it exists. 2016-04-09 12:04:06 +03:00
cab5ce4fc0 Merge pull request #438 from trhd/testing_options
New options for controlling test output.
2016-04-06 23:10:20 +03:00
2eb392cdc0 Implement errorlogs builtin option. 2016-04-04 02:52:30 +03:00
7fb04c207b Implement stdsplit builtin option. 2016-04-04 02:52:30 +03:00
16b3e22016 Removed lingering coverage flags. 2016-04-04 01:41:56 +03:00
873ffe782c Merge pull request #390 from nirbheek/msvc-module-defs
Add support for passing a module definitions file for exporting symbols while linking
2016-04-03 18:12:18 +03:00
4352398caf Fix output dir of coverage-html. 2016-04-03 17:27:14 +03:00
6291fb4056 Put buildtype flags to vala compiles. 2016-04-03 16:44:18 +03:00
336904b553 Move MesonException from coredata to mesonlib. 2016-04-01 00:52:45 +03:00
519df3defa Only check cl banner string on Windows. Closes #491. 2016-03-31 21:46:26 +03:00
67377e69b5 Invoke depfixer in-process to make it faster. Closes #480. 2016-03-30 22:09:36 +03:00
74265135bd Add global arguments to vala compilations. 2016-03-30 21:27:02 +03:00