Commit Graph

154 Commits

Author SHA1 Message Date
Brad King
6c7460bc48 Merge topic 'FindBoost-fix-backslash-tolerance'
2516bccd FindBoost: Restore tolerance of backslashes in paths

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !721
2017-04-20 08:47:05 -04:00
Alex Turbov
2516bccdf6 FindBoost: Restore tolerance of backslashes in paths
Since commit v3.8.0-rc1~136^2 (FindBoost: Search official location of
prebuilt binaries on Windows, 2016-12-21) we pass input paths through
`_Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS` in more
places than before.  This broke tolerance of backslashes in paths
provided by the user due to the macro argument re-parsing.  Turn
`_Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS` into a
function instead of macro to avoid re-parsing of macro arguments.

Fixes: #16816
2017-04-19 11:24:41 -04:00
yume todo
6115875bf0 FindBoost: Fix release name candidate list construction
Changes in commit 3ca6f70f (FindBoost: Allow testing for multiple
compiler suffixes, 2017-03-28) accidentally left a `set()` instead of a
`list(APPEND)` while constructing `_boost_RELEASE_NAMES`.  Fix the logic
to match what was done for `_boost_DEBUG_NAMES`.  Otherwise we drop some
of the candidate names.
2017-04-06 14:03:26 -04:00
Brad King
fb3f6fd3fe Merge topic 'FindBoost-vs-toolset-fallback'
862482df FindBoost: Support prebuilt Windows binaries from SourceForge
3ca6f70f FindBoost: Allow testing for multiple compiler suffixes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !639
2017-04-04 09:20:16 -04:00
Roger Leigh
556d98da3b FindBoost: Update 1.64 dependencies using 1.64 beta1 2017-03-30 11:43:13 +01:00
Roger Leigh
862482df27 FindBoost: Support prebuilt Windows binaries from SourceForge
This are searched for in the default installed location
C:/local/boost_${ver}
2017-03-29 11:27:43 +01:00
Roger Leigh
3ca6f70f8b FindBoost: Allow testing for multiple compiler suffixes
This is to permit VS2017 to make use of the vc141 suffix or
fall back to the compatible vc140 to use Boost libraries built
with VS2015.

Fixes: #16631
2017-03-29 11:27:43 +01:00
Brad King
a1440504ff Merge topic 'avoid-MSVC-per-version-vars'
9ab966a7 FindRuby: Use `MSVC_VERSION` instead of `MSVC##`
69b9fde1 FindGTK2: Use `MSVC_VERSION` instead of `MSVC##`
3fe31822 FindBoost: Avoid mentioning discouraged `MSVC##`` variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !610
2017-03-23 08:44:22 -04:00
Brad King
b8c72c50f7 Merge branch 'avoid-MSVC-per-version-vars' into release 2017-03-23 08:42:37 -04:00
Brad King
3fe3182247 FindBoost: Avoid mentioning discouraged MSVC##` variable 2017-03-23 08:40:34 -04:00
Mateusz Łoskot
9b2f8a82e5 FindBoost: Update support for 1.64
Update the Boost library name mangling used for VS 2017 to match a
change made to Boost upstream (vc1410 => vc141).
2017-03-22 10:49:17 -04:00
Mateusz Łoskot
6bd28fd235 FindBoost: Add support for 1.64
Update the module to enable finding components of Boost 1.64 (beta) from
the upcoming release.  Also update the Boost library name mangling used
for VS 2017 to match a change made to Boost upstream (vc150 => vc1410).
2017-03-20 14:43:24 -04:00
Yves Frederix
97d61562d0 FindBoost: unset cache variables if the lib dir changes
This fixes a regression introduced by commit v3.3.0-rc1~5^2~2
(FindBoost: Search for debug and release libraries separately,
2015-01-26).  The `_Boost_CHANGE_LIBDIR` variable was split into
`_Boost_CHANGE_LIBDIR_{DEBUG,RELEASE}` but one usage site was not
updated.
2017-01-30 09:29:28 -05:00
Brad King
a8b576244f Merge topic 'FindBoost-1.63'
a9b93501 FindBoost: Add support for 1.63
2017-01-11 09:58:17 -05:00
Alex Turbov
ff91b1514b FindBoost: Search official location of prebuilt binaries on Windows
Make it possible to find Boost in the default install path (`c:\boost`)
of an official prebuilt binaries installation even when `BOOST_ROOT`
has not been specified.
2017-01-10 14:21:53 -05:00
Roger Leigh
a9b93501d4 FindBoost: Add support for 1.63 2017-01-10 13:15:34 -05:00
Brad King
c7cd379179 Merge topic 'FindBoost-vs15'
c3b6b5ba FindBoost: Add support for VS 2017
2016-12-09 14:23:50 -05:00
Vic Luo
c3b6b5babc FindBoost: Add support for VS 2017 2016-12-08 08:20:08 -05:00
Alex Turbov
08b9a0fdfa FindBoost: Simplify library dir detection with cascading if/elseif/else 2016-10-13 10:19:07 -04:00
Alex Turbov
ca4029fa9a FindBoost: Minor style updates 2016-10-13 10:17:24 -04:00
Alex Turbov
2e242b5c1e FindBoost: Use list(INSERT) to simplify suffix list generation 2016-10-13 10:16:46 -04:00
Alex Turbov
6699d46a2a FindBoost: Use string(APPEND) in more cases 2016-10-13 10:15:34 -04:00
Roger Leigh
a997cac832 FindBoost: Add 1.62 and 1.62.0 as supported versions 2016-10-03 12:19:33 +01:00
Brad King
86578eccf2 Simplify CMake per-source license notices
Per-source copyright/license notice headers that spell out copyright holder
names and years are hard to maintain and often out-of-date or plain wrong.
Precise contributor information is already maintained automatically by the
version control tool.  Ultimately it is the receiver of a file who is
responsible for determining its licensing status, and per-source notices are
merely a convenience.  Therefore it is simpler and more accurate for
each source to have a generic notice of the license name and references to
more detailed information on copyright holders and full license terms.

