summaryrefslogtreecommitdiffstats
path: root/Source/cmFindPackageCommand.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Fix find_package() when <pkg>_DIR is wrongBrad King2009-10-071-10/+17
| | | | | | | | | | | | When <pkg>_DIR is set to an incorrect version we search again and store the result in the variable, even if it is <pkg>_DIR-NOTFOUND. There was a bug in the case when the new search does not find anything and the old value came from a cache entry with UNINITALIZED type. The command used to try to load a package configuration file from the last place searched, and would leave the old wrong value in the entry. This commit fixes the behavior to avoid trying to load a missing file and to set the value to <pkg>_DIR-NOTFOUND as expected.
* Create cmMakefile::PlatformIs64Bit helper methodBrad King2009-09-301-8/+4
| | | | This method centralizes tests for whether CMAKE_SIZEOF_VOID_P is 8.
* 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.
* Use BeAPI for per-user package registry on HaikuBrad King2009-09-281-0/+12
| | | | | | | | Applications on Haiku are discouraged from storing their data in $HOME. This teaches export(PACKAGE) and find_package() to use the BeAPI on Haiku to store the package registry instead of using ~/.cmake/packages. See issue #9603.
* Add parentheses around '&&' between '||' for gccBrad King2009-09-111-4/+4
| | | | | | | The GNU compiler warns about possible operator precedence mistakes and asks for explicit parentheses (-Wparentheses). We add the parentheses to silence the warning. This also fixes one real logic error in the find_package() implementation by correcting expression evaluation order.
* Teach find_package to search a "package registry"Brad King2009-09-011-3/+186
| | | | | | | | | | | | | | A common user workflow is to build a series of dependent projects in order. Each project locates its dependencies with find_package. We introduce a "user package registry" to help find_package locate packages built in non-standard search locations. The registry explicitly stores locations of build trees providing instances of a given package. There is no defined order among the locations specified. These locations should provide package configuration files (<package>-config.cmake) and package version files (<package>-config-version.cmake) so that find_package will recognize the packages and test version numbers.
* Fix find_package for cmake-gui registry entryBrad King2009-08-051-1/+1
| | | | | | | | | | | | The find_package commands looks at the "WhereBuild" registry entries created by CMakeSetup and cmake-gui hoping that the project was recently built. CMakeSetup created WhereBuild1..WhereBuild10 but cmake-gui creates WhereBuild0-WhereBuild9. This fixes find_package to look at WhereBuild0 so that the most recently configured project can be found. It is important in the case that the package to be found was the last one configured in cmake-gui but the current project that is finding it is configured from the command line.
* STYLE: fix typos in the docsAlexander Neundorf2009-04-191-1/+1
| | | | Alex
* ENH: Isolate policy changes in included scriptsBrad King2009-01-221-7/+23
| | | | | | | | Isolation of policy changes inside scripts is important for protecting the including context. This teaches include() and find_package() to imply a cmake_policy(PUSH) and cmake_policy(POP) around the scripts they load, with a NO_POLICY_SCOPE option to disable the behavior. This also creates CMake Policy CMP0011 to provide compatibility. See issue #8192.
* ENH: Refactor find_package version file scopingBrad King2009-01-221-6/+4
| | | | | This converts the variable and policy scope protection find_package() uses when loading version files to use automatic variables.
* BUG: Fix find_package docs for refind featureBrad King2009-01-151-2/+1
| | | | | | Recently we taught find_package to re-find a package configuration file if it is given a wrong answer. This fixes the documentation to reflect the change.
* ENH: when trying to find a FooConfig.cmake file, if in the directory pointedAlexander Neundorf2009-01-081-57/+36
| | | | | | | | | | to by the Foo_DIR variable there is no FooConfig.cmake file, then instead of abort and complain that the user should set or clear the Foo_DIR variables, just search for the file and discard the old Foo_DIR contents The tests succeed, ok by Brad. Alex
* ENH: Teach find_package about more install dirsBrad King2008-12-171-0/+27
| | | | | | | | | | | | We now search in <prefix>/<name>*/ <prefix>/<name>*/(cmake|CMake) when looking for package configuration files. This is useful on Windows since the Program Files folder is in CMAKE_SYSTEM_PREFIX_PATH. These paths are the Windows equivalent to the Apple convention application and framework paths we already search. See issue #8264.
* BUG: find_package must push/pop policiesBrad King2008-12-161-0/+2
| | | | | | | When the find_package command loads a <name>-version.cmake file to test the package version it must prevent the version file from affecting policy settings. Therefore the policy settings must be pushed and popped.
* ENH: Add useful search locations to find_packageBrad King2008-12-091-0/+15
| | | | | | | | | | This teaches find_package to search <prefix>/(share|lib)/cmake/<name>*/ for package configuration files. Packages that do not already have files in a <prefix>/lib/<name>* directory can use this location to avoid cluttering the lib directory.
* STYLE: Remove old TODO comment in find_packageBrad King2008-12-091-8/+0
| | | | | Versioning has been introduced to find_package, so the comment about it is out of date.
* ENH: Preserve <pkg>_FIND_XXX vars in find_packageBrad King2008-12-091-12/+46
| | | | | | | | | When the find_package command loads a module it sets several <pkg>_FIND_XXX variables to communicate information about the command invocation to the module. This restores the original state of the variables when the command returns. This behavior is useful when a find-module recursively calls find_package with NO_MODULE so that the inner call does not change the values in the find-module.
* ENH: Remove implicit NO_MODULE when recursingBrad King2008-10-081-22/+14
| | | | | | | | | Recently we taught find_package that the NO_MODULE option is implied when it is recursively invoked in a find-module. This behavior may be confusing because two identical calls may enter different modes depending on context. It also disallows the possibility that one find-module defers to another find-module by changing CMAKE_MODULE_PATH and recursively invoking find_package. This change reverts the feature.
* ENH: Add UNSUITABLE result to package version testBrad King2008-10-031-7/+14
| | | | | | | Package version test files may now declare that they are unsuitable for use with the project testing them. This is important when the version being tested does not provide a compatible ABI with the project target environment.
* ENH: Help recursive find_package calls in modulesBrad King2008-10-031-3/+41
| | | | | | | These changes teach find_package to behave nicely when invoked recursively inside a find-module for the same package. The module will never be recursively loaded again. Version arguments are automatically forwarded.
* ENH: Warn and ignore EXACT without versionBrad King2008-10-031-0/+8
| | | | | If the find_package command is invoked with the EXACT option but without a version, warn and ignore the option.
* ENH: Improve find_package version numberingBrad King2008-09-101-88/+63
| | | | | | | | Make the number of version components specified explicitly available. Set variables for unspecified version components to "0" instead of leaving them unset. This simplifies version number handling for find- and config-modules. Also support a fourth "tweak" version component since some packages use them.
* ENH: Improve message for bad find_package callBrad King2008-09-081-10/+3
| | | | | | Use the new-style error reporting mechanism to provide more context information for a find_package call with a bad package name. When the package is not required, issue a warning instead of an error.
* COMP: fix compile warning/error (non-void function returning void)Alexander Neundorf2008-09-071-1/+1
| | | | Alex
* ENH: provide the xxx_FIND_QUIETLY, xxx_FIND_REQUIRED and xxx_FIND_VERSION_ ↵Alexander Neundorf2008-09-061-57/+65
| | | | | | | | | variables also in Config mode, so the xxxConfig.cmake files can e.g. test the QUIETLY parameter and print something or not Alex
* ENH: Teach find_package about lib64 pathsBrad King2008-08-121-9/+27
| | | | | When find_package is about to look in <prefix>/lib, search first in <prefix>/lib64 in cases that find_library would use lib64 paths.
* ENH: Make find_* command search order more intuitive.Brad King2008-06-091-8/+8
| | | | | | | | - 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-13/+34
| | | | | | - 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: In find_* implementation centralize addition of trailing slashesBrad King2008-06-091-9/+1
| | | | | | - Create cmFindCommon::AddTrailingSlashes - Use it in cmFindBase and cmFindPackageCommand - Remove duplication from other find commands
* ENH: Refactor cmFindCommon, cmFindBase, and cmFindPackageCommandBrad King2008-06-051-30/+58
| | | | | | | | | | | - 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.
* ENH: Added not to find_package documentation about unspecified choice among ↵Brad King2008-01-291-1/+5
| | | | multiple versions.
* ENH: Added version support to Config mode of find_package command.Brad King2008-01-291-12/+261
| | | | | | - Added EXACT option to request an exact version. - Enforce version using check provided by package. - Updated FindPackageTest to test versioning in config mode.
* ENH: add return and break support to cmake, also change basic command ↵Ken Martin2008-01-231-1/+2
| | | | invocation signature to be able to return extra informaiton via the cmExecutionStatus class
* ENH: Updated find_package documentation to describe common usage first.Brad King2008-01-221-23/+35
|
* COMP: snprintf is not portable.Brad King2008-01-211-3/+3
|
* ENH: Implement version support in the find_package command module mode. ↵Brad King2008-01-211-4/+59
| | | | Version numbers provided to the command are converted to variable settings to tell the FindXXX.cmake module what version is requested. This addresses issue #1645.
* STYLE: Fix line-too-long.Brad King2008-01-181-1/+2
|
* ENH: Clarify documentation of find_package command.Brad King2008-01-181-8/+20
|
* COMP: Fix warning about missing virtual destructor.Brad King2008-01-171-0/+3
|
* ENH: Major improvements to the FIND_PACKAGE command. See bug #3659.Brad King2008-01-171-180/+1174
| | | | | | | | | - Use CMAKE_PREFIX_PATH and CMAKE_SYSTEM_PREFIX_PATH among other means to locate package configuration files. - Create cmFindCommon as base for cmFindBase and cmFindPackageCommand - Move common functionality up to cmFindCommon - Improve documentation of FIND_* commands. - Fix FIND_* commands to not add framework/app paths in wrong place.
* STYLE: Removed trailing whitespace.Brad King2007-12-151-10/+10
|
* STYLE: improved error message for the case that neither FindFoo.cmake norAlexander Neundorf2007-09-211-3/+6
| | | | | | FooConfig.cmake were found Alex
* ENH: also process "~" and paths relative to CMAKE_CURRENT_SOURCE_DIR in Foo_DIRAlexander Neundorf2007-08-201-0/+7
| | | | Alex
* ENH: remove the watch for the upper case variable name, it breaks theAlexander Neundorf2007-08-081-8/+0
| | | | | | | feature summary, which needs to check for both the upper case and original case _FOUND variables Alex
* ENH: add global properties for collecting enabled/disabled features duringAlexander Neundorf2007-08-071-0/+68
| | | | | | | | | | | | the cmake run and add macros print_enabled/disabled_features() and set_feature_info(), so projects can get a nice overview at the end of the cmake run what has been found and what hasn't FIND_PACKAGE() automatically adds the packages to these global properties, except when used with QUIET Maybe this can also be useful for packagers to find out dependencies of projects. Alex
* ENH: Add variable watch commandAndy Cedilnik2007-04-111-1/+3
|
* ENH: Added NO_MODULE and COMPONENTS options to improve flexibility of the ↵Brad King2006-10-261-64/+64
| | | | command. Re-implemented argument parsing to be simpler and more robust.
* ENH: Added creation of XXX_FIND_COMPONENTS list of all components requested ↵Brad King2006-07-111-3/+31
| | | | with REQUIRED option. This addresses the feature request in bug#3494.
* STYLE: fix line lengthKen Martin2006-05-101-6/+8
|
* STYLE: some m_ to this-> cleanupKen Martin2006-03-151-21/+21
|