cmake_minimum_required (VERSION 3.5) set(ModuleName "TY_CheckModule") #==============TensorRT 版本控制==================== # 查找 TensorRT 的头文件路径 find_path(TENSORRT_INCLUDE_DIR NAMES NvInfer.h PATHS /usr/include/x86_64-linux-gnu /usr/local/include ) if(NOT TENSORRT_INCLUDE_DIR) message(FATAL_ERROR "TensorRT headers not found") endif() message(STATUS "TENSORRT_INCLUDE_DIR: " ${TENSORRT_INCLUDE_DIR}) # 提取版本号 file(READ "${TENSORRT_INCLUDE_DIR}/NvInferVersion.h" TENSORRT_VERSION_CONTENTS) string(REGEX MATCH "#define NV_TENSORRT_MAJOR ([0-9]+)" _ ${TENSORRT_VERSION_CONTENTS}) set(TRT_MAJOR_VERSION ${CMAKE_MATCH_1}) message(STATUS "Found TensorRT v${TRT_MAJOR_VERSION}") # 检查版本 if(TRT_MAJOR_VERSION VERSION_LESS 10) message(STATUS " close //#define USE_TERNSORRT10_BIGMODEL") else() add_definitions(-DUSE_TERNSORRT10_BIGMODEL=${TEST_VALUE}) message(STATUS "#define USE_TERNSORRT10_BIGMODEL") endif() #==============TensorRT 版本控制==================== set(CMAKE_CXX_FLAGS "-Wno-error=deprecated-declarations -Wno-deprecated-declarations") find_package(CUDA REQUIRED) message(STATUS "cuda version: " ${CUDA_VERSION_STRING}) message(STATUS "cuda CUDA_INCLUDE_DIRS: " ${CUDA_INCLUDE_DIRS}) include_directories(${CUDA_INCLUDE_DIRS}) include_directories( /usr/include #/usr/local/cuda-11.3/targets/x86_64-linux/include ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/Utils ${CMAKE_CURRENT_SOURCE_DIR}/Algorithms ${PROJECT_SOURCE_DIR}/include/TensorRT ${PROJECT_SOURCE_DIR}/ConfigModule/include ${PROJECT_SOURCE_DIR}/Common/include ${PROJECT_SOURCE_DIR}/AIEngineModule/include ${PROJECT_SOURCE_DIR}/AIEngineModule/include_base ) link_directories( /usr/local/lib/ ) set(CMAKE_CUDA_ARCHITECTURES 86) set(CMAKE_CUDA_COMPILER "/usr/local/cuda/bin/nvcc") enable_language(CUDA) # 用set设置变量不能使用*.cpp file(GLOB_RECURSE SRC_LISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/*.c ${CMAKE_CURRENT_SOURCE_DIR}/Utils/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Utils/*.c ${CMAKE_CURRENT_SOURCE_DIR}/Algorithms/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Algorithms/*.c ${PROJECT_SOURCE_DIR}/AIEngineModule/src/*.cpp ${PROJECT_SOURCE_DIR}/AIEngineModule/src/*.c ${PROJECT_SOURCE_DIR}/AIEngineModule/src/*.cu ) add_library(FOG_Check SHARED ${SRC_LISTS}) target_link_libraries(FOG_Check nvinfer Config ${OpenCV_LIBS} ${CUDA_LIBRARIES} ) set(ModuleName "") # make install 安装到/usr/local下 # 自定义安装前缀 set(CMAKE_INSTALL_PREFIX /usr/local/fog CACHE PATH "Install path prefix" FORCE) set(HEADER_FILES include/ImgCheckBase.h include/ImgCheckConfig.h) # 安装动态库 install(TARGETS FOG_Check LIBRARY DESTINATION lib # 安装到 CMAKE_INSTALL_PREFIX/lib ARCHIVE DESTINATION lib/static RUNTIME DESTINATION bin PUBLIC_HEADER DESTINATION include) # 安装到 CMAKE_INSTALL_PREFIX/include # 安装头文件 install(FILES ${HEADER_FILES} DESTINATION include)