xref: /aosp_15_r20/external/libyuv/CM_linux_packages.cmake (revision 4e366538070a3a6c5c163c31b791eab742e1657a)
1*4e366538SXin Li# determine the version number from the #define in libyuv/version.h
2*4e366538SXin LiEXECUTE_PROCESS (
3*4e366538SXin Li	COMMAND grep --perl-regex --only-matching "(?<=LIBYUV_VERSION )[0-9]+" include/libyuv/version.h
4*4e366538SXin Li	WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
5*4e366538SXin Li	OUTPUT_VARIABLE YUV_VERSION_NUMBER
6*4e366538SXin Li	OUTPUT_STRIP_TRAILING_WHITESPACE )
7*4e366538SXin LiSET ( YUV_VER_MAJOR 0 )
8*4e366538SXin LiSET ( YUV_VER_MINOR 0 )
9*4e366538SXin LiSET ( YUV_VER_PATCH ${YUV_VERSION_NUMBER} )
10*4e366538SXin LiSET ( YUV_VERSION ${YUV_VER_MAJOR}.${YUV_VER_MINOR}.${YUV_VER_PATCH} )
11*4e366538SXin LiMESSAGE ( VERBOSE "Building ver.: ${YUV_VERSION}" )
12*4e366538SXin Li
13*4e366538SXin Li# is this a 32-bit or 64-bit build?
14*4e366538SXin LiIF ( CMAKE_SIZEOF_VOID_P EQUAL 8 )
15*4e366538SXin Li	SET ( YUV_BIT_SIZE 64 )
16*4e366538SXin LiELSEIF ( CMAKE_SIZEOF_VOID_P EQUAL 4 )
17*4e366538SXin Li	SET ( YUV_BIT_SIZE 32 )
18*4e366538SXin LiELSE ()
19*4e366538SXin Li	MESSAGE ( FATAL_ERROR "CMAKE_SIZEOF_VOID_P=${CMAKE_SIZEOF_VOID_P}" )
20*4e366538SXin LiENDIF ()
21*4e366538SXin Li
22*4e366538SXin Li# detect if this is a ARM build
23*4e366538SXin LiSTRING (FIND "${CMAKE_CXX_COMPILER}" "arm-linux-gnueabihf-g++" pos)
24*4e366538SXin LiIF ( ${pos} EQUAL -1 )
25*4e366538SXin Li	SET ( YUV_CROSS_COMPILE_FOR_ARM7 FALSE )
26*4e366538SXin LiELSE ()
27*4e366538SXin Li	MESSAGE ( "Cross compiling for ARM7" )
28*4e366538SXin Li	SET ( YUV_CROSS_COMPILE_FOR_ARM7 TRUE )
29*4e366538SXin LiENDIF ()
30*4e366538SXin LiSTRING (FIND "${CMAKE_SYSTEM_PROCESSOR}" "arm" pos)
31*4e366538SXin LiIF ( ${pos} EQUAL -1 )
32*4e366538SXin Li	SET ( YUV_COMPILE_FOR_ARM7 FALSE )
33*4e366538SXin LiELSE ()
34*4e366538SXin Li	MESSAGE ( "Compiling for ARM" )
35*4e366538SXin Li	SET ( YUV_COMPILE_FOR_ARM7 TRUE )
36*4e366538SXin LiENDIF ()
37*4e366538SXin Li
38*4e366538SXin Li# setup the sytem name, such as "x86-32", "amd-64", and "arm-32
39*4e366538SXin LiIF ( ${YUV_CROSS_COMPILE_FOR_ARM7} OR ${YUV_COMPILE_FOR_ARM7} )
40*4e366538SXin Li	SET ( YUV_SYSTEM_NAME "armhf-${YUV_BIT_SIZE}" )
41*4e366538SXin LiELSE ()
42*4e366538SXin Li	IF ( YUV_BIT_SIZE EQUAL 32 )
43*4e366538SXin Li		SET ( YUV_SYSTEM_NAME "x86-${YUV_BIT_SIZE}" )
44*4e366538SXin Li	ELSE ()
45*4e366538SXin Li		SET ( YUV_SYSTEM_NAME "amd-${YUV_BIT_SIZE}" )
46*4e366538SXin Li	ENDIF ()
47*4e366538SXin LiENDIF ()
48*4e366538SXin LiMESSAGE ( VERBOSE "Packaging for: ${YUV_SYSTEM_NAME}" )
49*4e366538SXin Li
50*4e366538SXin Li# define all the variables needed by CPack to create .deb and .rpm packages
51*4e366538SXin LiSET ( CPACK_PACKAGE_VENDOR					"Frank Barchard" )
52*4e366538SXin LiSET ( CPACK_PACKAGE_CONTACT					"[email protected]" )
53*4e366538SXin LiSET ( CPACK_PACKAGE_VERSION					${YUV_VERSION} )
54*4e366538SXin LiSET ( CPACK_PACKAGE_VERSION_MAJOR			${YUV_VER_MAJOR} )
55*4e366538SXin LiSET ( CPACK_PACKAGE_VERSION_MINOR			${YUV_VER_MINOR} )
56*4e366538SXin LiSET ( CPACK_PACKAGE_VERSION_PATCH			${YUV_VER_PATCH} )
57*4e366538SXin LiSET ( CPACK_RESOURCE_FILE_LICENSE			${PROJECT_SOURCE_DIR}/LICENSE )
58*4e366538SXin LiSET ( CPACK_SYSTEM_NAME						"linux-${YUV_SYSTEM_NAME}" )
59*4e366538SXin LiSET ( CPACK_PACKAGE_NAME					"libyuv" )
60*4e366538SXin LiSET ( CPACK_PACKAGE_DESCRIPTION_SUMMARY		"YUV library" )
61*4e366538SXin LiSET ( CPACK_PACKAGE_DESCRIPTION				"YUV library and YUV conversion tool" )
62*4e366538SXin LiSET ( CPACK_DEBIAN_PACKAGE_SECTION			"other" )
63*4e366538SXin LiSET ( CPACK_DEBIAN_PACKAGE_PRIORITY			"optional" )
64*4e366538SXin LiSET ( CPACK_DEBIAN_PACKAGE_MAINTAINER		"Frank Barchard <[email protected]>" )
65*4e366538SXin LiSET ( CPACK_GENERATOR						"DEB;RPM" )
66*4e366538SXin Li
67*4e366538SXin Li# create the .deb and .rpm files (you'll need build-essential and rpm tools)
68*4e366538SXin LiINCLUDE( CPack )
69*4e366538SXin Li
70