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