Skip to content

Commit 85e77f5

Browse files
committed
chore: Bump version number to 6.0.0
1 parent 0bb1739 commit 85e77f5

File tree

3 files changed

+139
-104
lines changed

3 files changed

+139
-104
lines changed

CMakeLists.txt

Lines changed: 86 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,50 @@
11
# 设置项目
2-
cmake_minimum_required(VERSION 3.15.0) # 设置CMake的最低版本要求
3-
cmake_policy(SET CMP0091 NEW) # 允许在CMake 3.10+中自动设置项目名作为二进制目录名
4-
cmake_policy(SET CMP0146 OLD) # 忽略对find_package的过时警告
5-
project(TensorRT-YOLO VERSION 5.1.1 LANGUAGES CXX CUDA) # 定义项目名称、版本和使用的编程语言(C++和CUDA)
2+
cmake_minimum_required(VERSION 3.12)
3+
cmake_policy(SET CMP0091 NEW)
4+
project(TensorRT-YOLO VERSION 6.0.0 LANGUAGES CXX CUDA)
65

76
# 设置 C++ 标准
8-
set(CMAKE_CXX_STANDARD 17) # 设置C++标准为17
9-
set(CMAKE_CXX_STANDARD_REQUIRED ON) # 要求C++标准必须满足17
7+
set(CMAKE_CXX_STANDARD 17)
8+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
109

11-
# 添加编译规则
12-
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # 生成编译数据库,便于代码分析工具使用
10+
# 生成编译数据库,便于代码分析工具使用
11+
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
1312

1413
# 添加依赖项
15-
## CUDA
16-
find_package(CUDA REQUIRED) # 查找CUDA包
17-
set(CMAKE_CUDA_ARCHITECTURES native) # 自动检测最佳CUDA架构
18-
set(CUDA_PATH ${CUDA_TOOLKIT_ROOT_DIR}) # 缓存CUDA路径
19-
20-
## Pybind11
21-
set(PYBIND11_FINDPYTHON ON) # 开启寻找Python
22-
find_package(Python COMPONENTS Interpreter Development REQUIRED) # 查找Python解释器和开发组件
23-
find_package(pybind11 CONFIG REQUIRED) # 查找pybind11包
14+
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.18)
15+
find_package(CUDAToolkit REQUIRED)
16+
set(CUDA_INCLUDE_DIRS ${CUDAToolkit_INCLUDE_DIRS})
17+
set(CUDA_LIBRARIES ${CUDAToolkit_LIBRARIES})
18+
else()
19+
find_package(CUDA REQUIRED)
20+
endif()
21+
set(CMAKE_CUDA_ARCHITECTURES 89;86;75;70;61) # CUDA 架构版本 8.9, 8.6, 7.5, 7.0, 6.1
2422

2523
# 添加编译选项
26-
option(TENSORRT_PATH "TensorRT Path. Example: /usr/local/tensorrt" "") # 添加编译选项,用于指定TensorRT路径
27-
# 检查 TensorRT 路径是否已设置
24+
option(TENSORRT_PATH "TensorRT Path. Example: /usr/local/tensorrt" "")
2825
if(NOT TENSORRT_PATH)
29-
message(FATAL_ERROR "TensorRT path is not set. Please specify the TensorRT path.") # 如果未设置,则报错
26+
message(FATAL_ERROR "TensorRT path is not set. Please specify the TensorRT path.")
3027
endif()
3128

32-
# 添加公共配置
29+
# 添加选项:是否编译Python版本
30+
option(BUILD_PYTHON "Build Python bindings" OFF)
31+
if(BUILD_PYTHON)
32+
message(STATUS "Python bindings will be built.")
33+
34+
# Pybind11 依赖
35+
set(PYBIND11_FINDPYTHON ON)
36+
find_package(Python COMPONENTS Interpreter Development REQUIRED)
37+
find_package(pybind11 CONFIG REQUIRED)
38+
else()
39+
message(STATUS "Python bindings will NOT be built.")
40+
endif()
41+
42+
# 配置CUDA和TensorRT的函数
3343
function(configure_cuda_trt target)
34-
# 添加CUDA定义、包含目录、链接库
3544
target_compile_definitions(${target} PRIVATE ${CUDA_DEFINITIONS})
3645
target_include_directories(${target} PRIVATE ${CUDA_INCLUDE_DIRS})
3746
target_link_libraries(${target} PRIVATE ${CUDA_cudart_LIBRARY})
3847

