summaryrefslogtreecommitdiffstats
path: root/Modules/FindBoost.cmake
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'boost-component-headers'Brad King2016-05-161-4/+84
|\ | | | | | | | | c2e8d515 FindBoost: Add checks for component-specific headers
| * FindBoost: Add checks for component-specific headersRoger Leigh2016-05-161-4/+84
| | | | | | | | | | | | | | | | | | | | 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.
* | FindBoost: Update dependencies for Boost 1.61Roger Leigh2016-05-131-1/+15
|/
* FindBoost: Fix Boost_NO_SYSTEM_PATHS to not consider environment (#15702)Brad King2016-05-021-2/+2
| | | | | | 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.
* FindBoost: Define Boost::boost for all boost versionsRoger Leigh2016-04-191-2/+2
|
* FindBoost: Add support for IBM XL compilerErik Zenker2016-03-231-0/+2
|
* FindBoost: Tolerate missing indirect dependencies (#16013)Roger Leigh2016-03-151-2/+12
| | | | | | | | | 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.
* FindBoost: Add support for Boost 1.61Sergei Nikulov2016-01-221-2/+2
|
* FindBoost: Add support for Boost 1.60Roger Leigh2015-12-171-1/+15
|
* FindBoost: Add imported targetsRoger Leigh2015-12-021-0/+122
| | | | | | | | | | 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
* FindBoost: Automatically add missing component dependenciesRoger Leigh2015-12-021-0/+43
| | | | | | | | | 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.
* FindBoost: Embed component dependency tableRoger Leigh2015-12-021-0/+221
| | | | | | | 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.
* FindBoost: Add support for Boost 1.59Roger Leigh2015-08-141-2/+4
|
* Merge topic 'FindBoost-per-config-libraries'Brad King2015-06-021-0/+2
|\ | | | | | | | | b3df1e9f FindBoost: Fix Boost_LIBRARY_DIR_{RELEASE,DEBUG} cache entry configuration
| * FindBoost: Fix Boost_LIBRARY_DIR_{RELEASE,DEBUG} cache entry configurationBrad King2015-06-011-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Add a 'Green Hills MULTI' generator on WindowsGeoff Viola2015-04-201-1/+4
|/ | | | | | | | | | | | 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.
* FindBoost: Search for debug and release libraries separately (#15364)Gunther Laure2015-02-051-49/+107
| | | | | Split Boost_LIBRARY_DIR into Boost_LIBRARY_DIR_[RELEASE,DEBUG] to allow libraries to be grouped into per-config directories.
* Merge topic 'FindBoost-update-versions'Brad King2015-01-151-1/+1
|\ | | | | | | | | 4048f7cd FindBoost: Add latest Boost version 1.57.0 and next milestone 1.58.0
| * FindBoost: Add latest Boost version 1.57.0 and next milestone 1.58.0Sergey Nikulov2015-01-131-1/+1
| |
* | FindBoost: fix find_library call when using "re-rooting"Guillaume Papin2014-10-261-2/+2
|/ | | | | | | | | | | | 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
* FindBoost: Avoid if() quoted auto-dereferenceNils Gladitz2014-10-061-4/+4
| | | | | | When testing CMAKE_CXX_COMPILER[_ID] values with if(MATCHES) or if(STREQUAL), do not explicitly dereference or quote the variable. We want if() to auto-dereference the variable and not its value.
* FindBoost: Add -vc140 mangling for VS 14Brad King2014-06-251-0/+2
| | | | Co-Author: Pawel Stopinski <diokhan@go2.pl>
* Remove .* expressions from beginning and end of MATCHES regexsRolf Eike Beer2014-04-141-1/+1
| | | | | | | | | All these expressions work the same: "foo" ".*foo.*" "^.*foo.*$" This assumes that the "Intel*" expressions were meant to be "Intel.*".
* Clean up usage of if(... MATCHES regex) followed string(REGEX REPLACE regex)Rolf Eike Beer2014-04-141-6/+6
| | | | | | The matches have already been calculated and can simply be taken from CMAKE_MATCH_n variables. This avoids multiple compilations of the same or very similar regular expressions.
* FindBoost: Search next to MPI libs for graph_parallel (#14832)Ben Boeckel2014-03-251-1/+2
| | | | | In addition to the MPI libraries, graph_parallel lives in the MPI libdir as well.
* FindBoost: Add suport for custom namespacesChuck Atkins2014-02-171-25/+37
| | | | | | | | | | When building boost with an alternate namespace the libraries generated will have a different naming convention. This is often done to ensure no symbol conflicts with external libraries built against a different version of boost. If the namespace used is "myprivateboost::" instead of "boost::" then the libraries built will be named myprivateboost_foo instead of boost_foo. Add an option to specify a custom namespace used to alter the library names that get searched for.
* FindBoost: Search next to MPI libraries for boost_mpi (#14739)Brad King2014-02-101-4/+31
| | | | | | | | | | Some distributions place boost_mpi next to the MPI libraries against which it was built instead of next to the other Boost libraries. If find_package(MPI) has already been run prior to find_package(Boost) then MPI_CXX_LIBRARIES or MPI_C_LIBRARIES may be set to the location of the MPI libraries. Teach FindBoost.cmake to look there for boost_mpi and boost_mpi_python after looking next to the other Boost libraries but not consider the location to be Boost_LIBRARY_DIR.
* FindBoost: Add Boost_USE_DEBUG_RUNTIME option (#14686)Brad King2014-01-081-1/+7
| | | | | Add an option to control use of the 'g' runtime debug library tag on MSVC tools. Default to ON to preserve existing behavior.
* FindBoost: Clarify example static libs option (#13663)Brad King2013-11-011-2/+2
| | | | State explicitly in the example that it will only find static libraries.
* FindBoost: Refine .rst formattingBrad King2013-11-011-32/+11
| | | | | Move the '::' starting literal blocks to the end of the preceding paragraph. Convert the "Boost CMake" divider to a section header.
* Convert builtin help to reStructuredText source filesKitware Robot2013-10-151-113/+157
| | | | | | | | Run the convert-help.bash script to convert documentation: ./convert-help.bash "/path/to/CMake-build/bin" Then remove it.
* Merge branch 'master' into vs12-generatorBrad King2013-06-281-6/+19
|\ | | | | | | | | Resolve conflicts in Tests/Preprocess/CMakeLists.txt by keeping the side from 'master'.
| * FindBoost: Clarify failure on missing 'static' libs (#14235)Brad King2013-06-201-1/+6
| | | | | | | | | | | | | | | | When Boost_USE_STATIC_LIBS is ON we may complain that Boost libraries cannot be found even when shared libraries are present. Update the error message to tell the user explicitly that we want static libraries. Suggested-by: Laurence R. McGlashan <laurence.mcglashan@gmail.com>
| * Merge topic 'FindBoost-normalize-slashes'Brad King2013-05-311-2/+10
| |\ | | | | | | | | | | | | 363825c FindBoost: Fix handling of \ in input paths (#14179)
| | * FindBoost: Fix handling of \ in input paths (#14179)Brad King2013-05-301-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit 5b9149e0 (FindBoost: Overhaul caching and search repeat behavior, 2012-09-24) we refactored the internal library search to use a _Boost_FIND_LIBRARY macro to wrap around find_library calls. However, CMake macros re-process escape sequences when evaluating calls inside the macro after substituting placeholders (a historical bug). In order to avoid escape sequences, convert backslashes to forward slashes before passing arguments to the _Boost_FIND_LIBRARY macro.
| * | Fix spelling and typos (non-binary)Andreas Mohr2013-05-071-3/+3
| |/
* | FindBoost: Add -vc120 mangling for VS 12Brad King2013-06-281-0/+2
|/
* FindBoost: Rewrite documentationBrad King2012-09-271-242/+135
| | | | | | | | | | | | | Write new documentation for this module. Ensure that it formats correctly in "cmake --help-module FindBoost" output. Show the basic form of calling find_package(Boost). Document all result variables, input variables, and cache variables appropriately grouped together. Explain the search process and how it re-runs when changes are made. Explain the difference between finding headers/libraries versus finding a "Boost CMake" package configuraiton file. Drop the emphasis on Boost_ADDITIONAL_VERSIONS because the implementation should predict most future versions instead.
* FindBoost: Refactor Boost_FOUND computation and version checkBrad King2012-09-271-98/+60
| | | | | | | | Construct an initial Boost_FOUND value immediately after searching for Boost_INCLUDE_DIR. Base the result only on whether header files for the requested version were found. Then after searching for component libraries update Boost_FOUND based on whether all requested components were found.
* FindBoost: Construct a clean Boost_LIBRARIES valueBrad King2012-09-271-1/+2
| | | | | | Construct the value from scratch based on the component library list. Avoid accumulating values from repeated find_package(Boost) calls. If Boost is not found, Boost_LIBRARIES should be empty.
* FindBoost: Overhaul caching and search repeat behaviorBrad King2012-09-271-128/+208
| | | | | | | | | | | | | | | | | | | | | | | Overhaul the implementation as follows: (1) Do not cache result variables such as Boost_VERSION, Boost_LIB_VERSION, Boost_LIBRARY_DIRS, Boost_${COMPONENT}_FOUND, Boost_${COMPONENT}_LIBRARY, or Boost_LIB_DIAGNOSTIC_DEFINITIONS that are derived uniquely from other search results. The user should not edit them anyway. (2) Add cache value Boost_LIBRARY_DIR to hold the single directory expected to contain all libraries. Once one library is found, search only that directory for other libraries. (3) Use the find_library NAMES_PER_DIR option to consider all possible library names at the same time. (4) Collect all documented input and cache variables and detect when they have been changed by the user. Discard prior search results that may have been influenced by the changes and search for them again. Environment variables are not expected to be persistent so use them only as hints and do not consider changes to them to be meaningful.
* FindBoost: Use PATH_SUFFIXES to look in "Program Files"Brad King2012-09-271-8/+6
| | | | | | | | | The CMake find_path command looks under the proper "Program Files" directories on Windows with any of the provided PATH_SUFFIXES. This is simpler and more robust than directly reading ENV{ProgramFiles}. Once Boost_INCLUDE_DIR has been located we already look next to it for the lib directory anyway, so we do not need special help to find Boost libraries under "Program Files".
* FindBoost: Mark Boost_DIR cache entry as advancedBrad King2012-09-261-0/+1
|
* FindBoost: Remove extra indentation levelBrad King2012-09-251-553/+553
| | | | A large portion of the file was still indented for historical reasons.
* read less from version headers into variablesRolf Eike Beer2012-08-191-1/+2
| | | | | | | | | Instead of reading the whole file using file(READ) and later matching on the whole file use file(STRINGS ... REGEX) to get only those lines we are interested in at all. This will make the list much smaller (good for debugging) and also the regular expressions will need to match on much smaller strings. Also unset the content variables once they are not used anymore.
* Remove CMake-language block-end command argumentsKitware Robot2012-08-131-45/+45
| | | | | | | | | | | | | | | | | Ancient versions of CMake required else(), endif(), and similar block termination commands to have arguments matching the command starting the block. This is no longer the preferred style. Run the following shell code: for c in else endif endforeach endfunction endmacro endwhile; do echo 's/\b'"$c"'\(\s*\)(.\+)/'"$c"'\1()/' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | egrep -z -v 'Tests/CMakeTests/While-Endwhile-' | xargs -0 sed -i -f convert.sed && rm convert.sed
* Convert CMake-language commands to lower caseKitware Robot2012-08-131-1/+1
| | | | | | | | | | | | | | | | | Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code: cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done >convert.sed && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' | egrep -z -v '^(Utilities/cm|Source/kwsys/)' | xargs -0 sed -i -f convert.sed && rm convert.sed
* FindBoost: Future proof to 1.56Philip Lowman2012-06-301-1/+4
|
* FindBoost: Fix bug where Boost_FOUND could be false when version specifiedPhilip Lowman2012-06-301-118/+105
| | | | | | Fixes a problem where when specifying a version number without the REQUIRED parameter, Boost_FOUND would be true on the first configure but false on subsequent configures.
* FindBoost: add support for 1.49 and 1.50Rolf Eike Beer2012-04-071-2/+3
| | | | | Boost 1.49 has already be released. Add this and the next to come version number to the search list.