- 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 find_path(LIBVLC_INCLUDE_DIR PATHS "${CMAKE_INCLUDE_PATH}/vlc" NAMES vlc.h
HINTS ${PC_LIBVLC_INCLUDEDIR} ${PC_LIBVLC_INCLUDE_DIRS}) 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 #Put here path to custom location
#example: /home/user/vlc/lib etc.. #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} HINTS "$ENV{LIBVLC_LIBRARY_PATH}" ${PC_LIBVLC_LIBDIR} ${PC_LIBVLC_LIBRARY_DIRS}
PATHS PATHS
"$ENV{LIB_DIR}/lib" "$ENV{LIB_DIR}/lib"
#mingw #mingw
c:/msys/local/lib c:/msys/local/lib
) )
find_library(LIBVLC_LIBRARY NAMES vlc libvlc) find_library(LIBVLC_LIBRARY NAMES ${LIBVLC_LIB_NAMES})
find_library(LIBVLCCORE_LIBRARY NAMES vlccore libvlccore find_library(LIBVLCCORE_LIBRARY NAMES ${LIBVLC_LIB_CORE_NAMES}
HINTS "$ENV{LIBVLC_LIBRARY_PATH}" ${PC_LIBVLC_LIBDIR} ${PC_LIBVLC_LIBRARY_DIRS} HINTS "$ENV{LIBVLC_LIBRARY_PATH}" ${PC_LIBVLC_LIBDIR} ${PC_LIBVLC_LIBRARY_DIRS}
PATHS PATHS
"$ENV{LIB_DIR}/lib" "$ENV{LIB_DIR}/lib"
#mingw #mingw
c:/msys/local/lib 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}) set(LIBVLC_VERSION ${PC_LIBVLC_VERSION})
if (NOT LIBVLC_VERSION) if (NOT LIBVLC_VERSION)

View File

@ -95,6 +95,27 @@ IF(BUILD_MEGAGLEST)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${GLEW_LIBRARY}) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${GLEW_LIBRARY})
ENDIF() 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 # 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.") MESSAGE(STATUS "**NOTE: LIBVLC found so intro videos are supported.")
INCLUDE_DIRECTORIES(${LIBVLC_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${LIBVLC_INCLUDE_DIR})
IF(UNIX) IF(UNIX)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LIBVLC_LIBRARY}) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${LIBVLCCORE_LIBRARY} ${LIBVLC_LIBRARY})
ADD_DEFINITIONS(-DHAS_LIBVLC) ADD_DEFINITIONS(-DHAS_LIBVLC)
ENDIF() ENDIF()
IF(LIBVLC_VERSION_PRE_V2) IF(LIBVLC_VERSION_PRE_V2)

View File

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