Use pkg-config to find libraries

This commit is contained in:
Timotej Lazar 2022-12-27 21:00:06 +01:00
parent a753ae7172
commit 3f92377c67
6 changed files with 33 additions and 526 deletions

View file

@ -43,12 +43,17 @@ ENDIF(AVP_WEB)
# required dependencies
IF(NOT AVP_WEB)
INCLUDE(FindOpenGLES2.cmake)
INCLUDE(FindSDL2.cmake)
INCLUDE(FindLibAV.cmake)
INCLUDE(FindSDL)
INCLUDE(FindOpenGL)
INCLUDE(FindOpenAL)
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBAVCODEC REQUIRED libavcodec)
pkg_check_modules(LIBAVFORMAT REQUIRED libavformat)
pkg_check_modules(LIBAVUTIL REQUIRED libavutil)
pkg_check_modules(LIBSWSCALE REQUIRED libswscale)
pkg_check_modules(OPENAL REQUIRED openal)
pkg_check_modules(EGL egl)
pkg_check_modules(OPENGL gl)
pkg_check_modules(OPENGLES2 glesv2)
pkg_check_modules(SDL sdl>=1.2)
pkg_check_modules(SDL2 sdl2)
# Use SDL 1.2 if it is installed, else use SDL 2.0.
IF(NOT SDL_TYPE)
@ -60,18 +65,6 @@ IF(NOT AVP_WEB)
MESSAGE(FATAL_ERROR "Invalid SDL_TYPE setting ${SDL_TYPE}; must be one of AUTO SDL SDL2")
ENDIF(NOT SDL_TYPE STREQUAL "AUTO" AND NOT SDL_TYPE STREQUAL "SDL" AND NOT SDL_TYPE STREQUAL "SDL2")
IF(SDL_FOUND)
IF(SDL_VERSION_STRING VERSION_LESS "1.2.0")
MESSAGE(WARNING "SDL 1.2 was claimed to be found with version ${SDL_VERSION_STRING}, ignoring...")
UNSET(SDL_FOUND)
ENDIF(SDL_VERSION_STRING VERSION_LESS "1.2.0")
IF(SDL_VERSION_STRING VERSION_GREATER "1.2.99")
MESSAGE(WARNING "SDL 1.2 was claimed to be found with version ${SDL_VERSION_STRING}, ignoring...")
UNSET(SDL_FOUND)
ENDIF(SDL_VERSION_STRING VERSION_GREATER "1.2.99")
ENDIF(SDL_FOUND)
IF(SDL_TYPE STREQUAL "AUTO")
IF(SDL_FOUND)
MESSAGE(STATUS "SDL 1.2 found; using that.")
@ -145,11 +138,6 @@ IF(NOT AVP_WEB)
MESSAGE(FATAL_ERROR "OpenGL ES 2.0 support requires SDL2.")
ENDIF(NOT SDL_TYPE STREQUAL "SDL2")
ENDIF(OPENGL_TYPE STREQUAL "OPENGLES2")
# OpenAL
IF(NOT OPENAL_FOUND)
MESSAGE(FATAL_ERROR "OpenAL is required but CMake couldn't find it.")
ENDIF(NOT OPENAL_FOUND)
ENDIF(NOT AVP_WEB)
# required source files
@ -429,46 +417,51 @@ IF(NOT AVP_WEB)
ENDIF(WIN32)
IF(SDL_TYPE STREQUAL "SDL")
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${SDL_INCLUDE_DIRS})
ENDIF(SDL_TYPE STREQUAL "SDL")
IF(SDL_TYPE STREQUAL "SDL2")
INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIRS})
ENDIF(SDL_TYPE STREQUAL "SDL2")
IF(OPENGL_TYPE STREQUAL "OPENGL")
INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIRS})
ENDIF(OPENGL_TYPE STREQUAL "OPENGL")
IF(OPENGL_TYPE STREQUAL "OPENGLES2")
ADD_DEFINITIONS(-DUSE_OPENGL_ES=1)
INCLUDE_DIRECTORIES(${OPENGLES2_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${EGL_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${OPENGLES2_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${EGL_INCLUDE_DIRS})
ENDIF(OPENGL_TYPE STREQUAL "OPENGLES2")
INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${LIBAVCODEC_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${LIBAVFORMAT_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${LIBAVUTIL_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${LIBSWSCALE_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${OPENAL_INCLUDE_DIRS})
IF(SDL_TYPE STREQUAL "SDL")
TARGET_LINK_LIBRARIES(avp ${SDL_LIBRARY})
TARGET_LINK_LIBRARIES(avp ${SDL_LIBRARIES})
ENDIF(SDL_TYPE STREQUAL "SDL")
IF(SDL_TYPE STREQUAL "SDL2")
TARGET_LINK_LIBRARIES(avp ${SDL2_LIBRARY})
TARGET_LINK_LIBRARIES(avp ${SDL2_LIBRARIES})
ENDIF(SDL_TYPE STREQUAL "SDL2")
IF(OPENGL_TYPE STREQUAL "OPENGL")
TARGET_LINK_LIBRARIES(avp ${OPENGL_gl_LIBRARY})
TARGET_LINK_LIBRARIES(avp ${OPENGL_LIBRARIES})
ENDIF(OPENGL_TYPE STREQUAL "OPENGL")
IF(OPENGL_TYPE STREQUAL "OPENGLES2")
TARGET_LINK_LIBRARIES(avp ${OPENGLES2_gl_LIBRARY})
TARGET_LINK_LIBRARIES(avp ${OPENGLES2_LIBRARIES})
TARGET_LINK_LIBRARIES(avp ${EGL_LIBRARIES})
ENDIF(OPENGL_TYPE STREQUAL "OPENGLES2")
TARGET_LINK_LIBRARIES(avp ${OPENAL_LIBRARY})
TARGET_LINK_LIBRARIES(avp ${LIBAV_LIBRARIES})
TARGET_LINK_LIBRARIES(avp ${SWSCALE_LIBRARIES})
TARGET_LINK_LIBRARIES(avp ${AVCODEC_LIBRARIES})
TARGET_LINK_LIBRARIES(avp ${LIBAVCODEC_LIBRARIES})
TARGET_LINK_LIBRARIES(avp ${LIBAVFORMAT_LIBRARIES})
TARGET_LINK_LIBRARIES(avp ${LIBAVUTIL_LIBRARIES})
TARGET_LINK_LIBRARIES(avp ${LIBSWSCALE_LIBRARIES})
TARGET_LINK_LIBRARIES(avp ${OPENAL_LIBRARIES})