# FindPython2

Find Python 2 interpreter, compiler and development environment (include directories and libraries).

Three components are supported:

- `Interpreter`: search for Python 2 interpreter
- `Compiler`: search for Python 2 compiler. Only offered by IronPython.
- `Development`: search for development artifacts (include directories and libraries)

If no `COMPONENTS` is specified, `Interpreter` is assumed.

To ensure consistent versions between components `Interpreter`, `Compiler` and `Development`, specify all components at the same time:

    find_package (Python2 COMPONENTS Interpreter Development)

This module looks only for version 2 of Python. This module can be used concurrently with `FindPython3` module to use both Python versions.

The `FindPython` module can be used if Python version does not matter for you.

## Imported Targets

This module defines the following Imported Targets:

`Python2::Interpreter`
  Python 2 interpreter. Target defined if component `Interpreter` is found.
`Python2::Compiler`
  Python 2 compiler. Target defined if component `Compiler` is found.
`Python2::Python`
  Python 2 library. Target defined if component `Development` is found.

## Result Variables

This module will set the following variables in your project (see Standard Variable Names):

`Python2_FOUND`
  System has the Python 2 requested components.
`Python2_Interpreter_FOUND`
  System has the Python 2 interpreter.
`Python2_EXECUTABLE`
  Path to the Python 2 interpreter.
`Python2_INTERPRETER_ID`
  A short string unique to the interpreter. Possible values include:
    - Python
    - ActivePython
    - Anaconda
    - Canopy
    - IronPython
`Python2_STDLIB`

  Standard platform independent installation directory.

  Information returned by `distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=True)`.

`Python2_STDARCH`

  Standard platform dependent installation directory.

  Information returned by `distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=True)`.

`Python2_SITELIB`

  Third-party platform independent installation directory.

  Information returned by `distutils.sysconfig.get_python_lib(plat_specific=False,standard_lib=False)`.

`Python2_SITEARCH`

  Third-party platform dependent installation directory.

  Information returned by `distutils.sysconfig.get_python_lib(plat_specific=True,standard_lib=False)`.

`Python2_Compiler_FOUND`
  System has the Python 2 compiler.
`Python2_COMPILER`
  Path to the Python 2 compiler. Only offered by IronPython.
`Python2_COMPILER_ID`
  A short string unique to the compiler. Possible values include:
    - IronPython
`Python2_Development_FOUND`
  System has the Python 2 development artifacts.
`Python2_INCLUDE_DIRS`
  The Python 2 include directories.
`Python2_LIBRARIES`
  The Python 2 libraries.
`Python2_LIBRARY_DIRS`
  The Python 2 library directories.
`Python2_RUNTIME_LIBRARY_DIRS`
  The Python 2 runtime library directories.
`Python2_VERSION`
  Python 2 version.
`Python2_VERSION_MAJOR`
  Python 2 major version.
`Python2_VERSION_MINOR`
  Python 2 minor version.
`Python2_VERSION_PATCH`
  Python 2 patch version.

## Hints

`Python2_ROOT_DIR`
  Define the root directory of a Python 2 installation.
`Python2_USE_STATIC_LIBS`
  - If not defined, search for shared libraries and static libraries in that order.
  - If set to TRUE, search only for static libraries.
  - If set to FALSE, search only for shared libraries.
`Python2_FIND_REGISTRY`

  On Windows the `Python2_FIND_REGISTRY` variable determine the order of preference between registry and environment variables. the `Python2_FIND_REGISTRY` variable can be set to empty or one of the following:

  - `FIRST`: Try to use registry before environment variables. This is the default.
  - `LAST`: Try to use registry after environment variables.
  - `NEVER`: Never try to use registry.
`CMAKE_FIND_FRAMEWORK`

  On macOS the `CMAKE_FIND_FRAMEWORK` variable determine the order of preference between Apple-style and unix-style package components.

  Note

  Value `ONLY` is not supported so `FIRST` will be used instead.

Note

If a Python virtual environment is configured, set variable `Python_FIND_REGISTRY` (Windows) or `CMAKE_FIND_FRAMEWORK` (macOS) with value `LAST` or `NEVER` to select it preferably.

## Commands

This module defines the command `Python2_add_library` which have the same semantic as `add_library()` but take care of Python module naming rules (only applied if library is of type `MODULE`) and add dependency to target `Python2::Python`:

    Python2_add_library (my_module MODULE src1.cpp)

If library type is not specified, `MODULE` is assumed.