cmake_minimum_required (VERSION 3.5) project(aml_mp_sdk) #Version execute_process( COMMAND bash -c "cd ${PROJECT_SOURCE_DIR}; git rev-parse --verify --abbrev-ref HEAD" OUTPUT_VARIABLE BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND bash -c "cd ${PROJECT_SOURCE_DIR}; git rev-parse --verify @{0}" OUTPUT_VARIABLE COMMIT OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND bash -c "cd ${PROJECT_SOURCE_DIR}; git log -1 --pretty=format:%cd" OUTPUT_VARIABLE COMMIT_DATE OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND bash -c "TZ='CST-8' date +'%a %b %d %H:%M:%S %Y %z'" OUTPUT_VARIABLE BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND bash -c "cd ${PROJECT_SOURCE_DIR}; id -un" OUTPUT_VARIABLE BUILD_NAME OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND bash -c "cd ${PROJECT_SOURCE_DIR}; git log -10 | grep 'Change-Id:' -m 1 | cut -d':' -f 2 | tr -d ' '" OUTPUT_VARIABLE CHANGE_ID OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND bash -c "cd ${PROJECT_SOURCE_DIR}; git diff --numstat | wc -l" OUTPUT_VARIABLE MODIFIED_FILES OUTPUT_STRIP_TRAILING_WHITESPACE ) execute_process( COMMAND bash -c "cd ${PROJECT_SOURCE_DIR}; git diff --cached --numstat | wc -l" OUTPUT_VARIABLE STAGED_FILES OUTPUT_STRIP_TRAILING_WHITESPACE ) math(EXPR WORKDIR_STATUS "${MODIFIED_FILES} + ${STAGED_FILES}") #Version OPTION(HAVE_CTC "CTC player" OFF) OPTION(HAVE_SUBTITLE "subtitle" ON) OPTION(HAVE_VMXIPTV "verimatrix iptv" ON) OPTION(HAVE_VMXWEB "verimatrix web" ON) OPTION(HAVE_NAGRAWEB "nagra web" ON) OPTION(HAVE_WVCAS "widevine cas" OFF) OPTION(HAVE_CAS_HAL "CAS HAL" ON) OPTION(HAVE_LIBDVR "libdvr" ON) OPTION(HAVE_DEMO "tests" ON) OPTION(HAVE_MEDIAPLAYER "mediaplayer" ON) SET(AML_MP_PLAYER_SRC player/Aml_MP.cpp player/Aml_MP_Player.cpp player/Aml_MP_PlayerImpl.cpp player/AmlPlayerBase.cpp player/AmlTsPlayer.cpp player/AmlDummyTsPlayer.cpp ) SET(AML_MP_CAS_SRC cas/Aml_MP_CAS.cpp cas/AmlCasBase.cpp cas/AmlDvbCasHal.cpp cas/AmCasLibWrapper.cpp ) SET(AML_MP_DVR_SRC dvr/Aml_MP_DVR.cpp dvr/AmlDVRPlayer.cpp dvr/AmlDVRRecorder.cpp ) SET(AML_MP_UTILS_SRC utils/AmlMpAtomizer.cpp utils/AmlMpBitReader.cpp utils/AmlMpBuffer.cpp utils/AmlMpConfig.cpp utils/AmlMpEventHandler.cpp utils/AmlMpEventLooper.cpp utils/AmlMpEventLooperRoster.cpp utils/AmlMpLooper.cpp utils/AmlMpMessage.cpp utils/AmlMpRefBase.cpp utils/AmlMpStrongPointer.cpp utils/AmlMpThread.cpp utils/AmlMpUtils.cpp utils/AmlMpChunkFifo.cpp utils/Amlsysfsutils.cpp utils/AmlMpPlayerRoster.cpp utils/json/lib_json/json_reader.cpp utils/json/lib_json/json_value.cpp utils/json/lib_json/json_writer.cpp utils/AmlMpCodecCapability.cpp utils/AmlMpSignalHandler.cpp ) SET(AML_MP_DEMUX_SRC demux/AmlDemuxBase.cpp demux/AmlHwDemux.cpp demux/AmlSwDemux.cpp demux/AmlTsParser.cpp demux/AmlESQueue.cpp ) #OPTION SETTING START SET(AML_MP_DEFINITIONS JSON_USE_EXCEPTION=0 JSONCPP_NO_LOCALE_SUPPORT) IF(HAVE_VMXIPTV) LIST(APPEND AML_MP_CAS_SRC cas/vmx_iptvcas/AmlVMXIptvCas_V2.cpp) LIST(APPEND AML_MP_DEFINITIONS HAVE_VMXIPTV_CAS_V2) ENDIF() IF(HAVE_VMXWEB) LIST(APPEND AML_MP_CAS_SRC cas/vmx_webcas/AmlVMXWebCas.cpp) LIST(APPEND AML_MP_DEFINITIONS HAVE_VMXWEB_CAS) ENDIF() IF(HAVE_NAGRAWEB) LIST(APPEND AML_MP_CAS_SRC cas/nagra_webcas/AmlNagraWebCas.cpp) LIST(APPEND AML_MP_DEFINITIONS HAVE_NAGRAWEB_CAS) ENDIF() IF(HAVE_WVCAS) LIST(APPEND AML_MP_CAS_SRC cas/wv_iptvcas/AmlWVIptvCas_V2.cpp) LIST(APPEND AML_MP_DEFINITIONS HAVE_WVIPTV_CAS_V2) ENDIF() IF(HAVE_SUBTITLE) LIST(APPEND AML_MP_DEFINITIONS HAVE_SUBTITLE) LIST(APPEND subtitle_LINK_LIBRARIES subtitleclient) ENDIF() IF(HAVE_CTC) LIST(APPEND AML_MP_DEFINITIONS HAVE_CTC) ENDIF() IF(HAVE_CAS_HAL) LIST(APPEND AML_MP_DEFINITIONS HAVE_CAS_HAL) FIND_PATH(libamcas_INCLUDE_DIRS am_cas.h PATH_SUFFIXES libamcas REQUIRED) LIST(APPEND libcas_LINK_LIBRARIES amcas) ENDIF() IF(HAVE_LIBDVR) LIST(APPEND AML_MP_DEFINITIONS HAVE_LIBDVR) FIND_PATH(libdvr_INCLUDE_DIRS dvr_wrapper.h PATH_SUFFIXES libdvr REQUIRED) LIST(APPEND libdvr_LINK_LIBRARIES amdvr) ENDIF() #OPTION SETTING DONE IF(CMAKE_SYSTEM_NAME MATCHES "Linux") LIST(APPEND AML_MP_DEFINITIONS HAVE_VERSION_INFO) LIST(APPEND AML_MP_DEFINITIONS MODULE_BRANCH_NAME="${BRANCH}") LIST(APPEND AML_MP_DEFINITIONS MODULE_GIT_VERSION="${COMMIT}") LIST(APPEND AML_MP_DEFINITIONS MODULE_CHANGE_ID="${CHANGE_ID}") LIST(APPEND AML_MP_DEFINITIONS MODULE_COMMIT_DATE="${COMMIT_DATE}") LIST(APPEND AML_MP_DEFINITIONS MODULE_BUILD_TIME="${BUILD_TIME}") LIST(APPEND AML_MP_DEFINITIONS MODULE_BUILD_NAME="${BUILD_NAME}") LIST(APPEND AML_MP_DEFINITIONS MODULE_GIT_UNCOMMIT_FILE_NUM=${WORKDIR_STATUS}) ENDIF() SET(AML_MP_SRCS ${AML_MP_PLAYER_SRC} ${AML_MP_DVR_SRC} ${AML_MP_UTILS_SRC} ${AML_MP_DEMUX_SRC} ${AML_MP_CAS_SRC} ) SET(AML_MP_PUBLIC_HEADERS include/Aml_MP/Aml_MP.h include/Aml_MP/Cas.h include/Aml_MP/Common.h include/Aml_MP/Dvr.h include/Aml_MP/Aml_MediaPlayer.h ) SET(TARGET aml_mp_sdk) ADD_LIBRARY(${TARGET} SHARED ${AML_MP_SRCS}) TARGET_INCLUDE_DIRECTORIES(${TARGET} PUBLIC ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR} ${libamcas_INCLUDE_DIRS} ${libdvr_INCLUDE_DIRS} ) TARGET_COMPILE_OPTIONS(${TARGET} PUBLIC -std=c++17 -fpermissive -Werror -Wsign-compare -Wno-unused-result -Wno-multichar -Wno-deprecated-declarations -Wno-psabi) TARGET_COMPILE_DEFINITIONS(${TARGET} PUBLIC __unused= ) TARGET_COMPILE_DEFINITIONS(${TARGET} PUBLIC ${AML_MP_DEFINITIONS}) TARGET_LINK_LIBRARIES(${TARGET} PUBLIC ${subtitle_LINK_LIBRARIES} mediahal_tsplayer ${libdvr_LINK_LIBRARIES} ${libcas_LINK_LIBRARIES} log cutils pthread dl ) INSTALL( TARGETS ${TARGET} ) INSTALL( FILES ${AML_MP_PUBLIC_HEADERS} DESTINATION include/Aml_MP ) IF(HAVE_DEMO) ADD_SUBDIRECTORY(tests/amlMpTestSupporter) ADD_SUBDIRECTORY(tests/amlMpPlayerDemo) ADD_SUBDIRECTORY(tests/amlMpMediaPlayerDemo) ADD_SUBDIRECTORY(tests/unitTest) ENDIF() IF(HAVE_MEDIAPLAYER) ADD_SUBDIRECTORY(mediaplayer) ENDIF()