# HG changeset patch # User Stepan777 # Date 1344705957 -14400 # Node ID cc6c656f70b5230d6e23a24ce3cc7803f17e5b1a # Parent 2d6e69b392cbe033dc93aeaf1ebf98fbe4b43085 cmake scripts diff -r 2d6e69b392cb -r cc6c656f70b5 cmake_modules/FindFFMPEG.cmake --- a/cmake_modules/FindFFMPEG.cmake Fri Aug 10 17:35:48 2012 +0400 +++ b/cmake_modules/FindFFMPEG.cmake Sat Aug 11 21:25:57 2012 +0400 @@ -1,7 +1,7 @@ # - Try to find ffmpeg libraries (libavcodec, libavformat and libavutil) # Once done this will define # -# FFMPEG_FOUND - system has ffmpeg +# FFMPEG_FOUND - system has ffmpeg or libav # FFMPEG_INCLUDE_DIR - the ffmpeg include directory # FFMPEG_LIBRARIES - Link these to use ffmpeg # FFMPEG_LIBAVCODEC @@ -67,11 +67,11 @@ if (FFMPEG_FOUND) if (NOT FFMPEG_FIND_QUIETLY) - message(STATUS "Found FFMPEG: ${FFMPEG_LIBRARIES} ${FFMPEG_INCLUDE_DIR}") + message(STATUS "Found FFMPEG or Libav: ${FFMPEG_LIBRARIES}, ${FFMPEG_INCLUDE_DIR}") endif (NOT FFMPEG_FIND_QUIETLY) else (FFMPEG_FOUND) if (FFMPEG_FIND_REQUIRED) - message(FATAL_ERROR "Could not find FFMPEG libavcodec or libavformat or libavutil") + message(FATAL_ERROR "Could not find libavcodec or libavformat or libavutil") endif (FFMPEG_FIND_REQUIRED) endif (FFMPEG_FOUND) diff -r 2d6e69b392cb -r cc6c656f70b5 hedgewars/CMakeLists.txt --- a/hedgewars/CMakeLists.txt Fri Aug 10 17:35:48 2012 +0400 +++ b/hedgewars/CMakeLists.txt Sat Aug 11 21:25:57 2012 +0400 @@ -190,14 +190,18 @@ message(STATUS "Compiling with video recording") include_directories(${FFMPEG_INCLUDE_DIR}) set(pascal_flags "-dUSE_VIDEO_RECORDING" ${pascal_flags}) + set(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}) IF (WIN32) - set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) # there are some problems with linking our avwrapper as static lib, so link it as shared add_library(avwrapper SHARED avwrapper.c) target_link_libraries(avwrapper ${FFMPEG_LIBRARIES}) ELSE() add_library(avwrapper STATIC avwrapper.c) + set(pascal_flags "-k${FFMPEG_LIBAVCODEC} ${FFMPEG_LIBAVFORMAT} ${FFMPEG_LIBAVUTIL}" ${pascal_flags}) + # set(pascal_flags "-k${LIBRARY_OUTPUT_PATH}/${CMAKE_STATIC_LIBRARY_PREFIX}avwrapper${CMAKE_STATIC_LIBRARY_SUFFIX}" ${pascal_flags}) ENDIF() + else() + message(STATUS "FFMPEG library not found, video recording will be disabled") endif() else() message(STATUS "Video recording disabled by user") diff -r 2d6e69b392cb -r cc6c656f70b5 hedgewars/uVideoRec.pas --- a/hedgewars/uVideoRec.pas Fri Aug 10 17:35:48 2012 +0400 +++ b/hedgewars/uVideoRec.pas Sat Aug 11 21:25:57 2012 +0400 @@ -28,10 +28,7 @@ {$ELSE} {$IFNDEF WIN32} - {$LINKLIB avwrapper} - {$LINKLIB avutil} - {$LINKLIB avcodec} - {$LINKLIB avformat} + {$LINKLIB ../bin/libavwrapper.a} {$ENDIF} interface @@ -53,16 +50,14 @@ uses uVariables, uUtils, GLunit, SDLh, SysUtils, uIO, uMisc, uTypes; -const AVWrapperLibName = {$IFDEF WIN32}'libavwrapper.dll'{$ELSE}''{$ENDIF}; - type TAddFileLogRaw = procedure (s: pchar); cdecl; procedure AVWrapper_Init( AddLog: TAddFileLogRaw; filename, desc, soundFile, format, vcodec, acodec: PChar; - width, height, framerateNum, framerateDen, vquality: LongInt); cdecl; external AVWrapperLibName; -procedure AVWrapper_Close; cdecl; external AVWrapperLibName; -procedure AVWrapper_WriteFrame( pY, pCb, pCr: PByte ); cdecl; external AVWrapperLibName; + width, height, framerateNum, framerateDen, vquality: LongInt); cdecl; external {$IFDEF WIN32}'libavwrapper.dll'{$ENDIF}; +procedure AVWrapper_Close; cdecl; external {$IFDEF WIN32}'libavwrapper.dll'{$ENDIF}; +procedure AVWrapper_WriteFrame( pY, pCb, pCr: PByte ); cdecl; external {$IFDEF WIN32}'libavwrapper.dll'{$ENDIF}; type TFrame = record realTicks: LongWord;