39-
# 添加TensorRT的包含目录、库目录、链接库
4048
target_include_directories(${target} PRIVATE ${TENSORRT_PATH}/include)
4149
target_link_directories(${target} PRIVATE ${TENSORRT_PATH}/lib)
4250
if(MSVC AND EXISTS ${TENSORRT_PATH}/lib/nvinfer_10.dll)
@@ -46,66 +54,76 @@ function(configure_cuda_trt target)
4654
endif()
4755
endfunction()
4856

57+
# 添加源文件的函数
4958
function(add_compile_files target)
50-
# 添加头文件搜索路径
51-
include_directories(${PROJECT_SOURCE_DIR}/include)
59+
include_directories(${PROJECT_SOURCE_DIR})
5260
file(GLOB_RECURSE SOURCES
53-
${PROJECT_SOURCE_DIR}/source/deploy/core/*.cpp
54-
${PROJECT_SOURCE_DIR}/source/deploy/utils/*.cpp
55-
${PROJECT_SOURCE_DIR}/source/deploy/vision/*.cpp
56-
${PROJECT_SOURCE_DIR}/source/deploy/vision/*.cu
61+
${PROJECT_SOURCE_DIR}/deploy/core/*.cpp
62+
${PROJECT_SOURCE_DIR}/deploy/utils/*.cpp
63+
${PROJECT_SOURCE_DIR}/deploy/infer/*.cpp
64+
${PROJECT_SOURCE_DIR}/deploy/infer/*.cu
65+
${PROJECT_SOURCE_DIR}/deploy/model.cpp
5766
)
58-
# 添加源文件
59-
target_sources(${target} PRIVATE ${SOURCES})
67+
target_sources(${target} PRIVATE ${SOURCES})
6068
endfunction()
6169

70+
# 设置编译选项的函数
6271
function(set_compile_options target)
63-
6472
if(MSVC)
65-
target_compile_options(${target} PRIVATE $<$<CONFIG:Release>:-O2>) # 对于MSVC,在Release模式下使用-O2优化
66-
set_property(TARGET ${target} PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>") # 设置MSVC运行时库
73+
target_compile_options(${target} PRIVATE $<$<CONFIG:Release>:-O2>)
74+
set_property(TARGET ${target} PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
6775
else()
68-
target_compile_options(${target} PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-O3 -flto=auto>) # 对于非MSVC,使用-O3优化和自动LTO
69-
target_link_options(${target} PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-O3 -flto=auto>) # 链接时同样使用-O3优化和自动LTO
76+
target_compile_options(${target} PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-O3 -flto=auto>)
77+
target_link_options(${target} PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-O3 -flto=auto>)
7078
endif()
71-
7279
endfunction()
7380

7481
# 添加子目录
75-
add_subdirectory(${PROJECT_SOURCE_DIR}/plugin) # 添加插件目录
82+
add_subdirectory(${PROJECT_SOURCE_DIR}/plugin)
7683

7784
# 定义目标 deploy
78-
add_library(deploy SHARED) # 创建共享库
79-
add_compile_files(deploy) # 添加源文件
80-
configure_cuda_trt(deploy) # 配置CUDA和TensorRT
81-
set_compile_options(deploy) # 设置编译选项
82-
set_target_properties(deploy PROPERTIES OUTPUT_NAME deploy) # 设置输出名称
83-
if(MSVC)
84-
set_target_properties(deploy PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/lib) # 设置Release模式下输出目录
85-
set_target_properties(deploy PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/lib)
86-
set_target_properties(deploy PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/lib) # 设置Debug模式下输出目录
87-
set_target_properties(deploy PROPERTIES ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/lib)
88-
else()
89-
set_target_properties(deploy PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib) # 设置库文件输出目录
90-
endif()
85+
add_library(deploy SHARED)
86+
add_compile_files(deploy)
87+
configure_cuda_trt(deploy)
88+
set_compile_options(deploy)
89+
set_target_properties(deploy PROPERTIES OUTPUT_NAME deploy)
9190

92-
# 定义目标 pydeploy
93-
pybind11_add_module(pydeploy ${PROJECT_SOURCE_DIR}/source/deploy/pybind/deploy.cpp) # 创建pybind11模块
94-
add_compile_files(pydeploy) # 添加源文件
95-
configure_cuda_trt(pydeploy) # 配置CUDA和TensorRT
96-
set_compile_options(pydeploy) # 设置编译选项
97-
set_target_properties(pydeploy PROPERTIES OUTPUT_NAME pydeploy) # 设置输出名称
9891
if(MSVC)
99-
set_target_properties(pydeploy PROPERTIES LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/tensorrt_yolo/libs) # 设置Release模式下输出目录
100-
set_target_properties(pydeploy PROPERTIES LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/tensorrt_yolo/libs) # 设置Debug模式下输出目录
92+
set_target_properties(deploy PROPERTIES
93+
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/lib
94+
ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/lib
95+
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/lib
96+
ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/lib
97+
)
10198
else()
102-
set_target_properties(pydeploy PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/tensorrt_yolo/libs) # 设置库文件输出目录
99+
set_target_properties(deploy PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
103100
endif()
104-
set_target_properties(pydeploy PROPERTIES
105-
COMPILE_DEFINITIONS "CUDA_PATH=\"${CUDA_TOOLKIT_ROOT_DIR}\""
106-
COMPILE_DEFINITIONS "TENSORRT_PATH=\"${TENSORRT_PATH}\""
107-
) # 设置编译定义
108-
configure_file(
109-
${CMAKE_SOURCE_DIR}/tensorrt_yolo/c_lib_wrap.py.in
110-
${CMAKE_SOURCE_DIR}/tensorrt_yolo/c_lib_wrap.py
111-
) # 配置文件
101+
102+
# 定义目标 pydeploy(仅在BUILD_PYTHON为ON时编译)
103+
if(BUILD_PYTHON)
104+
pybind11_add_module(pydeploy ${PROJECT_SOURCE_DIR}/deploy/pybind.cpp)
105+
add_compile_files(pydeploy)
106+
configure_cuda_trt(pydeploy)
107+
set_compile_options(pydeploy)
108+
set_target_properties(pydeploy PROPERTIES OUTPUT_NAME pydeploy)
109+
110+
if(MSVC)
111+
set_target_properties(pydeploy PROPERTIES
112+
LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/python/tensorrt_yolo/libs
113+
LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/python/tensorrt_yolo/libs
114+
)
115+
else()
116+
set_target_properties(pydeploy PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/python/tensorrt_yolo/libs)
117+
endif()
118+
119+
set_target_properties(pydeploy PROPERTIES
120+
COMPILE_DEFINITIONS "CUDA_PATH=\"${CUDA_TOOLKIT_ROOT_DIR}\""
121+
COMPILE_DEFINITIONS "TENSORRT_PATH=\"${TENSORRT_PATH}\""
122+
)
123+
124+
# 配置文件
125+
configure_file(
126+
${CMAKE_SOURCE_DIR}/python/tensorrt_yolo/c_lib_wrap.py.in
127+
${CMAKE_SOURCE_DIR}/python/tensorrt_yolo/c_lib_wrap.py
128+
)
129+
endif()

python/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
# Project settings -----------------------------------------------------------------------------------------------------
66
[project]
7-
version = "5.1.1"
7+
version = "6.0.0"
88
readme = "README.md"
99
name = "tensorrt_yolo"
1010
requires-python = ">=3.8"

xmake.lua

Lines changed: 52 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,30 @@
11
-- 设置项目信息
22
set_project("TensorRT-YOLO")
3-
set_version("5.1.1")
3+
set_version("6.0.0")
44
set_languages("cxx17")
55
set_allowedplats("windows", "linux")
66

7-
-- 添加依赖
8-
add_requires("python", {system = true})
9-
add_requires("pybind11")
10-
117
-- 添加编译规则
128
add_rules("plugin.compile_commands.autoupdate", {outputdir = "build"})
139
add_rules("mode.release")
1410

11+
-- 全局添加 Python 和 pybind11 依赖
12+
add_requires("python", {system = true, optional = true}) -- 设置为可选依赖
13+
add_requires("pybind11", {optional = true}) -- 设置为可选依赖
14+
15+
-- 定义选项
16+
option("build_python")
17+
set_showmenu(true)
18+
set_description("Build Python bindings")
19+
set_default(false)
20+
on_check(function (option)
21+
if option:enabled() then
22+
-- 启用 Python 和 pybind11 依赖
23+
add_requires("python", {system = true})
24+
add_requires("pybind11")
25+
end
26+
end)
27+
1528
-- 定义选项
1629
option("tensorrt")
1730
set_showmenu(true)
@@ -36,21 +49,22 @@ end
3649
-- 定义一个函数来添加 CUDA 支持
3750
function configure_cuda(target)
3851
add_rules("cuda")
39-
add_cugencodes("native")
52+
add_cugencodes("sm_89", "sm_86", "sm_75", "sm_70", "sm_61")
4053
add_cuflags("-allow-unsupported-compiler")
4154
end
4255

4356
-- 定义一个函数来添加公共配置
4457
function common_config(target)
4558
-- 添加库目录
46-
add_includedirs("$(projectdir)/include")
59+
add_includedirs("$(projectdir)")
4760

4861
-- 添加文件
4962
add_files(
50-
"$(projectdir)/source/deploy/core/*.cpp",
51-
"$(projectdir)/source/deploy/utils/*.cpp",
52-
"$(projectdir)/source/deploy/vision/*.cpp",
53-
"$(projectdir)/source/deploy/vision/*.cu"
63+
"$(projectdir)/deploy/core/*.cpp",
64+
"$(projectdir)/deploy/utils/*.cpp",
65+
"$(projectdir)/deploy/infer/*.cpp",
66+
"$(projectdir)/deploy/infer/*.cu",
67+
"$(projectdir)/deploy/model.cpp"
5468
)
5569

5670
-- 添加 cuda
@@ -60,6 +74,7 @@ function common_config(target)
6074
configure_tensorrt(target)
6175
end
6276

77+
-- 包含插件
6378
includes("plugin/xmake.lua")
6479

6580
-- 定义目标
@@ -73,34 +88,36 @@ target("deploy")
7388
-- 公共配置
7489
common_config("deploy")
7590

76-
-- 定义目标
77-
target("pydeploy")
78-
-- 定义规则
79-
add_rules("python.library")
91+
-- 定义目标(仅在 build_python 为 true 时编译)
92+
if has_config("build_python") then
93+
target("pydeploy")
94+
-- 定义规则
95+
add_rules("python.library")
8096

81-
-- 添加依赖
82-
add_packages("pybind11")
97+
-- 添加依赖
98+
add_packages("pybind11")
8399

84-
-- 设置编译路径
85-
set_targetdir("$(projectdir)/tensorrt_yolo/libs")
100+
-- 设置编译路径
101+
set_targetdir("$(projectdir)/python/tensorrt_yolo/libs")
86102

87-
-- 公共配置
88-
common_config("pydeploy")
103+
-- 公共配置
104+
common_config("pydeploy")
89105

90-
-- 添加文件
91-
add_files("$(projectdir)/source/deploy/pybind/deploy.cpp")
106+
-- 添加文件
107+
add_files("$(projectdir)/deploy/pybind.cpp")
92108

93-
-- 在配置阶段查找 CUDA SDK
94-
local cuda
95-
on_load(function (target)
96-
import("detect.sdks.find_cuda")
97-
cuda = assert(find_cuda(nil, {verbose = true}), "Cuda SDK not found!")
109+
-- 在配置阶段查找 CUDA SDK
110+
local cuda
111+
on_load(function (target)
112+
import("detect.sdks.find_cuda")
113+
cuda = assert(find_cuda(nil, {verbose = true}), "Cuda SDK not found!")
98114

99-
-- 设置配置变量
100-
target:set("configvar", "CUDA_PATH", cuda.bindir)
101-
target:set("configvar", "TENSORRT_PATH", "$(tensorrt)")
115+
-- 设置配置变量
116+
target:set("configvar", "CUDA_PATH", cuda.bindir)
117+
target:set("configvar", "TENSORRT_PATH", "$(tensorrt)")
102118

103-
-- 设置配置目录和配置文件
104-
target:set("configdir", "$(projectdir)/tensorrt_yolo")
105-
target:add("configfiles", "$(projectdir)/tensorrt_yolo/c_lib_wrap.py.in")
106-
end)
119+
-- 设置配置目录和配置文件
120+
target:set("configdir", "$(projectdir)/python/tensorrt_yolo")
121+
target:add("configfiles", "$(projectdir)/python/tensorrt_yolo/c_lib_wrap.py.in")
122+
end)
123+
end

0 commit comments

Comments
 (0)