parent
0ad028c206
commit
53da84d953
2 changed files with 152 additions and 0 deletions
@ -0,0 +1,138 @@ |
|||||||
|
# This module defines the following variables: |
||||||
|
# |
||||||
|
# :: |
||||||
|
# |
||||||
|
# TensorRT_INCLUDE_DIRS |
||||||
|
# TensorRT_LIBRARIES |
||||||
|
# TensorRT_FOUND |
||||||
|
# |
||||||
|
# :: |
||||||
|
# |
||||||
|
# TensorRT_VERSION_STRING - version (x.y.z) |
||||||
|
# TensorRT_VERSION_MAJOR - major version (x) |
||||||
|
# TensorRT_VERSION_MINOR - minor version (y) |
||||||
|
# TensorRT_VERSION_PATCH - patch version (z) |
||||||
|
# |
||||||
|
# Hints |
||||||
|
# ^^^^^ |
||||||
|
# A user may set ``TensorRT_ROOT`` to an installation root to tell this module where to look. |
||||||
|
# |
||||||
|
set(_TensorRT_SEARCHES) |
||||||
|
|
||||||
|
if(TensorRT_ROOT) |
||||||
|
set(_TensorRT_SEARCH_ROOT PATHS ${TensorRT_ROOT} NO_DEFAULT_PATH) |
||||||
|
list(APPEND _TensorRT_SEARCHES _TensorRT_SEARCH_ROOT) |
||||||
|
endif() |
||||||
|
|
||||||
|
# appends some common paths |
||||||
|
set(_TensorRT_SEARCH_NORMAL |
||||||
|
PATHS "/usr" |
||||||
|
) |
||||||
|
list(APPEND _TensorRT_SEARCHES _TensorRT_SEARCH_NORMAL) |
||||||
|
|
||||||
|
# Include dir |
||||||
|
foreach(search ${_TensorRT_SEARCHES}) |
||||||
|
find_path(TensorRT_INCLUDE_DIR NAMES NvInfer.h ${${search}} PATH_SUFFIXES include) |
||||||
|
endforeach() |
||||||
|
|
||||||
|
if(NOT TensorRT_LIBRARY) |
||||||
|
foreach(search ${_TensorRT_SEARCHES}) |
||||||
|
find_library(TensorRT_LIBRARY NAMES nvinfer ${${search}} PATH_SUFFIXES lib) |
||||||
|
if(NOT TensorRT_LIB_DIR) |
||||||
|
get_filename_component(TensorRT_LIB_DIR ${TensorRT_LIBRARY} DIRECTORY) |
||||||
|
endif () |
||||||
|
endforeach() |
||||||
|
endif() |
||||||
|
|
||||||
|
if(NOT TensorRT_nvinfer_plugin_LIBRARY) |
||||||
|
foreach(search ${_TensorRT_SEARCHES}) |
||||||
|
find_library(TensorRT_nvinfer_plugin_LIBRARY NAMES nvinfer_plugin ${${search}} PATH_SUFFIXES lib) |
||||||
|
endforeach() |
||||||
|
endif() |
||||||
|
|
||||||
|
mark_as_advanced(TensorRT_INCLUDE_DIR) |
||||||
|
|
||||||
|
if(TensorRT_INCLUDE_DIR AND EXISTS "${TensorRT_INCLUDE_DIR}/NvInfer.h") |
||||||
|
if(EXISTS "${TensorRT_INCLUDE_DIR}/NvInferVersion.h") |
||||||
|
set(_VersionSearchFile "${TensorRT_INCLUDE_DIR}/NvInferVersion.h") |
||||||
|
else () |
||||||
|
set(_VersionSearchFile "${TensorRT_INCLUDE_DIR}/NvInfer.h") |
||||||
|
endif () |
||||||
|
file(STRINGS "${_VersionSearchFile}" TensorRT_MAJOR REGEX "^#define NV_TENSORRT_MAJOR [0-9]+.*$") |
||||||
|
file(STRINGS "${_VersionSearchFile}" TensorRT_MINOR REGEX "^#define NV_TENSORRT_MINOR [0-9]+.*$") |
||||||
|
file(STRINGS "${_VersionSearchFile}" TensorRT_PATCH REGEX "^#define NV_TENSORRT_PATCH [0-9]+.*$") |
||||||
|
|
||||||
|
string(REGEX REPLACE "^#define NV_TENSORRT_MAJOR ([0-9]+).*$" "\\1" TensorRT_VERSION_MAJOR "${TensorRT_MAJOR}") |
||||||
|
string(REGEX REPLACE "^#define NV_TENSORRT_MINOR ([0-9]+).*$" "\\1" TensorRT_VERSION_MINOR "${TensorRT_MINOR}") |
||||||
|
string(REGEX REPLACE "^#define NV_TENSORRT_PATCH ([0-9]+).*$" "\\1" TensorRT_VERSION_PATCH "${TensorRT_PATCH}") |
||||||
|
set(TensorRT_VERSION_STRING "${TensorRT_VERSION_MAJOR}.${TensorRT_VERSION_MINOR}.${TensorRT_VERSION_PATCH}") |
||||||
|
endif() |
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs) |
||||||
|
FIND_PACKAGE_HANDLE_STANDARD_ARGS(TensorRT REQUIRED_VARS TensorRT_LIBRARY TensorRT_INCLUDE_DIR VERSION_VAR TensorRT_VERSION_STRING) |
||||||
|
|
||||||
|
if(TensorRT_FOUND) |
||||||
|
set(TensorRT_INCLUDE_DIRS ${TensorRT_INCLUDE_DIR}) |
||||||
|
|
||||||
|
if(NOT TensorRT_LIBRARIES) |
||||||
|
set(TensorRT_LIBRARIES ${TensorRT_LIBRARY}) |
||||||
|
if (TensorRT_nvinfer_plugin_LIBRARY) |
||||||
|
list(APPEND TensorRT_LIBRARIES ${TensorRT_nvinfer_plugin_LIBRARY}) |
||||||
|
endif() |
||||||
|
endif() |
||||||
|
|
||||||
|
if(NOT TARGET TensorRT::TensorRT) |
||||||
|
add_library(TensorRT INTERFACE IMPORTED) |
||||||
|
add_library(TensorRT::TensorRT ALIAS TensorRT) |
||||||
|
endif() |
||||||
|
|
||||||
|
if(NOT TARGET TensorRT::nvinfer) |
||||||
|
add_library(TensorRT::nvinfer SHARED IMPORTED) |
||||||
|
if (WIN32) |
||||||
|
foreach(search ${_TensorRT_SEARCHES}) |
||||||
|
find_file(TensorRT_LIBRARY_DLL |
||||||
|
NAMES nvinfer.dll |
||||||
|
PATHS ${${search}} |
||||||
|
PATH_SUFFIXES bin |
||||||
|
) |
||||||
|
endforeach() |
||||||
|
|
||||||
|
set_target_properties(TensorRT::nvinfer PROPERTIES |
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${TensorRT_INCLUDE_DIRS}" |
||||||
|
IMPORTED_LOCATION "${TensorRT_LIBRARY_DLL}" |
||||||
|
IMPORTED_IMPLIB "${TensorRT_LIBRARY}" |
||||||
|
) |
||||||
|
else() |
||||||
|
set_target_properties(TensorRT::nvinfer PROPERTIES |
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${TensorRT_INCLUDE_DIRS}" |
||||||
|
IMPORTED_LOCATION "${TensorRT_LIBRARY}" |
||||||
|
) |
||||||
|
endif() |
||||||
|
target_link_libraries(TensorRT INTERFACE TensorRT::nvinfer) |
||||||
|
endif() |
||||||
|
|
||||||
|
if(NOT TARGET TensorRT::nvinfer_plugin AND TensorRT_nvinfer_plugin_LIBRARY) |
||||||
|
add_library(TensorRT::nvinfer_plugin SHARED IMPORTED) |
||||||
|
if (WIN32) |
||||||
|
foreach(search ${_TensorRT_SEARCHES}) |
||||||
|
find_file(TensorRT_nvinfer_plugin_LIBRARY_DLL |
||||||
|
NAMES nvinfer_plugin.dll |
||||||
|
PATHS ${${search}} |
||||||
|
PATH_SUFFIXES bin |
||||||
|
) |
||||||
|
endforeach() |
||||||
|
|
||||||
|
set_target_properties(TensorRT::nvinfer_plugin PROPERTIES |
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${TensorRT_INCLUDE_DIRS}" |
||||||
|
IMPORTED_LOCATION "${TensorRT_nvinfer_plugin_LIBRARY_DLL}" |
||||||
|
IMPORTED_IMPLIB "${TensorRT_nvinfer_plugin_LIBRARY}" |
||||||
|
) |
||||||
|
else() |
||||||
|
set_target_properties(TensorRT::nvinfer_plugin PROPERTIES |
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${TensorRT_INCLUDE_DIRS}" |
||||||
|
IMPORTED_LOCATION "${TensorRT_nvinfer_plugin_LIBRARY}" |
||||||
|
) |
||||||
|
endif() |
||||||
|
target_link_libraries(TensorRT INTERFACE TensorRT::nvinfer_plugin) |
||||||
|
endif() |
||||||
|
endif() |
@ -0,0 +1,14 @@ |
|||||||
|
|
||||||
|
function(print_var var) |
||||||
|
set(value "${${var}}") |
||||||
|
string(LENGTH "${value}" value_length) |
||||||
|
if(value_length GREATER 0) |
||||||
|
math(EXPR last_index "${value_length} - 1") |
||||||
|
string(SUBSTRING "${value}" ${last_index} ${last_index} last_char) |
||||||
|
endif() |
||||||
|
|
||||||
|
if(NOT "${last_char}" STREQUAL "\n") |
||||||
|
set(value "${value}\n") |
||||||
|
endif() |
||||||
|
message(STATUS "${var}:\n ${value}") |
||||||
|
endfunction() |
Loading…
Reference in new issue