cmake_minimum_required(VERSION 3.5)
|
|
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -DEIGEN_MAX_ALIGN_BYTES=32 -DEIGEN_DONT_VECTORIZE -fPIC -march=native -DGPU -DCUDNN -DOPENCV -g -W -O0 -pthread -DS_DEBUG")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -DEIGEN_MAX_ALIGN_BYTES=32 -DEIGEN_DONT_VECTORIZE -fPIC -march=native -DGPU -DCUDNN -DOPENCV -g -W -O0 -pthread -DS_DEBUG -DS_SERVER")
|
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -DEIGEN_MAX_ALIGN_BYTES=32 -DEIGEN_DONT_VECTORIZE -fPIC -lm -march=native -DGPU -DCUDNN -DOPENCV -g -W -O0 -pthread -Wl,--no-as-needed")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -DGPU -DCUDNN -DOPENCV -g -lm -fPIC -W -O0 -Wl,--no-as-needed -DS_DEBUG -DS_SERVER") # 编译C脚本时调用GPU环境信息
|
#set(CMAKE_C_FLAGS "-fvisibility=hidden")
|
#set(CMAKE_CXX_FLAGS "-fvisibility=hidden")
|
|
#项目名称/工程名
|
project(baseDetector)
|
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build)
|
#设置c++编译器
|
|
set(CMAKE_CXX_STANDARD 14)
|
#set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
#set(CMAKE_CXX_EXTENSIONS OFF)
|
|
#set(CMAKE_BUILD_TYPE debug)
|
add_compile_options(-fPIC -ldl -lm -g -Wall -Wshadow -Wno-sign-compare -w -pthread)
|
#add_definitions(-DDEBUG_ERR -DDEBUG_INFO)
|
#add_definitions(-DDEBUG)
|
#add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
|
|
|
file(GLOB_RECURSE CURRENT_HEADERS
|
./*.h
|
./lib/*.h
|
./lib/core/*.h
|
./lib/utils/*.h
|
./lib/detecter_tools/*.h
|
./lib/detecter_tools/extra/*.h
|
./lib/detecter_tools/*.hpp
|
./lib/detecter_tools/*.cuh
|
./lib/detecter_tools/darknet/*.hpp
|
./lib/detecter_tools/darknet/*.cuh)
|
|
# 检索查找文件信息
|
file(GLOB sources
|
./*.cpp
|
./lib/*.cpp
|
./lib/core/*.cpp
|
./lib/utils/*.cpp
|
./lib/detecter_tools/*.cpp
|
./lib/detecter_tools/*.cpp
|
./lib/detecter_tools/darknet/*.c
|
./lib/detecter_tools/darknet/*.cpp
|
./lib/detecter_tools/darknet/*.cu)
|
|
source_group("Include" FILES ${CURRENT_HEADERS})
|
source_group("Source" FILES ${sources})
|
|
|
#cudaS
|
find_package(CUDA REQUIRED)
|
|
#message("-- CUDA version:$(CUDA_VERSION)")
|
|
# 设置环境的模型查找,如果CUDA版本大于9,则执行CUDA环境的模型查找
|
if(CUDA_VERSION_MAJOR GREATER 9)
|
message("-- CUDA ${CUDA_VERSION_MAJOR} detected")
|
set(
|
CUDA_NVCC_FLAGS
|
${CUDA_NVCC_FLAGS};
|
-gencode arch=compute_61,code=sm_61 -std=c++14# 不同GPU有不同的算力指数,可查看算力表
|
)
|
set(CUDA_NVCC_FLAGS_RELWITHDEBINFO "--device-debug;-lineinfo")
|
#find_package(OpenCV REQUIRED) # 查找系统的默认opencv环境
|
#message(${OpenCV_LIBS})
|
endif()
|
|
|
# set(OPENCV_DIR /data/disk2/opt/01_opencv/opencv3.4.8)
|
set(OPENCV_DIR /data/disk2/opt/01_opencv/opencv2.4.13)
|
|
link_directories(/usr/local/cuda-10.0/lib64)
|
#link_directories(/usr/local/lib)
|
|
SET(LIBS
|
gomp
|
nvToolsExt
|
opencv_core
|
opencv_highgui
|
# opencv_imgcodecs
|
opencv_imgproc
|
# opencv_videoio
|
opencv_video
|
opencv_calib3d
|
opencv_features2d
|
opencv_flann
|
cublas
|
stdc++fs #设置-lstdc++fs 新链接器选项,防止std等gcc库调用不到
|
curand
|
cuda
|
cudnn
|
jsoncpp
|
)
|
|
# 将源码目录保存到变量中
|
#aux_source_directory(./src DIR_SRCS) # 搜索当前目录下的所有.cpp文件
|
#add_library(demo ${SRC_LIST}) #明确指定包含哪些源文件
|
|
include_directories(/usr/local/cuda-10.0/include)
|
include_directories(".")
|
include_directories("./lib")
|
include_directories("./lib/core")
|
include_directories("./lib/detecter_tools")
|
include_directories("./lib/utils")
|
#include_directories("/usr/include/x86_64-linux-gnu/")
|
#include_directories("/usr/include/json/")
|
#include_directories("/usr/include")
|
#include_directories("/usr/local/include/")
|
include_directories(${OPENCV_DIR}/include)
|
|
#设置链接库搜索目录,项目中lib路径
|
link_directories(${PYTORCH_DIR}/lib) #动态链接库目录/bazel-bin/tensorflow
|
#link_directories(/usr/local/lib)
|
link_directories(${OPENCV_DIR}/lib)
|
#link_directories(/usr/lib/x86_64-linux-gnu/)
|
link_directories(/home/scheaven/anaconda3/lib/)
|
|
|
#添加要编译的可执行文件
|
#cuda_add_executable(${PROJECT_NAME}
|
|
cuda_add_executable(${PROJECT_NAME} main.cpp ${sources} ${CURRENT_HEADERS})
|
#cuda_add_library(${PROJECT_NAME} SHARED ${sources} ${CURRENT_HEADERS})
|
|
#设置 target 需要链接的库
|
target_link_libraries(${PROJECT_NAME} ${LIBS})
|