33# - TegraJPEG_INCLUDE_DIRS
44# - TegraJPEG_LIBRARIES
55
6- # Detect Linux4Tegra distribution
7- SET (L4T_RELEASE_FILE /etc/nv_tegra_release)
8- IF (EXISTS ${L4T_RELEASE_FILE} )
9- SET (TegraJPEG_IS_L4T TRUE )
10- EXECUTE_PROCESS (
11- COMMAND sha1sum --quiet -c /etc/nv_tegra_release
12- RESULT_VARIABLE TegraJPEG_DRIVER_ERROR
13- OUTPUT_VARIABLE TegraJPEG_DRIVER_OUTPUT
14- ERROR_QUIET
15- )
16- IF (TegraJPEG_DRIVER_ERROR)
17- MESSAGE (WARNING "Tegra drivers have wrong checksum:\n ${TegraJPEG_DRIVER_OUTPUT} " )
18- ELSE ()
19- SET (TegraJPEG_DRIVER_OK TRUE )
20- ENDIF ()
21- ENDIF ()
22-
23- # Detect L4T version
24- IF (TegraJPEG_IS_L4T)
25- FILE (READ ${L4T_RELEASE_FILE} L4T_RELEASE_CONTENT LIMIT 64 OFFSET 2)
26- STRING (REGEX REPLACE "^R([0-9]*)[^,]*, REVISION: ([0-9.]*).*" "\\ 1" L4T_VER_MAJOR "${L4T_RELEASE_CONTENT} " )
27- STRING (REGEX REPLACE "^R([0-9]*)[^,]*, REVISION: ([0-9.]*).*" "\\ 2" L4T_VER_MINOR "${L4T_RELEASE_CONTENT} " )
28- SET (L4T_VER "${L4T_VER_MAJOR} .${L4T_VER_MINOR} " )
29- MESSAGE (STATUS "Found Linux4Tegra ${L4T_VER} " )
30- IF (L4T_VER VERSION_LESS 21.3.0)
31- MESSAGE (WARNING "Linux4Tegra version (${L4T_VER} ) less than minimum requirement (21.3)" )
32- ELSE ()
33- SET (TegraJPEG_L4T_OK TRUE )
34- ENDIF ()
35-
36- IF (L4T_VER MATCHES ^21.3)
37- SET (L4T_SRC_PART r21_Release_v3.0/sources /gstjpeg_src.tbz2)
38- ELSEIF (L4T_VER MATCHES ^21.4)
39- SET (L4T_SRC_PART r21_Release_v4.0/source /gstjpeg_src.tbz2)
40- ELSEIF (L4T_VER MATCHES ^21.5)
41- SET (L4T_SRC_PART r21_Release_v5.0/source /gstjpeg_src.tbz2)
42- ELSEIF (L4T_VER MATCHES ^23.1)
43- SET (L4T_SRC_PART r23_Release_v1.0/source /gstjpeg_src.tbz2)
44- ELSEIF (L4T_VER MATCHES ^23.2)
45- SET (L4T_SRC_PART r23_Release_v2.0/source /gstjpeg_src.tbz2)
46- ELSEIF (L4T_VER MATCHES ^24.1)
47- SET (L4T_SRC_PART r24_Release_v1.0/24.1_64bit/source /gstjpeg_src.tbz2)
48- ELSEIF (L4T_VER MATCHES ^24.2)
49- SET (L4T_SRC_PART r24_Release_v2.0/BSP/sources .tbz2)
50- ELSEIF (L4T_VER MATCHES ^27.1)
51- SET (L4T_SRC_PART r27_Release_v1.0/BSP/r27.1.0_sources.tbz2)
52- ELSEIF (L4T_VER MATCHES ^28.1)
53- SET (L4T_SRC_PART r28_Release_v1.0/BSP/source_release.tbz2)
54- ELSEIF (L4T_VER MATCHES ^28.2)
55- SET (L4T_SRC_PART r28_Release_v2.0/BSP/source_release.tbz2)
56- ELSE ()
57- MESSAGE (WARNING "Linux4Tegra version (${L4T_VER} ) is not recognized. Add the new source URL part to FindTegraJPEG.cmake." )
58- SET (TegraJPEG_L4T_OK FALSE )
59- ENDIF ()
60- ENDIF ()
61-
62- # Download gstjpeg source
63- IF (TegraJPEG_L4T_OK)
64- SET (L4T_SRC_PATH ${DEPENDS_DIR} /source /${L4T_SRC_PART} )
65- GET_FILENAME_COMPONENT (L4T_SRC_DIR ${L4T_SRC_PATH} DIRECTORY )
66- IF (NOT EXISTS ${L4T_SRC_PATH} )
67- MESSAGE (STATUS "Downloading ${L4T_SRC_PART} ..." )
68- SET (L4T_SRC_URL "http://developer.download.nvidia.com/embedded/L4T/${L4T_SRC_PART} " )
69- # Do we want checksum for the download?
70- FILE (DOWNLOAD ${L4T_SRC_URL} ${L4T_SRC_PATH} STATUS L4T_SRC_STATUS)
71- LIST (GET L4T_SRC_STATUS 0 L4T_SRC_ERROR)
72- LIST (GET L4T_SRC_STATUS 1 L4T_SRC_MSG)
73- IF (L4T_SRC_ERROR)
74- MESSAGE (WARNING "Failed to download ${L4T_SRC_PART} : ${L4T_SRC_MSG} " )
75- FILE (REMOVE ${L4T_SRC_PATH} )
76- ENDIF ()
77- ENDIF ()
78-
79- FILE (GLOB_RECURSE L4T_GSTJPEG_PATH ${L4T_SRC_DIR} /gstjpeg_src.tbz2)
80- IF (NOT L4T_GSTJPEG_PATH)
81- MESSAGE (STATUS "Extracting ${L4T_SRC_PART} ..." )
82- EXECUTE_PROCESS (
83- COMMAND ${CMAKE_COMMAND} -E tar xjf ${L4T_SRC_PATH}
84- WORKING_DIRECTORY ${L4T_SRC_DIR}
85- )
86- FILE (GLOB_RECURSE L4T_GSTJPEG_PATH ${L4T_SRC_DIR} /gstjpeg_src.tbz2)
87- ENDIF ()
88-
89- IF (L4T_GSTJPEG_PATH)
90- EXECUTE_PROCESS (
91- COMMAND ${CMAKE_COMMAND} -E tar xjf ${L4T_GSTJPEG_PATH}
92- WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
93- RESULT_VARIABLE L4T_HEADERS_ERROR
94- ERROR_VARIABLE L4T_HEADERS_MSG
95- )
96- IF (L4T_HEADERS_ERROR)
97- MESSAGE (WARNING "Failed to unpack ${L4T_GSTJPEG_PATH} : ${L4T_HEADERS_MSG} " )
98- ENDIF ()
99- ENDIF ()
100- ENDIF ()
101-
1026FIND_PATH (TegraJPEG_INCLUDE_DIRS
103- nv_headers /jpeglib.h
7+ libjpeg-8b /jpeglib.h
1048 DOC "Found TegraJPEG include directory"
105- PATHS ${CMAKE_BINARY_DIR} /gstjpeg_src
9+ PATHS /usr/src/tegra_multimedia_api/ include
10610 NO_DEFAULT_PATH
10711)
10812
@@ -112,22 +16,15 @@ FIND_LIBRARY(TegraJPEG_LIBRARIES
11216 PATH_SUFFIXES tegra
11317)
11418
115- FIND_LIBRARY (TegraJPEG_LIBRARIES
116- NAMES jpeg
117- DOC "Found TegraJPEG library (libjpeg.so)"
118- PATHS /usr/lib/arm-linux-gnueabihf/tegra
119- NO_DEFAULT_PATH
120- )
121-
12219IF (TegraJPEG_INCLUDE_DIRS AND TegraJPEG_LIBRARIES)
12320 INCLUDE (CheckCSourceCompiles)
12421 set (CMAKE_REQUIRED_INCLUDES ${TegraJPEG_INCLUDE_DIRS} )
12522 set (CMAKE_REQUIRED_LIBRARIES ${TegraJPEG_LIBRARIES} )
126- check_c_source_compiles("#include <stdio.h>\n #include <nv_headers /jpeglib.h>\n int main() { struct jpeg_decompress_struct d; jpeg_create_decompress(&d); d.jpegTegraMgr = 0; d.input_frame_buf = 0; return 0; }" TegraJPEG_WORKS)
23+ check_c_source_compiles("#include <stdio.h>\n #include <libjpeg-8b /jpeglib.h>\n int main() { struct jpeg_decompress_struct d; jpeg_create_decompress(&d); d.jpegTegraMgr = 0; d.input_frame_buf = 0; return 0; }" TegraJPEG_WORKS)
12724 set (CMAKE_REQUIRED_INCLUDES)
12825 set (CMAKE_REQUIRED_LIBRARIES)
12926ENDIF ()
13027
13128INCLUDE (FindPackageHandleStandardArgs)
13229FIND_PACKAGE_HANDLE_STANDARD_ARGS(TegraJPEG FOUND_VAR TegraJPEG_FOUND
133- REQUIRED_VARS TegraJPEG_LIBRARIES TegraJPEG_INCLUDE_DIRS TegraJPEG_L4T_OK TegraJPEG_DRIVER_OK TegraJPEG_WORKS)
30+ REQUIRED_VARS TegraJPEG_LIBRARIES TegraJPEG_INCLUDE_DIRS TegraJPEG_WORKS)
0 commit comments