From 3f92377c674da6c23916530ff58eb79c67c46861 Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Tue, 27 Dec 2022 21:00:06 +0100 Subject: Use pkg-config to find libraries --- CMakeLists.txt | 67 ++++++++++++++++++++++++++-------------------------------- 1 file changed, 30 insertions(+), 37 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index d3d89e8..78ce3ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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}) -- cgit v1.3