Skip to content

Commit a7d54b5

Browse files
committed
Merge pull request #251 from cchampet/cmake_defineVersionInCode
CMake: get AvTranscoder versions from headers
2 parents 08e7575 + 89dd123 commit a7d54b5

File tree

4 files changed

+33
-16
lines changed

4 files changed

+33
-16
lines changed

CMakeLists.txt

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,6 @@ cmake_minimum_required(VERSION 2.8.11)
22

33
project(AvTranscoder)
44

5-
# Set AvTranscoder versions
6-
set(AVTRANSCODER_VERSION_MAJOR "0")
7-
set(AVTRANSCODER_VERSION_MINOR "5")
8-
set(AVTRANSCODER_VERSION_MICRO "10")
9-
set(AVTRANSCODER_VERSION ${AVTRANSCODER_VERSION_MAJOR}.${AVTRANSCODER_VERSION_MINOR}.${AVTRANSCODER_VERSION_MICRO})
10-
11-
# Define AvTranscoder versions
12-
add_definitions(-DAVTRANSCODER_VERSION_MAJOR=${AVTRANSCODER_VERSION_MAJOR})
13-
add_definitions(-DAVTRANSCODER_VERSION_MINOR=${AVTRANSCODER_VERSION_MINOR})
14-
add_definitions(-DAVTRANSCODER_VERSION_MICRO=${AVTRANSCODER_VERSION_MICRO})
15-
165
# Define AvTranscoder default path to profiles
176
add_definitions(-DAVTRANSCODER_DEFAULT_AVPROFILES="${CMAKE_INSTALL_PREFIX}/share/avprofiles")
187

@@ -37,8 +26,10 @@ if(AVTRANSCODER_COVERAGE)
3726
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
3827
endif()
3928

29+
# Build library
4030
add_subdirectory(src)
4131

32+
# Build apps
4233
if(AVTRANSCODER_DISABLE_APPS)
4334
message("Apps disabled, will not build applications.")
4435
else()

cmake/AvTranscoderMacros.cmake

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,24 @@
22
set(AVTRANSCODER_APP_PATH "${PROJECT_SOURCE_DIR}/app")
33
set(AVTRANSCODER_SRC_PATH "${PROJECT_SOURCE_DIR}/src")
44
file(GLOB_RECURSE AVTRANSCODER_SRC_FILES "AvTranscoder/*.cpp" "AvTranscoder/*.hpp")
5+
6+
# Get AvTranscoder versions
7+
# AVTRANSCODER_VERSION_MAJOR
8+
# AVTRANSCODER_VERSION_MINOR
9+
# AVTRANSCODER_VERSION_MICRO
10+
# AVTRANSCODER_VERSION
11+
file(STRINGS "${AVTRANSCODER_SRC_PATH}/AvTranscoder/common.hpp" _avtranscoder_VERSION_HPP_CONTENTS REGEX "#define AVTRANSCODER_VERSION_")
12+
foreach(v MAJOR MINOR MICRO)
13+
if("${_avtranscoder_VERSION_HPP_CONTENTS}" MATCHES "#define AVTRANSCODER_VERSION_${v} ([0-9]+)")
14+
set(AVTRANSCODER_VERSION_${v} "${CMAKE_MATCH_1}")
15+
else()
16+
set(AVTRANSCODER_RETRIEVE_VERSION_FAILED 1)
17+
endif()
18+
endforeach()
19+
unset(_avtranscoder_VERSION_HPP_CONTENTS)
20+
21+
set(AVTRANSCODER_VERSION "${AVTRANSCODER_VERSION_MAJOR}.${AVTRANSCODER_VERSION_MINOR}.${AVTRANSCODER_VERSION_MICRO}")
22+
23+
if(AVTRANSCODER_RETRIEVE_VERSION_FAILED)
24+
message(SEND_ERROR "Failed to retrieve AvTranscoder version: ${AVTRANSCODER_VERSION}")
25+
endif()

src/AvTranscoder/common.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
#ifndef _AV_TRANSCODER_COMMON_HPP_
22
#define _AV_TRANSCODER_COMMON_HPP_
33

4+
#define AVTRANSCODER_VERSION_MAJOR 0
5+
#define AVTRANSCODER_VERSION_MINOR 5
6+
#define AVTRANSCODER_VERSION_MICRO 10
7+
48
#include <AvTranscoder/system.hpp>
59

610
extern "C" {

src/CMakeLists.txt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,17 @@
22
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
33
include(AvTranscoderMacros)
44

5-
# find package ffmpeg/libav
6-
find_package(FFmpeg COMPONENTS avcodec avformat avutil swscale swresample avresample)
5+
# AvTranscoder versions
6+
message(STATUS "AvTranscoder version is ${AVTRANSCODER_VERSION}")
77

8-
# Check if FFmpeg or libav dependency
8+
# Find package ffmpeg/libav
9+
find_package(FFmpeg COMPONENTS avcodec avformat avutil swscale swresample avresample)
910
if(swresample_FOUND)
1011
add_definitions(-DAVTRANSCODER_FFMPEG_DEPENDENCY)
11-
message("Build avTranscoder with dependency to ffmpeg.")
12+
message(STATUS "Build avTranscoder with dependency to ffmpeg.")
1213
elseif(avresample_FOUND)
1314
add_definitions(-DAVTRANSCODER_LIBAV_DEPENDENCY)
14-
message("Build avTranscoder with dependency to libav.")
15+
message(STATUS "Build avTranscoder with dependency to libav.")
1516
else()
1617
message(SEND_ERROR "Can't define if you depend on ffmpeg or libav.")
1718
endif()

0 commit comments

Comments
 (0)