Commit Graph

27 Commits

Author SHA1 Message Date
Jan Niklas Hasse c3d143298b Log instead of raise if Boost module invalid
BOOST_LIBS could become outdated in future versions, which would result
in dependency('boost', modules : [ 'foo' ], required : false) to fail,
although required was set to false. Therefore turn the exception into
log_fail(). If required was set to true, this will still be caught since
is_found remains False.

This also improves logging by printing all invalid module names instead
of only the first one.
2017-11-13 21:07:00 +02:00
Félix Piédallu bb84c1d109 Add LibWmf as a specified dependency, and associated tests. 2017-10-31 01:05:46 +02:00
Goncalo Carvalho 01611a66e2 Fix boost link cmd line when compiler.find_library returns None, self.request_modules doesn't have 'boost_' prefix but lib_modules is keyed on 'boost_*' 2017-10-29 02:13:54 +03:00
Niklas Claesson 14e7b0af25 Boost: Add Python libraries
Fixes: #2507
2017-10-25 21:08:54 +03:00
Niklas Claesson c97e7749a6 Boost: Jamfile has two syntaxes for boost libraries
Fixes #2456
2017-10-12 21:45:23 +03:00
Jan Niklas Hasse 7b36897ff9 Use get_default_include_dirs to detect BOOST_ROOT
This removes the need to specify BOOST_ROOT for cross-compilers.
2017-10-07 18:02:08 +03:00
Niklas Claesson bbdba876af Boost: Improve search algorithm
The new implementation will correctly pick boost from 3 possible
locations on windows and two locations on posix compatible OSs.

The new search algorithm also differentiates between debug and
release builds of Boost and multi or single threading builds.

It was also decided to map "Meson modules" to Boost software libraries
and not Boost modules since it there are a lot of options regarding
linking. Some modules can even be used either as headers-only or with
dynamic linking.

This commit also fixes a bug that prevented header-only use on Windows.

Fixes: #2274 #2239 #1803 #669
2017-10-01 18:49:27 +02:00
Niklas Claesson 09ccd0eeaa C/C++: Get default include dirs from compilers 2017-10-01 18:35:33 +02:00
Jussi Pakkanen bea6b1a6f6 Merge pull request #2187 from centricular/fix-pcap-dependency
Fix pcap dependency, str.strip() now takes an argument, add cc.get_return_value()
2017-09-22 22:04:18 +03:00
Nirbheek Chauhan 177283d203 pcap dependency: Frameworks for libpcap do not exist
The only ways to get it are via Homebrew or Macports, which install
pkg-config files and/or pcap-config
2017-09-22 19:11:57 +05:30
Nirbheek Chauhan 20991c0669 dependencies: Add version detection to pcap 2017-09-20 13:36:42 +05:30
Alexis Jeandet e553d0807b Last round with listify function refactoring.
Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>
2017-09-18 22:25:34 +02:00
Iñigo Martínez 35ef236c43 add support for cups dependencies (#2255)
* add support for cups dependencies

libcups has its own cups-config tool rather than using pkg-config.
This adds support for cups-config, based on pcap-config and
sdl2-config implementations.

This change also includes the unit test case and documentation for
cups dependency object implementation, and libcups2 dep to CI image.
2017-08-31 21:38:15 +03:00
Michał Wikliński 9154a6473b Find Boost dep when there is an extra lib to link
There are several components in Boost which must be linked with extra
libraries. Boost Log is one of them and in special circumstances needs
linking with boost_log_setup.

http://www.boost.org/doc/libs/1_64_0/libs/log/doc/html/log/detailed/utilities.html#log.detailed.utilities.setup

This fix covers the case when there is no source file corresponding to
the additional library.
2017-08-20 23:17:12 +03:00
Bruce Richardson c89b8c5c4b add support for pcap dependencies
Libpcap has its own pcap-config tool rather than using pkg-config. Add
support for pcap-config, based on the existing implementation of
sdl2-config that is there already.
2017-08-10 10:37:07 +01:00
Elliott Sales de Andrade 4cbfb9a08d Add support for MS-MPI. 2017-08-04 20:07:08 -04:00
Elliott Sales de Andrade 271601124e Filter out extra args from MPI wrappers. 2017-08-04 20:07:08 -04:00
Elliott Sales de Andrade 5a7e06a64f Add MPI dependency.
We prefer pkg-config files, though only OpenMPI supplies them.
Otherwise, check environment variables and search for wrappers and ask
them for what to do.
2017-08-04 20:06:47 -04:00
Wade Berrier ad1b487285 dependency: boost: only consult environment at initial stage
... not when getting compiler and link arguments

Would be nice to have some tests, but that requires boost in a
non-standard location.
2017-06-27 11:33:10 -04:00
Nirbheek Chauhan 9308a6d923 tests: Add Boost unit tests and project tests on Windows
Boost tests are disabled on Windows for now because the detection
is actually completely broken. Once that's fixed (after the release)
we can enable it again.
2017-06-10 18:55:50 +05:30
Nirbheek Chauhan 0c83f8352d dependencies: Add a new class ExternalDependency
This class now consolidates a lot of the logic that each external
dependency was duplicating in its class definition.

All external dependencies now set:

* self.version
* self.compile_args and self.link_args
* self.is_found (if found)
* self.sources
* etc

And the abstract ExternalDependency class defines the methods that
will fetch those properties. Some classes still override that for
various reasons, but those should also be migrated to properties as
far as possible.

Next step is to consolidate and standardize the way in which we call
'configuration binaries' such as sdl2-config, llvm-config, pkg-config,
etc. Currently each class has to duplicate code involved with that
even though the format is very similar.

Currently only pkg-config supports multiple version requirements, and
some classes don't even properly check the version requirement. That
will also become easier now.
2017-06-09 20:21:01 +05:30
Adam C. Foltzer a53e44ad63 generalize the system include detection a bit
This should help when using a non-standard sysroot, common in cross-compiling
2017-06-07 20:11:34 +03:00
Adam C. Foltzer b290688ede look for static Boost libraries on *nix when requested
This was already mostly working before due to how the linker arguments were constructed, but this will now be more resilient to the case where dynamic libraries only are present.
2017-05-25 11:30:55 -07:00
Adam C. Foltzer 80fd7106e8 add support for static flag on Windows Boost dependency 2017-05-25 11:20:29 -07:00
Goncalo Carvalho 6eb75a04a1 fix lookup of boost modules when cross-compiling on osx 2017-05-20 18:57:27 +03:00
Elliott Sales de Andrade ea636fcd51 Remove unused variables. 2017-05-17 04:41:54 -04:00
Elliott Sales de Andrade d3caadb675 Split misc dependencies into their own file. 2017-05-09 18:28:05 -04:00