1- find_path (TensorRT_INCLUDE_DIR
2- NAMES NvInfer.h)
1+ #
2+ # SPDX-FileCopyrightText: Copyright (c) 1993-2022 NVIDIA CORPORATION &
3+ # AFFILIATES. All rights reserved. SPDX-License-Identifier: Apache-2.0
4+ #
5+ # Licensed under the Apache License, Version 2.0 (the "License"); you may not
6+ # use this file except in compliance with the License. You may obtain a copy of
7+ # the License at
8+ #
9+ # http://www.apache.org/licenses/LICENSE-2.0
10+ #
11+ # Unless required by applicable law or agreed to in writing, software
12+ # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13+ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14+ # License for the specific language governing permissions and limitations under
15+ # the License.
16+ #
17+
18+ find_path (
19+ TensorRT_INCLUDE_DIR
20+ NAMES NvInfer.h
21+ PATHS ${TensorRT_WELL_KNOWN_ROOT} /include )
322
423function (_tensorrt_get_version)
524 unset (TensorRT_VERSION_STRING PARENT_SCOPE)
625 set (_hdr_file "${TensorRT_INCLUDE_DIR} /NvInferVersion.h" )
726
8- if (NOT EXISTS "${_hdr_file} " )
27+ if (NOT EXISTS "${_hdr_file} " )
928 return ()
10- endif ()
11-
12- file (STRINGS "${_hdr_file} " VERSION_STRINGS REGEX "#define NV_TENSORRT_.*" )
13-
14- foreach (TYPE MAJOR MINOR PATCH BUILD )
15- string (REGEX MATCH "NV_TENSORRT_${TYPE} [0-9]+" TRT_TYPE_STRING ${VERSION_STRINGS} )
16- string (REGEX MATCH "[0-9]+" TensorRT_VERSION_${TYPE} ${TRT_TYPE_STRING} )
17- endforeach (TYPE )
18-
19- set (TensorRT_VERSION_MAJOR ${TensorRT_VERSION_MAJOR} PARENT_SCOPE)
20- set (TensorRT_VERSION_MINOR ${TensorRT_VERSION_MINOR} PARENT_SCOPE)
21- set (TensorRT_VERSION_PATCH ${TensorRT_VERSION_PATCH} PARENT_SCOPE)
22-
23- set (TensorRT_VERSION_STRING "${TensorRT_VERSION_MAJOR} .${TensorRT_VERSION_MINOR} .${TensorRT_VERSION_PATCH} " PARENT_SCOPE)
29+ endif ()
30+
31+ file (STRINGS "${_hdr_file} " IS_10_11_NEW_MACRO REGEX "TRT_MAJOR_ENTERPRISE" )
32+ if (IS_10_11_NEW_MACRO)
33+ file (STRINGS "${_hdr_file} " VERSION_STRINGS
34+ REGEX "#define TRT_.+_ENTERPRISE.*" )
35+ foreach (TYPE MAJOR MINOR PATCH BUILD )
36+ string (REGEX MATCH "TRT_${TYPE} _ENTERPRISE [0-9]+" TRT_TYPE_STRING
37+ ${VERSION_STRINGS} )
38+ string (REGEX MATCH "[0-9]+" TensorRT_VERSION_${TYPE} ${TRT_TYPE_STRING} )
39+ endforeach (TYPE )
40+ else ()
41+ file (STRINGS "${_hdr_file} " VERSION_STRINGS REGEX "#define NV_TENSORRT_.*" )
42+ foreach (TYPE MAJOR MINOR PATCH BUILD )
43+ string (REGEX MATCH "NV_TENSORRT_${TYPE} [0-9]+" TRT_TYPE_STRING
44+ ${VERSION_STRINGS} )
45+ string (REGEX MATCH "[0-9]+" TensorRT_VERSION_${TYPE} ${TRT_TYPE_STRING} )
46+ endforeach (TYPE )
47+ endif ()
48+
49+ set (TensorRT_VERSION_MAJOR
50+ ${TensorRT_VERSION_MAJOR}
51+ PARENT_SCOPE)
52+ set (TensorRT_VERSION_STRING
53+ "${TensorRT_VERSION_MAJOR} .${TensorRT_VERSION_MINOR} .${TensorRT_VERSION_PATCH} .${TensorRT_VERSION_BUILD} "
54+ PARENT_SCOPE)
2455endfunction (_tensorrt_get_version)
2556
2657_tensorrt_get_version()
2758
2859macro (_tensorrt_find_dll VAR)
29- find_file (${VAR}
60+ find_file (
61+ ${VAR}
3062 NAMES ${ARGN}
3163 HINTS ${TensorRT_ROOT}
3264 PATH_SUFFIXES bin)
3365endmacro (_tensorrt_find_dll)
3466
35- find_library (TensorRT_LIBRARY
36- NAMES "nvinfer_${TensorRT_VERSION_MAJOR} " nvinfer)
67+ find_library (
68+ TensorRT_LIBRARY
69+ NAMES "nvinfer_${TensorRT_VERSION_MAJOR} " nvinfer
70+ PATHS ${TensorRT_WELL_KNOWN_ROOT} /lib)
3771
38- if (WIN32 )
39- _tensorrt_find_dll(TensorRT_DLL
40- "nvinfer_ ${TensorRT_VERSION_MAJOR} .dll" nvinfer.dll)
41- endif ()
72+ if (WIN32 )
73+ _tensorrt_find_dll(TensorRT_DLL "nvinfer_ ${TensorRT_VERSION_MAJOR} .dll"
74+ nvinfer.dll)
75+ endif ()
4276
43- if (TensorRT_LIBRARY)
44- set (TensorRT_LIBRARIES
45- ${TensorRT_LIBRARIES}
46- ${TensorRT_LIBRARY} )
47- endif (TensorRT_LIBRARY)
77+ if (TensorRT_LIBRARY)
78+ set (TensorRT_LIBRARIES ${TensorRT_LIBRARIES} ${TensorRT_LIBRARY} )
79+ endif (TensorRT_LIBRARY)
4880
49- if (TensorRT_FIND_COMPONENTS)
81+ if (TensorRT_FIND_COMPONENTS)
5082 list (REMOVE_ITEM TensorRT_FIND_COMPONENTS "nvinfer" )
5183
52- if ("OnnxParser" IN_LIST TensorRT_FIND_COMPONENTS)
53- find_path (TensorRT_OnnxParser_INCLUDE_DIR
54- NAMES NvOnnxParser.h)
55-
56- find_library (TensorRT_OnnxParser_LIBRARY
57- NAMES "nvonnxparser_${TensorRT_VERSION_MAJOR} " nvonnxparser)
58- if (TensorRT_OnnxParser_LIBRARY AND TensorRT_LIBRARIES)
59- set (TensorRT_LIBRARIES
60- ${TensorRT_LIBRARIES}
84+ if ("OnnxParser" IN_LIST TensorRT_FIND_COMPONENTS)
85+ find_path (
86+ TensorRT_OnnxParser_INCLUDE_DIR
87+ NAMES NvOnnxParser.h
88+ PATHS ${TensorRT_WELL_KNOWN_ROOT} /include )
89+
90+ find_library (
91+ TensorRT_OnnxParser_LIBRARY
92+ NAMES "nvonnxparser_${TensorRT_VERSION_MAJOR} " nvonnxparser
93+ PATHS ${TensorRT_WELL_KNOWN_ROOT} /lib)
94+ if (TensorRT_OnnxParser_LIBRARY AND TensorRT_LIBRARIES)
95+ set (TensorRT_LIBRARIES ${TensorRT_LIBRARIES}
6196 ${TensorRT_OnnxParser_LIBRARY} )
6297 set (TensorRT_OnnxParser_FOUND TRUE )
63- endif ()
64-
65- if (WIN32 )
66- _tensorrt_find_dll(TensorRT_OnnxParser_DLL
67- "nvonnxparser_${TensorRT_VERSION_MAJOR} .dll" nvonnxparser.dll)
68- endif ()
69- endif ()
70-
71- if ("Plugin" IN_LIST TensorRT_FIND_COMPONENTS)
72- find_path (TensorRT_Plugin_INCLUDE_DIR
73- NAMES NvInferPlugin.h)
74-
75- find_library (TensorRT_Plugin_LIBRARY
76- NAMES "nvinfer_plugin_${TensorRT_VERSION_MAJOR} " nvinfer_plugin)
77-
78- if (TensorRT_Plugin_LIBRARY AND TensorRT_LIBRARIES)
79- set (TensorRT_LIBRARIES
80- ${TensorRT_LIBRARIES}
81- ${TensorRT_Plugin_LIBRARY} )
98+ endif ()
99+
100+ if (WIN32 )
101+ _tensorrt_find_dll(
102+ TensorRT_OnnxParser_DLL "nvonnxparser_${TensorRT_VERSION_MAJOR} .dll"
103+ nvonnxparser.dll)
104+ endif ()
105+ endif ()
106+
107+ if ("Plugin" IN_LIST TensorRT_FIND_COMPONENTS)
108+ find_path (
109+ TensorRT_Plugin_INCLUDE_DIR
110+ NAMES NvInferPlugin.h
111+ PATHS ${TensorRT_WELL_KNOWN_ROOT} /include )
112+
113+ find_library (
114+ TensorRT_Plugin_LIBRARY
115+ NAMES "nvinfer_plugin_${TensorRT_VERSION_MAJOR} " nvinfer_plugin
116+ PATHS ${TensorRT_WELL_KNOWN_ROOT} /lib)
117+
118+ if (TensorRT_Plugin_LIBRARY AND TensorRT_LIBRARIES)
119+ set (TensorRT_LIBRARIES ${TensorRT_LIBRARIES} ${TensorRT_Plugin_LIBRARY} )
82120 set (TensorRT_Plugin_FOUND TRUE )
83- endif ()
121+ endif ()
84122
85- if (WIN32 )
86- _tensorrt_find_dll(TensorRT_Plugin_DLL
87- "nvinfer_plugin_${TensorRT_VERSION_MAJOR} .dll" nvinfer_plugin.dll)
88- endif ()
89- endif ()
90- endif ()
123+ if (WIN32 )
124+ _tensorrt_find_dll(
125+ TensorRT_Plugin_DLL "nvinfer_plugin_${TensorRT_VERSION_MAJOR} .dll"
126+ nvinfer_plugin.dll)
127+ endif ()
128+ endif ()
129+ endif ()
91130
92131include (FindPackageHandleStandardArgs)
93- find_package_handle_standard_args(TensorRT
132+ find_package_handle_standard_args(
133+ TensorRT
94134 FOUND_VAR TensorRT_FOUND
95135 REQUIRED_VARS TensorRT_LIBRARY TensorRT_LIBRARIES TensorRT_INCLUDE_DIR
96136 VERSION_VAR TensorRT_VERSION_STRING
97137 HANDLE_COMPONENTS)
98138
99- add_library (TensorRT::NvInfer SHARED IMPORTED )
100- target_include_directories (TensorRT::NvInfer SYSTEM INTERFACE "${TensorRT_INCLUDE_DIR} " )
101- if (WIN32 )
102- set_property (TARGET TensorRT::NvInfer PROPERTY IMPORTED_LOCATION "${TensorRT_DLL} " )
103- set_property (TARGET TensorRT::NvInfer PROPERTY IMPORTED_IMPLIB "${TensorRT_LIBRARY} " )
104- else ()
105- set_property (TARGET TensorRT::NvInfer PROPERTY IMPORTED_LOCATION "${TensorRT_LIBRARY} " )
106- endif ()
107-
108- if ("OnnxParser" IN_LIST TensorRT_FIND_COMPONENTS)
139+ if (NOT TARGET TensorRT::NvInfer)
140+ add_library (TensorRT::NvInfer SHARED IMPORTED )
141+ target_include_directories (TensorRT::NvInfer SYSTEM
142+ INTERFACE "${TensorRT_INCLUDE_DIR} " )
143+ if (WIN32 )
144+ set_property (TARGET TensorRT::NvInfer PROPERTY IMPORTED_LOCATION
145+ "${TensorRT_DLL} " )
146+ set_property (TARGET TensorRT::NvInfer PROPERTY IMPORTED_IMPLIB
147+ "${TensorRT_LIBRARY} " )
148+ else ()
149+ set_property (TARGET TensorRT::NvInfer PROPERTY IMPORTED_LOCATION
150+ "${TensorRT_LIBRARY} " )
151+ endif ()
152+ endif ()
153+
154+ if (NOT TARGET TensorRT::OnnxParser AND "OnnxParser" IN_LIST
155+ TensorRT_FIND_COMPONENTS)
109156 add_library (TensorRT::OnnxParser SHARED IMPORTED )
110- target_include_directories (TensorRT::OnnxParser SYSTEM INTERFACE "${TensorRT_OnnxParser_INCLUDE_DIR} " )
157+ target_include_directories (TensorRT::OnnxParser SYSTEM
158+ INTERFACE "${TensorRT_OnnxParser_INCLUDE_DIR} " )
111159 target_link_libraries (TensorRT::OnnxParser INTERFACE TensorRT::NvInfer)
112- if (WIN32 )
113- set_property (TARGET TensorRT::OnnxParser PROPERTY IMPORTED_LOCATION "${TensorRT_OnnxParser_DLL} " )
114- set_property (TARGET TensorRT::OnnxParser PROPERTY IMPORTED_IMPLIB "${TensorRT_OnnxParser_LIBRARY} " )
115- else ()
116- set_property (TARGET TensorRT::OnnxParser PROPERTY IMPORTED_LOCATION "${TensorRT_OnnxParser_LIBRARY} " )
117- endif ()
118- endif ()
119-
120- if ("Plugin" IN_LIST TensorRT_FIND_COMPONENTS)
160+ if (WIN32 )
161+ set_property (TARGET TensorRT::OnnxParser
162+ PROPERTY IMPORTED_LOCATION "${TensorRT_OnnxParser_DLL} " )
163+ set_property (TARGET TensorRT::OnnxParser
164+ PROPERTY IMPORTED_IMPLIB "${TensorRT_OnnxParser_LIBRARY} " )
165+ else ()
166+ set_property (TARGET TensorRT::OnnxParser
167+ PROPERTY IMPORTED_LOCATION "${TensorRT_OnnxParser_LIBRARY} " )
168+ endif ()
169+ endif ()
170+
171+ if (NOT TARGET TensorRT::Plugin AND "Plugin" IN_LIST TensorRT_FIND_COMPONENTS)
121172 add_library (TensorRT::Plugin SHARED IMPORTED )
122- target_include_directories (TensorRT::Plugin SYSTEM INTERFACE "${TensorRT_Plugin_INCLUDE_DIR} " )
173+ target_include_directories (TensorRT::Plugin SYSTEM
174+ INTERFACE "${TensorRT_Plugin_INCLUDE_DIR} " )
123175 target_link_libraries (TensorRT::Plugin INTERFACE TensorRT::NvInfer)
124- if (WIN32 )
125- set_property (TARGET TensorRT::Plugin PROPERTY IMPORTED_LOCATION "${TensorRT_Plugin_DLL} " )
126- set_property (TARGET TensorRT::Plugin PROPERTY IMPORTED_IMPLIB "${TensorRT_Plugin_LIBRARY} " )
127- else ()
128- set_property (TARGET TensorRT::Plugin PROPERTY IMPORTED_LOCATION "${TensorRT_Plugin_LIBRARY} " )
129- endif ()
130- endif ()
176+ if (WIN32 )
177+ set_property (TARGET TensorRT::Plugin PROPERTY IMPORTED_LOCATION
178+ "${TensorRT_Plugin_DLL} " )
179+ set_property (TARGET TensorRT::Plugin PROPERTY IMPORTED_IMPLIB
180+ "${TensorRT_Plugin_LIBRARY} " )
181+ else ()
182+ set_property (TARGET TensorRT::Plugin PROPERTY IMPORTED_LOCATION
183+ "${TensorRT_Plugin_LIBRARY} " )
184+ endif ()
185+ endif ()
131186
132187mark_as_advanced (TensorRT_INCLUDE_DIR TensorRT_LIBRARY TensorRT_LIBRARIES)
0 commit comments