From 97207e0e0a37a4c576540988c174473dcd36065b Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 12 Oct 2015 12:03:37 +0200 Subject: [PATCH 1/3] CMake: get AvTranscoder versions from headers Because it could be great to get the versions in bindings. --- CMakeLists.txt | 11 ----------- cmake/AvTranscoderMacros.cmake | 21 +++++++++++++++++++++ src/AvTranscoder/common.hpp | 4 ++++ 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e336bfd..929e4dde 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,17 +2,6 @@ cmake_minimum_required(VERSION 2.8.11) project(AvTranscoder) -# Set AvTranscoder versions -set(AVTRANSCODER_VERSION_MAJOR "0") -set(AVTRANSCODER_VERSION_MINOR "5") -set(AVTRANSCODER_VERSION_MICRO "10") -set(AVTRANSCODER_VERSION ${AVTRANSCODER_VERSION_MAJOR}.${AVTRANSCODER_VERSION_MINOR}.${AVTRANSCODER_VERSION_MICRO}) - -# Define AvTranscoder versions -add_definitions(-DAVTRANSCODER_VERSION_MAJOR=${AVTRANSCODER_VERSION_MAJOR}) -add_definitions(-DAVTRANSCODER_VERSION_MINOR=${AVTRANSCODER_VERSION_MINOR}) -add_definitions(-DAVTRANSCODER_VERSION_MICRO=${AVTRANSCODER_VERSION_MICRO}) - # Define AvTranscoder default path to profiles add_definitions(-DAVTRANSCODER_DEFAULT_AVPROFILES="${CMAKE_INSTALL_PREFIX}/share/avprofiles") diff --git a/cmake/AvTranscoderMacros.cmake b/cmake/AvTranscoderMacros.cmake index 4794bd21..2dc45379 100644 --- a/cmake/AvTranscoderMacros.cmake +++ b/cmake/AvTranscoderMacros.cmake @@ -2,3 +2,24 @@ set(AVTRANSCODER_APP_PATH "${PROJECT_SOURCE_DIR}/app") set(AVTRANSCODER_SRC_PATH "${PROJECT_SOURCE_DIR}/src") file(GLOB_RECURSE AVTRANSCODER_SRC_FILES "AvTranscoder/*.cpp" "AvTranscoder/*.hpp") + +# Get AvTranscoder versions +# AVTRANSCODER_VERSION_MAJOR +# AVTRANSCODER_VERSION_MINOR +# AVTRANSCODER_VERSION_MICRO +# AVTRANSCODER_VERSION +file(STRINGS "${AVTRANSCODER_SRC_PATH}/AvTranscoder/common.hpp" _avtranscoder_VERSION_HPP_CONTENTS REGEX "#define AVTRANSCODER_VERSION_") +foreach(v MAJOR MINOR MICRO) + if("${_avtranscoder_VERSION_HPP_CONTENTS}" MATCHES "#define AVTRANSCODER_VERSION_${v} ([0-9]+)") + set(AVTRANSCODER_VERSION_${v} "${CMAKE_MATCH_1}") + else() + set(AVTRANSCODER_RETRIEVE_VERSION_FAILED 1) + endif() +endforeach() +unset(_avtranscoder_VERSION_HPP_CONTENTS) + +set(AVTRANSCODER_VERSION "${AVTRANSCODER_VERSION_MAJOR}.${AVTRANSCODER_VERSION_MINOR}.${AVTRANSCODER_VERSION_MICRO}") + +if(AVTRANSCODER_RETRIEVE_VERSION_FAILED) + message(SEND_ERROR "Failed to retrieve AvTranscoder version: ${AVTRANSCODER_VERSION}") +endif() diff --git a/src/AvTranscoder/common.hpp b/src/AvTranscoder/common.hpp index 33bebcd9..2c379804 100644 --- a/src/AvTranscoder/common.hpp +++ b/src/AvTranscoder/common.hpp @@ -1,6 +1,10 @@ #ifndef _AV_TRANSCODER_COMMON_HPP_ #define _AV_TRANSCODER_COMMON_HPP_ +#define AVTRANSCODER_VERSION_MAJOR 0 +#define AVTRANSCODER_VERSION_MINOR 5 +#define AVTRANSCODER_VERSION_MICRO 10 + #include extern "C" { From b4129f89123213595b900c36446c118693b9efd4 Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 12 Oct 2015 12:04:29 +0200 Subject: [PATCH 2/3] CMake: clean --- CMakeLists.txt | 2 ++ src/CMakeLists.txt | 8 +++----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 929e4dde..933aac0b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,8 +26,10 @@ if(AVTRANSCODER_COVERAGE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage") endif() +# Build library add_subdirectory(src) +# Build apps if(AVTRANSCODER_DISABLE_APPS) message("Apps disabled, will not build applications.") else() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2a895f98..40fc747f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,16 +2,14 @@ set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) include(AvTranscoderMacros) -# find package ffmpeg/libav +# Find package ffmpeg/libav find_package(FFmpeg COMPONENTS avcodec avformat avutil swscale swresample avresample) - -# Check if FFmpeg or libav dependency if(swresample_FOUND) add_definitions(-DAVTRANSCODER_FFMPEG_DEPENDENCY) - message("Build avTranscoder with dependency to ffmpeg.") + message(STATUS "Build avTranscoder with dependency to ffmpeg.") elseif(avresample_FOUND) add_definitions(-DAVTRANSCODER_LIBAV_DEPENDENCY) - message("Build avTranscoder with dependency to libav.") + message(STATUS "Build avTranscoder with dependency to libav.") else() message(SEND_ERROR "Can't define if you depend on ffmpeg or libav.") endif() From 89dd123f97152d2de6ad6bf643bf8b3e54dfdc79 Mon Sep 17 00:00:00 2001 From: Clement Champetier Date: Mon, 12 Oct 2015 12:05:01 +0200 Subject: [PATCH 3/3] CMake: print info to check AvTranscoder version --- src/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 40fc747f..ad8a4630 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,6 +2,9 @@ set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) include(AvTranscoderMacros) +# AvTranscoder versions +message(STATUS "AvTranscoder version is ${AVTRANSCODER_VERSION}") + # Find package ffmpeg/libav find_package(FFmpeg COMPONENTS avcodec avformat avutil swscale swresample avresample) if(swresample_FOUND)