Our `Copyright.txt` file now contains a list of Contributors whose names
appeared source-level copyright notices.  It also references version control
history for more precise information.  Therefore we no longer need to spell
out the list of Contributors in each source file notice.

Replace CMake per-source copyright/license notice headers with a short
description of the license and links to `Copyright.txt` and online information
available from "https://cmake.org/licensing".  The online URL also handles
cases of modules being copied out of our source into other projects, so we
can drop our notices about replacing links with full license text.

Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
of the replacements mechanically.  Manually fix up shebang lines and trailing
newlines in a few files.  Manually update the notices in a few files that the
script does not handle.
2016-09-27 15:14:44 -04:00
Tatsuyuki Ishi
9bb8ac8ed2 FindBoost: update to 1.62 2016-09-25 16:53:03 +09:00
Daniel Pfeifer
5d0d980d99 Use string(APPEND) in Modules
Automate with:

find Modules -type f -print0 | xargs -0 perl -i -0pe \
's/set\(([a-zA-Z0-9_]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
2016-07-28 00:41:13 +02:00
Alex Turbov
cb1a434ce0 FindBoost: Add check headers for zlib and bzip2
The official Windows builds of Boost have internal implementations for
`zlib` and `bzip2` libraries used by Boost::iostreams library, e.g.

* boost_bzip2-vc140-mt-1_59.lib
* boost_zlib-vc140-mt-1_59.lib

Add check headers for these so that users can specify them as
components without any warnings.

Reviewed-by: Roger Leigh <rleigh@dundee.ac.uk>
2016-07-05 14:22:01 -04:00
Andreas Weis
c9fca42fd1 FindBoost: Make imported targets fall back to Release
FindBoost only detects Debug and Release configurations.  All other
configurations will fall back to the configuration listed as the first
entry in `IMPORTED_CONFIGURATIONS`.  Switch the order so that `Release`
is listed first, as this is a better fallback than `Debug` for the
`RelWithDebInfo` and `MinSizeRel` configurations.  See issue #16091.
2016-06-20 10:14:10 -04:00
Alex Turbov
c3a281fd32 FindBoost: Search in official Windows prebuilt binary library directory
Avoid the need to specify `BOOST_LIBRARYDIR` along with `BOOST_ROOT`
when using prebuilt binaries such as these:

  https://sourceforge.net/projects/boost/files/boost-binaries/
