# CMakePrintHelpers

This module provides convenience commands, primarily intended for debugging, to print the values of properties and variables.

Load this module in CMake with:

    include(CMakePrintHelpers)

## Commands

This module provides the following commands:

cmake_print_properties

  Prints the values of properties for the specified targets, source files, directories, tests, or cache entries:

      cmake_print_properties(
        <TARGETS       [<targets>...] |
         SOURCES       [<sources>...] |
         DIRECTORIES   [<dirs>...]    |
         TESTS         [<tests>...]   |
         CACHE_ENTRIES [<entries>...] >
        PROPERTIES [<properties>...]
      )

  Exactly one of the scope keywords must be specified. The scope keyword and its arguments must appear before the `PROPERTIES` keyword in the argument list.

cmake_print_variables

  Prints each variable name followed by its value:

      cmake_print_variables([<vars>...])

## Examples

Printing the `LOCATION` and `INTERFACE_INCLUDE_DIRECTORIES` properties for both targets `foo` and `bar`:

    include(CMakePrintHelpers)

    cmake_print_properties(
      TARGETS foo bar
      PROPERTIES LOCATION INTERFACE_INCLUDE_DIRECTORIES
    )

Gives:

    --
     Properties for TARGET foo:
       foo.LOCATION = "/usr/lib/libfoo.so"
       foo.INTERFACE_INCLUDE_DIRECTORIES = "/usr/include;/usr/include/foo"
     Properties for TARGET bar:
       bar.LOCATION = "/usr/lib/libbar.so"
       bar.INTERFACE_INCLUDE_DIRECTORIES = "/usr/include;/usr/include/bar"

Printing given variables:

    include(CMakePrintHelpers)

    cmake_print_variables(CMAKE_C_COMPILER CMAKE_MAJOR_VERSION NOT_EXISTS)

Gives:

    -- CMAKE_C_COMPILER="/usr/bin/cc" ; CMAKE_MAJOR_VERSION="3" ; NOT_EXISTS=""