RCLane_2D_Detection / cpp /CMakeLists.txt
huyluongngoc's picture
fix(RCLane) : fix option parallel mode
2206380
Raw
History Blame Contribute Delete
2.59 kB
cmake_minimum_required(VERSION 3.20)
project(rclane_runtime LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
endif()
find_path(TENSORRT_INCLUDE_DIR NvInferRuntime.h
HINTS "$ENV{TENSORRT_ROOT}/include"
PATHS /usr/include /usr/include/aarch64-linux-gnu /usr/local/TensorRT/include
)
find_library(TENSORRT_LIBRARY NAMES nvinfer libnvinfer.so.10
HINTS "$ENV{TENSORRT_ROOT}/lib" "$ENV{TENSORRT_ROOT}/lib64"
PATHS /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/aarch64-linux-gnu
)
find_path(CUDA_INCLUDE_DIR cuda_runtime_api.h
HINTS "$ENV{CUDA_HOME}/include" "$ENV{CUDA_PATH}/include"
PATHS /usr/local/cuda/include /usr/include
)
find_library(CUDART_LIBRARY NAMES cudart libcudart.so.13 libcudart.so.12
HINTS "$ENV{CUDA_HOME}/lib64" "$ENV{CUDA_PATH}/lib64"
PATHS /usr/local/cuda/lib64 /usr/lib/x86_64-linux-gnu
/usr/lib/aarch64-linux-gnu
)
foreach(required_path
TENSORRT_INCLUDE_DIR TENSORRT_LIBRARY CUDA_INCLUDE_DIR CUDART_LIBRARY)
if(NOT ${required_path})
message(FATAL_ERROR
"${required_path} was not found; pass -D${required_path}=..."
)
endif()
endforeach()
find_package(OpenMP REQUIRED)
add_executable(rclane_runtime
src/bev.cpp
src/decoder.cpp
src/main.cpp
src/preprocess.cpp
src/tensorrt_runner.cpp
)
target_include_directories(rclane_runtime PRIVATE
include
"${TENSORRT_INCLUDE_DIR}"
"${CUDA_INCLUDE_DIR}"
)
target_link_libraries(rclane_runtime PRIVATE
"${TENSORRT_LIBRARY}"
"${CUDART_LIBRARY}"
OpenMP::OpenMP_CXX
dl
)
target_compile_options(rclane_runtime PRIVATE
-O3 -march=native -Wall -Wextra -Wpedantic
)
get_filename_component(TENSORRT_LIBRARY_DIR "${TENSORRT_LIBRARY}" DIRECTORY)
get_filename_component(CUDART_LIBRARY_DIR "${CUDART_LIBRARY}" DIRECTORY)
set_target_properties(rclane_runtime PROPERTIES
BUILD_RPATH "${TENSORRT_LIBRARY_DIR};${CUDART_LIBRARY_DIR}"
)
include(CTest)
if(BUILD_TESTING)
add_executable(rclane_bev_modes_test
tests/bev_modes_test.cpp
src/bev.cpp
src/decoder.cpp
)
target_include_directories(rclane_bev_modes_test PRIVATE
include
"${TENSORRT_INCLUDE_DIR}"
)
target_link_libraries(rclane_bev_modes_test PRIVATE OpenMP::OpenMP_CXX)
target_compile_options(rclane_bev_modes_test PRIVATE
-O2 -Wall -Wextra -Wpedantic
)
add_test(NAME bev_modes COMMAND rclane_bev_modes_test)
endif()