summaryrefslogtreecommitdiffstats
path: root/Source/cmFindBase.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'fix-bad-search-ordering' into test-search-orderingBrad King2015-09-151-2/+4
|\
| * find_*: Fix search order when the environment duplicates some HINTSChuck Atkins2015-09-141-2/+4
| | | | | | | | | | | | | | | | | | Refactoring in the topic merged by commit v3.2.0-rc1~400 (Merge topic 'refactor-search-path-construction', 2014-11-13) introduced a bug that filters out duplicate paths in an incorrect order. Restore the search path to its documented order even when duplicate paths are present. Reported-by: Marc CHEVRIER <marc.chevrier@sap.com>
* | cmAlgorithms: Rename cmRange to cmMakeRange.Stephen Kelly2015-07-221-2/+2
|/
* cmState: Move CacheEntryType enum from cmCacheManager.Stephen Kelly2015-04-131-1/+1
|
* Port to cmState.Stephen Kelly2015-04-131-4/+5
|
* cmCacheManager: Port consumers to non-iterator API.Stephen Kelly2015-04-081-6/+7
| | | | | This simplifies reasoning about the follow-up commit which ports away from cmCacheManager to a class with the same method names.
* Revert topic 'refactor-cache-api'Brad King2015-04-071-7/+6
| | | | | | This topic was never tested without some follow-up commits. The GetCacheEntryValue API returns a pointer to memory freed on return. It will have to be revised along with the rest of the original topic.
* cmCacheManager: Port consumers to non-iterator API.Stephen Kelly2015-04-061-6/+7
| | | | | This simplifies reasoning about the follow-up commit which ports away from cmCacheManager to a class with the same method names.
* Include cmAlgorithms where it is used.Stephen Kelly2015-03-101-0/+2
|
* Merge topic 'use-algorithms'Brad King2015-02-231-16/+3
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bb9d71b4 Replace loops with algorithms. 4afe6c26 cmAlgorithms: Add cmReverseRange adaptor. a3a0a8c2 cmAlgorithms: Add cmFindNot algorithm. 8c74a41f cmRST: Replace two erase with a rotate and larger erase. 61fe1919 cmAlgorithms: Update concept requirement to FowardIterator 09d6125b cmAlgorithms: Move cmRotate out of 'implementation detail' namespace. 8ed6ecac cmRST: Move two algorithms beside each other. dfe49c20 cmRST: Use std::min where appropriate. 21b0654a cmGlobalGenerator: Convert set insert algorithm to vector algorithms. 416df93a Convert some raw loops to cmWrap. 37b88d34 cmAlgorithms: Add cmWrap. a2818093 Use cmJoin where possible. 76207b08 cmCacheManager: Replace loop with algorithm. 60c3bb73 cmGlobalGenerator: Replace loop with algorithm. 05fec779 cmTarget: Port loop to algorithm. 9c225767 cmGlobalGenerator: Replace set::insert algorithm with cmRemoveDuplicates. ...
| * Convert some raw loops to cmWrap.Stephen Kelly2015-02-201-5/+1
| |
| * Use cmJoin where possible.Stephen Kelly2015-02-201-11/+2
| |
* | Teach find_(library|file|path) to get prefixes from PATH (#15370)Brad King2015-02-191-0/+1
|/ | | | | | | | | The find_package command already knows how to compute installation prefixes from PATH. Use the same approach to establish prefixes for find_library, find_file, and find_path to use to look in directories like "<prefix>/lib[/<arch>]" and "<prefix>/include" for libraries and headers. This will reduce the amount of configuration end users need to do to establish a work environment rooted under a specific prefix.
* cmFindBase: Replace loop with cmJoin on range.Stephen Kelly2015-02-111-5/+3
|
* Replace 'foo.size() == 0' pattern with foo.empty().Stephen Kelly2015-01-181-2/+2
|
* Use insert instead of a loop in some cases.Stephen Kelly2015-01-111-4/+2
| | | | | | Limit this change to inserting into a vector from a vector. A follow up change can use insert for inserting into a set.
* Use containers of labeled search paths instead of individual membersChuck Atkins2014-11-121-24/+34
| | | | | | | Manage classes of search paths in labeled containers. This removes the need to have a seperate member variable for each type of search path, but also allows path types to be grouped togethor in various different ways and manipulated as subsets of the full set of search paths.
* Encapsulate search path manipulation functions into a seperate class.Chuck Atkins2014-11-111-143/+34
| | | | | | The functions for adding the various different types of paths have been factored out into a new class, cmSearchPath. It is to be used as a helper container class for the various find_* commands.
* Refactor and seperate search path construction for find commandsChuck Atkins2014-11-111-122/+133
| | | | | | | Prior to this commit, the set of search paths to traverse for find commands was incrementally constructed. This change allows each group of paths, i.e. CMakeVariablePaths, UserHintsPaths, SystemEnvironmentPaths, etc. to be constructed and manipulated independently, and then all combined togethor.
* Remove some c_str() calls.Stephen Kelly2014-03-111-4/+4
| | | | | | Use the clang RemoveCStrCalls tool to automatically migrate the code. This was only run on linux, so does not have any positive or negative effect on other platforms.
* stringapi: Use strings for variable namesBen Boeckel2014-03-081-3/+3
| | | | Variable names are always generated by CMake and should never be NULL.
* Drop compatibility with CMake < 2.4Brad King2013-10-231-18/+0
| | | | | | | | | | | | Drop all behavior activated by setting CMAKE_BACKWARDS_COMPATIBILITY to a value lower than 2.4, and generate an error when projects or the user attempt to do so. In the error suggest using a CMake 2.8.x release. Teach cmake_minimum_required to warn about projects that do not require at least CMake 2.4. They are not supported by CMake >= 3.0. Replace the documentation of CMAKE_BACKWARDS_COMPATIBILITY with a reference to policy CMP0001.
* Drop builtin command documentationBrad King2013-10-161-100/+0
| | | | | Drop all GetTerseDocumentation and GetFullDocumentation methods from commands. The command documentation is now in Help/command/*.rst files.
* Teach find_(path|file) about Linux multiarch (#13742)Brad King2012-11-261-2/+2
| | | | | | | | | | | Implement support for multiarch include directories as specified here: https://wiki.ubuntu.com/MultiarchCross Generalize the multiarch feature added in commit b41ad3b3 (Teach find_(library|package) about Linux multiarch, 2011-06-08) to the find_path and find_file commands. Teach them to search <prefix>/include/<arch> whenever they would search <prefix>/include.
* find_library: Optionally consider all names in each directoryBrad King2012-09-251-0/+15
| | | | | | | When more than one value is given to the NAMES option this command by default will consider one name at a time and search every directory for it. Add a NAMES_PER_DIR option to tell this command to consider one directory at a time and search for all names in it.
* Remove trailing whitespace from most CMake and C/C++ codeKitware Robot2012-08-131-11/+11
| | | | | | | | | | | | | | | | | Our Git commit hooks disallow modification or addition of lines with trailing whitespace. Wipe out all remnants of trailing whitespace everywhere except third-party code. Run the following shell code: git ls-files -z -- \ bootstrap doxygen.config '*.readme' \ '*.c' '*.cmake' '*.cpp' '*.cxx' \ '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \ '*.mm' '*.pike' '*.py' '*.txt' '*.vim' | egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' | egrep -z -v '^(Modules/CPack\..*\.in)' | xargs -0 sed -i 's/ \+$//'
* Add 'const' qualifier to some cmCommand membersYury G. Kudryashov2012-02-291-2/+2
| | | | | Use const_cast for the special case in cmFindBase where GetFullDocumentation calls GenerateDocumentation.
* Refactor find_* command final path list computationBrad King2011-09-231-5/+1
| | | | | | | All find_* commands re-root the list of paths and then add trailing slashes. Factor this pair of calls out into a dedicated method. The new method would be the only caller to AddTrailingSlashes, so subsume that method into it.
* Teach find_(library|package) about Linux multiarch (#12037)Brad King2011-06-081-0/+12
| | | | | | | | | | | | | Implement support for multiarch as specified here: http://wiki.debian.org/Multiarch https://wiki.ubuntu.com/MultiarchSpec Detect the <arch> part of <prefix>/lib/<arch> from the implicit library search path from each compiler to set CMAKE_<lang>_LIBRARY_ARCHITECTURE. Define CMAKE_LIBRARY_ARCHITECTURE using one of these values (they should all be the same). Teach the find_library and find_package commands to search <prefix>/lib/<arch> whenever they would search <prefix>/lib.
* Fix find_* argument parsing crash (#11513)Brad King2010-11-301-0/+5
| | | | | | | | | | Previously the command find_path(VAR DOC "") would crash because the argument pre-processing removed the DOC "" arguments but the rest of the parsing assumes at least 2 arguments. Reject the call with an error instead.
* Speedup find_* commands (#11412)Brad King2010-11-121-4/+21
| | | | | | | Delay computation of the command documentation until it is needed. It is wasteful to do it in the constructor on every call. Inspired-By: Christian Ehrlicher <Ch.Ehrlicher@gmx.de>
* Teach find_* commands to ignore some pathsTodd Gamblin2010-08-131-0/+5
| | | | | | | | Add platform configuration variable CMAKE_SYSTEM_IGNORE_PATH and user configuration variable CMAKE_IGNORE_PATH. These specify a set of directories that will be ignored by all the find commands. Update FindPackageTest so that several cases will fail without a functioning CMAKE_IGNORE_PATH.
* Convert CMake to OSI-approved BSD LicenseBrad King2009-09-281-14/+9
| | | | | | | This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
* ENH: Clarify PATH_SUFFIXES documentationBrad King2008-10-141-2/+4
| | | | | | This clarifies documentation of the find_* commands' PATH_SUFFIXES option. The option adds paths with the suffixes but does not remove the paths without the suffixes.
* BUG: Fix find_* search order with path suffixesBrad King2008-10-131-7/+1
| | | | | | | In cmFindBase we were searching all path suffixes appended to all paths before considering the paths without any suffixes. Instead we should consider each path with and without suffixes before moving to the next path. See issue #7783.
* BUG: In find_* commands support NO_* options in short-handBrad King2008-06-101-4/+8
| | | | | | | - The short-hand forms do not document the NO_* options. - CMake 2.4 and 2.6.0 accepted them accidentally, but also treated the options as paths. - Now the options are accepted but do not become paths.
* ENH: Make find_* command search order more intuitive.Brad King2008-06-091-10/+7
| | | | | | | | - The CMAKE_PREFIX_PATH and similar variables have both environment and CMake cache versions. - Previously the environment value was checked before the cache value. - Now the cache value is favored because it is more specific.
* ENH: Add HINTS option to find_* commands.Brad King2008-06-091-42/+53
| | | | | | - Hints are searched after user locations but before system locations - The HINTS option should have paths provided by system introspection - The PATHS option should have paths that are hard-coded guesses
* ENH: Refactor find_* command framework/appbundle search order impl.Brad King2008-06-091-72/+35
| | | | | | | | | | | - CMAKE_FIND_FRAMEWORK and CMAKE_FIND_APPBUNDLE are supposed to specify whether to find frameworks/appbundles FIRST, LAST, ONLY, or NEVER. - Previously this affected only the placement of CMAKE_FRAMEWORK_PATH and CMAKE_APPBUNDLE_PATH with respect to the other path specifiers. - Now it behaves as documented. The entire search path is inspected for each kind of program, library, or header before trying the next kind. - Additionally the ONLY mode is now honored for headers so that users do not end up with a library in framework and a header from elsewhere.
* ENH: In find_* implementation centralize addition of trailing slashesBrad King2008-06-091-0/+4
| | | | | | - Create cmFindCommon::AddTrailingSlashes - Use it in cmFindBase and cmFindPackageCommand - Remove duplication from other find commands
* BUG: Fix find_* command calls with no PATHS but new-style options.Brad King2008-06-081-0/+1
| | | | | | - In cmFindBase when CheckCommonArgument returns true, set newStyle - Otherwise if there are no PATHS then the ancient-style compatibility mode is enabled and the common argument is treated as a path.
* BUG: Fix cmFindBase::AddMacPath to actually use its arguments after previous ↵Brad King2008-06-061-3/+3
| | | | refactoring commit.
* ENH: Refactor cmFindCommon, cmFindBase, and cmFindPackageCommandBrad King2008-06-051-147/+123
| | | | | | | | | | | - Add each part of the search order in a separate method. - Collect added paths in an ivar in cmFindCommon. - Move user path storage up to cmFindCommon and share between cmFindBase and cmFindPackageCommand. - Expand user path registry values up in cmFindCommon - Enables 32-/64-bit registry view for find_package - Disables registry expansion for paths not specified with the PATHS argument, which is not expected.
* BUG: Fix 64-bit build of CMake so it can find 32-bit VS install.Brad King2008-06-051-16/+6
| | | | | | | - cmFindBase should search both 32-bit and 64-bit registry views for FIND_PROGRAM even if CMAKE_SIZEOF_VOID_P is not set. - Needed because the variable is not available when CMAKE_MAKE_PROGRAM is to be found.
* BUG: Fix previous registry lookup change for executables.Brad King2008-05-271-4/+20
| | | | | | | - The target platform does not matter for finding executables so find_program should expand to both 32-bit and 64-bit registry values. - See issue #7095.
* BUG: Fix registry lookups for FIND commands to use view of target platform.Brad King2008-05-271-1/+16
| | | | - See issue #7095.
* ENH: better fix for not adding /Bill Hoffman2008-05-231-6/+3
|
* BUG: 7011 findqt hangs because of glob with find_path and framework header ↵Bill Hoffman2008-05-231-2/+9
| | | | serach
* BUG: fix network path by mistake in searchBill Hoffman2008-04-071-1/+9
|
* ENH: Improve handling of old-style compatibility.Brad King2008-03-071-13/+1
| | | | | | | | | | | | | | | | | | | - Remove CMP_0001 (no slash in target name) and restore old CMAKE_BACKWARDS_COMPATIBILITY check for it - Replace all checks of CMAKE_BACKWARDS_COMPATIBILITY with cmLocalGenerator::NeedBackwardsCompatibility calls - Create new CMP_0001 to determine whether or not CMAKE_BACKWARDS_COMPATIBILITY is used. (old = use, new = ignore) - Show CMAKE_BACKWARDS_COMPATIBILITY in cache only when CMP_0001 is set to OLD or WARN - Update documentation of cmake_policy and cmake_minimum_required to indicate their relationship and the 2.4 version boundary - When no cmake policy version is set in top level makefile implicitly call cmake_policy(VERSION 2.4) which restores CMAKE_BACKWARDS_COMPATIBILITY and other 2.4 compatibility - Fix tests MakeClean and Preprocess to call cmake_policy(VERSION 2.6) because they depend on new policies