I am on Ubuntu
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
I am using sdl2 (version 2.0.20+dfsg)
Using SDL_ttf (version libsdl2-ttf-dev 2.0.18+dfsg-2
Here is my CMakeList.txt file:
cmake_minimum_required (VERSION 3.22)
set (CMAKE_CXX_STANDARD 11)
cmake_policy(SET CMP0072 NEW)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} β${CMAKE_SOURCE_DIR}/cmakeβ)
project (attempt1)
SDL2
find_package(SDL2 REQUIRED)
find_package(SDL_ttf REQUIRED)
include_directories(${SDL2_INCLUDE_DIRS})
include_directories(${SDL_TTF_INCLUDE_DIRS})
message(STATUS β<<${SDL2_INCLUDE_DIRS}>>β)
message(STATUS β<<${OPENGL_INCLUDE_DIR}>>β)
Main Executable
add_definitions(β-Wall -O0 -gβ)
#add_definitions(β-Wall -Werror -O0 -gβ)
add_executable(attempt1 attempt1.cpp)
target_include_directories(attempt1 PUBLIC ${CMAKE_SOURCE_DIR}/src)
Libraries
target_link_libraries(attempt1 ${SDL2_LIBRARIES})
target_link_libraries(attempt1 m)
target_link_libraries(attempt1 ${SDL_TTF_LIBRARIES})/
message(STATUS β<<${SDL2_LIBRARIES}>>β)
Here is the content of the /usr/share/cmake-3.22/Modules/FindSDL_ttf.cmake file:
Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file Copyright.txt or Licensing for CMake for details.
#[=======================================================================[.rst:
FindSDL_ttf
Locate SDL_ttf library
This module defines:
::
SDL_TTF_LIBRARIES, the name of the library to link against
SDL_TTF_INCLUDE_DIRS, where to find the headers
SDL_TTF_FOUND, if false, do not try to link against
SDL_TTF_VERSION_STRING - human-readable string containing the version of SDL_ttf
For backward compatibility the following variables are also set:
::
SDLTTF_LIBRARY (same value as SDL_TTF_LIBRARIES)
SDLTTF_INCLUDE_DIR (same value as SDL_TTF_INCLUDE_DIRS)
SDLTTF_FOUND (same value as SDL_TTF_FOUND)
$SDLDIR is an environment variable that would correspond to the
./configure --prefix=$SDLDIR used in building SDL.
Created by Eric Wing. This was influenced by the FindSDL.cmake
module, but with modifications to recognize OS X frameworks and
additional Unix paths (FreeBSD, etc).
#]=======================================================================]
if(NOT SDL_TTF_INCLUDE_DIR AND SDLTTF_INCLUDE_DIR)
set(SDL_TTF_INCLUDE_DIR ${SDLTTF_INCLUDE_DIR} CACHE PATH βdirectory cache
entry initialized from old variable nameβ)
endif()
find_path(SDL_TTF_INCLUDE_DIR SDL_ttf.h
HINTS
ENV SDLTTFDIR
ENV SDLDIR
PATH_SUFFIXES SDL
# path suffixes to search inside ENV{SDLDIR}
include/SDL include/SDL12 include/SDL11 include
)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(VC_LIB_PATH_SUFFIX lib/x64)
else()
set(VC_LIB_PATH_SUFFIX lib/x86)
endif()
if(NOT SDL_TTF_LIBRARY AND SDLTTF_LIBRARY)
set(SDL_TTF_LIBRARY ${SDLTTF_LIBRARY} CACHE FILEPATH βfile cache entry
initialized from old variable nameβ)
endif()
find_library(SDL_TTF_LIBRARY
NAMES SDL_ttf
HINTS
ENV SDLTTFDIR
ENV SDLDIR
PATH_SUFFIXES lib ${VC_LIB_PATH_SUFFIX}
)
if(SDL_TTF_INCLUDE_DIR AND EXISTS β${SDL_TTF_INCLUDE_DIR}/SDL_ttf.hβ)
file(STRINGS β${SDL_TTF_INCLUDE_DIR}/SDL_ttf.hβ SDL_TTF_VERSION_MAJOR_LINE REGEX β^#define[ \t]+SDL_TTF_MAJOR_VERSION[ \t]+[0-9]+$β)
file(STRINGS β${SDL_TTF_INCLUDE_DIR}/SDL_ttf.hβ SDL_TTF_VERSION_MINOR_LINE REGEX β^#define[ \t]+SDL_TTF_MINOR_VERSION[ \t]+[0-9]+$β)
file(STRINGS β${SDL_TTF_INCLUDE_DIR}/SDL_ttf.hβ SDL_TTF_VERSION_PATCH_LINE REGEX β^#define[ \t]+SDL_TTF_PATCHLEVEL[ \t]+[0-9]+$β)
string(REGEX REPLACE β^#define[ \t]+SDL_TTF_MAJOR_VERSION[ \t]+([0-9]+)$β β\1β SDL_TTF_VERSION_MAJOR β${SDL_TTF_VERSION_MAJOR_LINE}β)
string(REGEX REPLACE β^#define[ \t]+SDL_TTF_MINOR_VERSION[ \t]+([0-9]+)$β β\1β SDL_TTF_VERSION_MINOR β${SDL_TTF_VERSION_MINOR_LINE}β)
string(REGEX REPLACE β^#define[ \t]+SDL_TTF_PATCHLEVEL[ \t]+([0-9]+)$β β\1β SDL_TTF_VERSION_PATCH β${SDL_TTF_VERSION_PATCH_LINE}β)
set(SDL_TTF_VERSION_STRING ${SDL_TTF_VERSION_MAJOR}.${SDL_TTF_VERSION_MINOR}.${SDL_TTF_VERSION_PATCH})
unset(SDL_TTF_VERSION_MAJOR_LINE)
unset(SDL_TTF_VERSION_MINOR_LINE)
unset(SDL_TTF_VERSION_PATCH_LINE)
unset(SDL_TTF_VERSION_MAJOR)
unset(SDL_TTF_VERSION_MINOR)
unset(SDL_TTF_VERSION_PATCH)
endif()
set(SDL_TTF_LIBRARIES ${SDL_TTF_LIBRARY})
set(SDL_TTF_INCLUDE_DIRS ${SDL_TTF_INCLUDE_DIR})
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SDL_ttf
REQUIRED_VARS SDL_TTF_LIBRARIES SDL_TTF_INCLUDE_DIRS
VERSION_VAR SDL_TTF_VERSION_STRING)
for backward compatibility
set(SDLTTF_LIBRARY ${SDL_TTF_LIBRARIES})
set(SDLTTF_INCLUDE_DIR ${SDL_TTF_INCLUDE_DIRS})
set(SDLTTF_FOUND ${SDL_TTF_FOUND})
mark_as_advanced(SDL_TTF_LIBRARY SDL_TTF_INCLUDE_DIR)
Here is the error that I am getting:
===========================================================
maallyn@maallyn-geekcom:~/scope-attempt/sdl2/attempt1/build$ cmake β¦
β The C compiler identification is GNU 11.4.0
β The CXX compiler identification is GNU 11.4.0
β Detecting C compiler ABI info
β Detecting C compiler ABI info - done
β Check for working C compiler: /usr/bin/cc - skipped
β Detecting C compile features
β Detecting C compile features - done
β Detecting CXX compiler ABI info
β Detecting CXX compiler ABI info - done
β Check for working CXX compiler: /usr/bin/c++ - skipped
β Detecting CXX compile features
β Detecting CXX compile features - done
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find SDL_ttf (missing: SDL_TTF_LIBRARIES SDL_TTF_INCLUDE_DIRS)
Call Stack (most recent call first):
/usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.22/Modules/FindSDL_ttf.cmake:91 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:11 (find_package)
β Configuring incomplete, errors occurred!
Is there some sort of incompatability between the sdl2 verson and the sdl_ttf version for Ubuntu?
Thank you
Mark Allyn