- attempt to get static linking working for libvlc

This commit is contained in:
Mark Vejvoda 2012-05-16 05:46:04 +00:00
parent 32b4925f31
commit b7cf90a09e
4 changed files with 42 additions and 5 deletions

View File

@ -45,24 +45,35 @@ PATHS
find_path(LIBVLC_INCLUDE_DIR PATHS "${CMAKE_INCLUDE_PATH}/vlc" NAMES vlc.h
HINTS ${PC_LIBVLC_INCLUDEDIR} ${PC_LIBVLC_INCLUDE_DIRS})
# dream on libvlc doesn't support static linking
OPTION(WANT_STATIC_LIBS "builds as many static libs as possible" OFF)
set(LIBVLC_LIB_NAMES vlc libvlc)
set(LIBVLC_LIB_CORE_NAMES vlccore libvlccore)
IF(WANT_STATIC_LIBS)
set(LIBVLC_LIB_NAMES libvlc.a ${LIBVLC_LIB_NAMES})
set(LIBVLC_LIB_CORE_NAMES libvlccore.a ${LIBVLC_LIB_CORE_NAMES})
message(STATUS "Looking for LIBVLC static libs")
ENDIF()
#Put here path to custom location
#example: /home/user/vlc/lib etc..
find_library(LIBVLC_LIBRARY NAMES vlc libvlc
find_library(LIBVLC_LIBRARY NAMES ${LIBVLC_LIB_NAMES}
HINTS "$ENV{LIBVLC_LIBRARY_PATH}" ${PC_LIBVLC_LIBDIR} ${PC_LIBVLC_LIBRARY_DIRS}
PATHS
"$ENV{LIB_DIR}/lib"
#mingw
c:/msys/local/lib
)
find_library(LIBVLC_LIBRARY NAMES vlc libvlc)
find_library(LIBVLCCORE_LIBRARY NAMES vlccore libvlccore
find_library(LIBVLC_LIBRARY NAMES ${LIBVLC_LIB_NAMES})
find_library(LIBVLCCORE_LIBRARY NAMES ${LIBVLC_LIB_CORE_NAMES}
HINTS "$ENV{LIBVLC_LIBRARY_PATH}" ${PC_LIBVLC_LIBDIR} ${PC_LIBVLC_LIBRARY_DIRS}
PATHS
"$ENV{LIB_DIR}/lib"
#mingw
c:/msys/local/lib
)
find_library(LIBVLCCORE_LIBRARY NAMES vlccore libvlccore)
find_library(LIBVLCCORE_LIBRARY NAMES ${LIBVLC_LIB_CORE_NAMES})
set(LIBVLC_VERSION ${PC_LIBVLC_VERSION})
if (NOT LIBVLC_VERSION)

View File

@ -95,6 +95,27 @@ IF(BUILD_MEGAGLEST)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${GLEW_LIBRARY})
ENDIF()
#SET(LIBVLC_MIN_VERSION "2.0.1")
FIND_PACKAGE(LIBVLC)
IF(LIBVLC_FOUND AND NOT LIBVLC_VERSION STRLESS "${LIBVLC_MIN_VERSION}")
MESSAGE(STATUS "**NOTE: LIBVLC found so intro videos are supported.")
INCLUDE_DIRECTORIES(${LIBVLC_INCLUDE_DIR})
IF(UNIX)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LIBVLCCORE_LIBRARY} ${LIBVLC_LIBRARY})
ADD_DEFINITIONS(-DHAS_LIBVLC)
ENDIF()
IF(LIBVLC_VERSION_PRE_V2)
ADD_DEFINITIONS(-DLIBVLC_VERSION_PRE_2)
ENDIF()
IF(LIBVLC_VERSION_PRE_1_1_13)
ADD_DEFINITIONS(-DLIBVLC_VERSION_PRE_1_1_13)
ENDIF()
ELSE()
MESSAGE(STATUS "**WARNING: LIBVLC NOT found so intro videos are NOT supported.")
ENDIF()
#########################################################################################
# megaglest game

View File

@ -235,7 +235,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
MESSAGE(STATUS "**NOTE: LIBVLC found so intro videos are supported.")
INCLUDE_DIRECTORIES(${LIBVLC_INCLUDE_DIR})
IF(UNIX)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LIBVLC_LIBRARY})
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LIBVLCCORE_LIBRARY} ${LIBVLC_LIBRARY})
ADD_DEFINITIONS(-DHAS_LIBVLC)
ENDIF()
IF(LIBVLC_VERSION_PRE_V2)

View File

@ -160,6 +160,11 @@ void VideoPlayer::PlayVideo() {
std::vector<const char *> vlc_argv;
vlc_argv.push_back("--no-xlib" /* tell VLC to not use Xlib */);
vlc_argv.push_back("--no-video-title-show");
#if defined(LIBVLC_VERSION_PRE_2)
string fullPluginsParam = "--plugin-path=" + pluginsPath;
vlc_argv.push_back(fullPluginsParam.c_str());
#endif
#if defined(LIBVLC_VERSION_PRE_2) && defined(LIBVLC_VERSION_PRE_1_1_13)
char clock[64], cunlock[64], cdata[64];
char cwidth[32], cheight[32], cpitch[32];