2016-06-03 11:15:02 -04:00
Alex Turbov
3720d5f4a3 FindBoost: Test CMAKE_CXX_COMPILER_{ID,VERSION} instead of MSVC* 2016-06-03 11:11:38 -04:00
Brad King
d082810949 Merge topic 'boost-component-headers'
c2e8d515 FindBoost: Add checks for component-specific headers
2016-05-16 10:11:43 -04:00
Roger Leigh
c2e8d5150e FindBoost: Add checks for component-specific headers
This supplements the existing library checks, to
cater for the possibility that the libraries are
present but the headers are not.  This can happen
when the Boost collections is split up into
multiple packages and not all are installed,
and will avoid the checks silently passing when
the build would subsequently fail.
2016-05-16 09:57:46 -04:00
Roger Leigh
328eff90eb FindBoost: Update dependencies for Boost 1.61 2016-05-13 19:39:41 +01:00
Brad King
5a9b2b3b11 FindBoost: Fix Boost_NO_SYSTEM_PATHS to not consider environment (#15702)
Previously we added only NO_CMAKE_SYSTEM_PATH to find command calls.
Add NO_SYSTEM_ENVIRONMENT_PATH too so that paths found from system
environment variables are not considered either.
2016-05-02 11:43:28 -04:00
Roger Leigh
2c1b720e64 FindBoost: Define Boost::boost for all boost versions 2016-04-19 22:07:45 +01:00
Erik Zenker
4527b9c416 FindBoost: Add support for IBM XL compiler 2016-03-23 13:41:42 -04:00
Roger Leigh
e2f387fabb FindBoost: Tolerate missing indirect dependencies (#16013)
Depending upon the configuration, certain components may or may not
be installed, for example Boost.Regex, but other components may
still have header dependencies upon these components which will
obviously fail to work.  Since we can't make a sensible
determination with the hardcoded dependency information, we
choose to interpret these dependencies less strictly.
2016-03-15 09:54:58 -04:00
Sergei Nikulov
b94e855d5f FindBoost: Add support for Boost 1.61 2016-01-22 08:35:04 -05:00
Roger Leigh
0a31fdabec FindBoost: Add support for Boost 1.60 2015-12-17 21:46:58 +00:00
Roger Leigh
3f9b081f6e FindBoost: Add imported targets
Targets include:

- Boost::boost: Target for header-only dependencies
- Boost::<C>: Target for specific component dependency
- Boost::diagnostic_definitions: adds BOOST_LIB_DIAGNOSTIC
- Boost::disable_autolinking: adds BOOST_ALL_NO_LIB
- Boost::dynamic_linking: adds BOOST_ALL_DYN_LINK
2015-12-02 09:40:17 -05:00
Roger Leigh
01c80acdbd FindBoost: Automatically add missing component dependencies
The function _Boost_MISSING_DEPENDENCIES will look at the
user-supplied component list, check the dependency
information for each component using
_Boost_COMPONENT_DEPENDENCIES, and will add any missing
dependencies to the component list.  This ensures that
all required components will be searched for.
2015-12-02 09:40:17 -05:00
Roger Leigh
5183c6e5dd FindBoost: Embed component dependency table
The function _Boost_COMPONENT_DEPENDENCIES is used to query the
library dependencies for a given component for a given version of
Boost.  This covers Boost releases from 1.33 to 1.59, using the
information generated by Utilities/Scripts/BoostScanDeps.cmake.
2015-12-02 09:40:17 -05:00
Roger Leigh
ff5bb2efbe FindBoost: Add support for Boost 1.59 2015-08-14 09:55:07 -04:00
Brad King
e14e1f273a Merge topic 'FindBoost-per-config-libraries'
b3df1e9f FindBoost: Fix Boost_LIBRARY_DIR_{RELEASE,DEBUG} cache entry configuration
2015-06-02 09:03:52 -04:00
Brad King
b3df1e9f70 FindBoost: Fix Boost_LIBRARY_DIR_{RELEASE,DEBUG} cache entry configuration
These cache entries introduced by commit 892b854f (FindBoost: Search for
debug and release libraries separately, 2015-01-26) should be marked as
advanced just as Boost_LIBRARY_DIR was.  Also their _LAST values should
be tracked so changes can be detected reliably.  Both of these are
handled by code looking in _Boost_VARS_LIB for a list of relevant
variables.  Fix construction of this list that was broken by the above
commit.

Reported-by: Sylvain Joubert <joubert.sy@gmail.com>
2015-06-01 10:10:08 -04:00
Geoff Viola
48004d9dbe Add a 'Green Hills MULTI' generator on Windows
Green Hills MULTI is an IDE for embedded real-time systems.  The IDE's
product page can be found here:

 http://www.ghs.com/products/MULTI_IDE.html

It supports cross compiling on ARM, Intel x86, and other architectures
with various operating systems.  The IDE exists on Linux and Windows
host systems, but CMake will currently only generate the project files
on Windows host systems.
2015-04-20 13:55:40 -04:00
Gunther Laure
892b854f57 FindBoost: Search for debug and release libraries separately (#15364)
Split Boost_LIBRARY_DIR into Boost_LIBRARY_DIR_[RELEASE,DEBUG] to allow
libraries to be grouped into per-config directories.
2015-02-05 10:50:49 -05:00
Brad King
526a80b32a Merge topic 'FindBoost-update-versions'
4048f7cd FindBoost: Add latest Boost version 1.57.0 and next milestone 1.58.0
2015-01-15 09:53:54 -05:00
Sergey Nikulov
4048f7cde0 FindBoost: Add latest Boost version 1.57.0 and next milestone 1.58.0 2015-01-13 08:59:13 -05:00
Guillaume Papin
43b8bfb213 FindBoost: fix find_library call when using "re-rooting"
When using CMAKE_FIND_ROOT_PATH, FindBoost is able to find the first
component and cache the full path of the directory in Boost_LIBRARY_DIR
so that all components are looked for in same directory. The issue was
that, when looking for the other components, Boost_LIBRARY_DIR was
re-rooted against CMAKE_FIND_ROOT_PATH even though it was already a path
on the host. This change fixes this by disabling the re-rooting in the
find_library call when using Boost_LIBRARY_DIR as a hint.

See http://www.cmake.org/pipermail/cmake-developers/2014-October/011670.html
2014-10-26 00:03:39 -04:00