1MACRO(checkX265)
2	IF (NOT X265_CHECKED)
3		OPTION(X265 "" ON)
4
5		MESSAGE(STATUS "Checking for x265")
6		MESSAGE(STATUS "*****************")
7
8		IF (X265)
9			FIND_HEADER_AND_LIB(_X265 x265.h)
10			FIND_HEADER_AND_LIB(_X265_CONFIG x265_config.h)
11
12			IF (_X265_FOUND AND _X265_CONFIG_FOUND)
13				FILE(READ ${_X265_INCLUDE_DIR}/x265_config.h X265_CONFIG_H)
14				STRING(REGEX MATCH "#define[ ]+X265_BUILD[ ]+([0-9]+)" X265_CONFIG_H "${X265_CONFIG_H}")
15				STRING(REGEX REPLACE ".*[ ]([0-9]+).*" "\\1" x265_version "${X265_CONFIG_H}")
16				MESSAGE(STATUS "  core version: ${x265_version}")
17
18				IF (x265_version LESS 9)
19					MESSAGE("WARNING: x265 core version is too old.  At least version 9 is required.")
20					SET(X265_FOUND 0)
21				ELSE (x265_version LESS 9)
22                                        IF(NOT WIN32)
23                                                SET(DL dl)
24                                        ELSE(NOT WIN32)
25                                                IF(NOT MSVC)
26                                                        SET(DL stdc++)
27                                                ENDIF(NOT MSVC)
28                                        ENDIF(NOT WIN32)
29                                        IF(MSVC)
30                                                SET(X265_CFLAGS "-DX265_API_IMPORTS")
31                                                ADD_DEFINITIONS(${X265_CFLAGS})
32                                        ENDIF(MSVC)
33					FIND_HEADER_AND_LIB(X265 x265.h x265 x265_encoder_open_${x265_version} ${DL})
34				ENDIF (x265_version LESS 9)
35			ELSE (_X265_FOUND AND _X265_CONFIG_FOUND)
36				MESSAGE(STATUS "  No working version found")
37				SET(X265_FOUND 0)
38			ENDIF (_X265_FOUND AND _X265_CONFIG_FOUND)
39                        IF(X265_FOUND)
40				MESSAGE(STATUS "  Workable version found")
41                                SET(USE_X265 True CACHE BOOL "")
42                        ENDIF(X265_FOUND)
43
44			PRINT_LIBRARY_INFO("x265" X265_FOUND "${X265_INCLUDE_DIR}" "${X265_LIBRARY_DIR}")
45		ELSE (X265)
46			MESSAGE("${MSG_DISABLE_OPTION}")
47		ENDIF (X265)
48
49		SET(X265_CHECKED 1)
50
51		MESSAGE("")
52	ENDIF (NOT X265_CHECKED)
53
54	APPEND_SUMMARY_LIST("Video Encoder" "x265" "${USE_X265}")
55ENDMACRO(checkX265)
56