# FindSDL_ttf

Finds the SDL_ttf library that provides support for rendering text with TrueType fonts in SDL (Simple DirectMedia Layer) applications:

    find_package(SDL_ttf [<version>] [...])

Note

This module is specifically intended for SDL_ttf version 1. Starting with version 2.0.15, SDL_ttf provides a CMake package configuration file when built with CMake and should be found using `find_package(SDL2_ttf)`. Similarly, SDL_ttf version 3 can be found using `find_package(SDL3_ttf)`. These newer versions provide Imported Targets that encapsulate usage requirements. Refer to the official SDL documentation for more information.

## Result Variables

This module defines the following variables:

`SDL_ttf_FOUND`

  Added in version 3.3.

  Boolean indicating whether the (requested version of) SDL_ttf library was found.

`SDL_ttf_VERSION`

  Added in version 4.2.

  The human-readable string containing the version of SDL_ttf found.

`SDL_TTF_INCLUDE_DIRS`

  Include directories containing headers needed to use SDL_ttf library.

`SDL_TTF_LIBRARIES`

  Libraries needed to link against to use SDL_ttf.

## Hints

This module accepts the following variables:

`SDLDIR`

  Environment variable that can be set to help locate an SDL library installed in a custom location. It should point to the installation destination that was used when configuring, building, and installing SDL library: `./configure --prefix=$SDLDIR`.

## Deprecated Variables

The following variables are provided for backward compatibility:

`SDL_TTF_VERSION_STRING`

  Deprecated since version 4.2: Use `SDL_ttf_VERSION`, which has the same value.

  The human-readable string containing the version of SDL_ttf found.

`SDL_TTF_FOUND`

  Deprecated since version 4.2: Use `SDL_ttf_FOUND`, which has the same value.

`SDLTTF_FOUND`

  Deprecated since version 2.8.10: Replaced with `SDL_ttf_FOUND`, which has the same value.

`SDLTTF_INCLUDE_DIR`

  Deprecated since version 2.8.10: Replaced with `SDL_TTF_INCLUDE_DIRS`, which has the same value.

`SDLTTF_LIBRARY`

  Deprecated since version 2.8.10: Replaced with `SDL_TTF_LIBRARIES`, which has the same value.

## Examples

Finding SDL_ttf library and creating an imported interface target for linking it to a project target:

    find_package(SDL_ttf)

    if(SDL_ttf_FOUND AND NOT TARGET SDL::SDL_ttf)
      add_library(SDL::SDL_ttf INTERFACE IMPORTED)
      set_target_properties(
        SDL::SDL_ttf
        PROPERTIES
          INTERFACE_INCLUDE_DIRECTORIES "${SDL_TTF_INCLUDE_DIRS}"
          INTERFACE_LINK_LIBRARIES "${SDL_TTF_LIBRARIES}"
      )
    endif()

    target_link_libraries(project_target PRIVATE SDL::SDL_ttf)

When working with SDL_ttf version 2, the upstream package provides the `SDL2_ttf::SDL2_ttf` imported target directly. It can be used in a project without using this module:

    find_package(SDL2_ttf)
    target_link_libraries(project_target PRIVATE SDL2_ttf::SDL2_ttf)

Similarly, for SDL_ttf version 3:

    find_package(SDL3_ttf)
    target_link_libraries(project_target PRIVATE SDL3_ttf::SDL3_ttf)

## See Also

- The `FindSDL` module to find the main SDL library.