1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

SRS5: Script: Discover version from code.

PICK 87a2ef100a
This commit is contained in:
winlin 2022-12-28 14:20:18 +08:00
parent d5bf0ba2da
commit 351f7590db
6 changed files with 42 additions and 5 deletions

View file

@ -5,12 +5,29 @@ OS_KERNEL_NAME=$(uname -s)
OS_KERNRL_RELEASE=$(uname -r|awk -F '-' '{print $1}')
OS_PREFIX="Platform"
# Detect gcc, which is required.
gcc --version >/dev/null 2>/dev/null || (ret=$?; echo "Please install gcc"; exit $ret)
# Discover SRS version from header file.
mkdir -p ${SRS_OBJS} &&
echo '#include <stdio.h>' > ${SRS_OBJS}/test_version.c &&
echo '#include <srs_core_version.hpp>' >> ${SRS_OBJS}/test_version.c &&
echo 'int main(int argc, char** argv) {' >> ${SRS_OBJS}/test_version.c &&
echo ' printf("%d.%d.%d\n", VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION);' >> ${SRS_OBJS}/test_version.c &&
echo ' return 0;' >> ${SRS_OBJS}/test_version.c &&
echo '}' >> ${SRS_OBJS}/test_version.c &&
gcc -g -O0 ${SRS_OBJS}/test_version.c -I${SRS_WORKDIR}/src/core -o ${SRS_OBJS}/test_version 1>/dev/null 2>&1 &&
SRS_VERSION=$(./${SRS_OBJS}/test_version 2>/dev/null) &&
SRS_MAJOR=$(echo $SRS_VERSION |awk -F . '{print $1}');
ret=$?; rm -rf ${SRS_OBJS}/test_version*; if [[ $ret -ne 0 ]]; then echo "Detect SRS version failed"; exit $ret; fi
echo "Discover SRS version=${SRS_VERSION}, major=${SRS_MAJOR}"
if [[ $OSTYPE == cygwin ]]; then
OS_KERNRL_RELEASE=$(uname -r|awk -F '(' '{print $1}')
fi
# Build platform cache.
SRS_PLATFORM="${SRS_BUILD_TAG}${OS_PREFIX}-${OS_KERNEL_NAME}-${OS_KERNRL_RELEASE}"
SRS_PLATFORM="${SRS_BUILD_TAG}${OS_PREFIX}-SRS${SRS_MAJOR}-${OS_KERNEL_NAME}-${OS_KERNRL_RELEASE}"
# Build platform cache with gcc version.
if [[ $OS_KERNEL_NAME == Darwin ]]; then
GCC_VERSION="Clang$(gcc --version 2>/dev/null|grep clang|awk '{print $4}')"
@ -21,7 +38,7 @@ else
SRS_PLATFORM="${SRS_PLATFORM}-${GCC_VERSION}"
fi
# Use isolate cache for different SRS version.
SRS_PLATFORM="${SRS_PLATFORM}-SRS5-$(uname -m)"
SRS_PLATFORM="${SRS_PLATFORM}-$(uname -m)"
if [[ $SRS_CROSS_BUILD == YES ]]; then
SRS_TOOL_CC_NAME=$(basename $SRS_TOOL_CC)