|
|
|
|
# 公共头文件(放置在最前面,所有后面定义的模块才都能找到)
|
|
|
|
|
SET(ArithTrkPubInc ${CMAKE_SOURCE_DIR}/public_include)
|
|
|
|
|
include_directories(${ArithTrkPubInc}) #引入算法公共头文件
|
|
|
|
|
|
|
|
|
|
# 添加测试目录
|
|
|
|
|
add_subdirectory(tests)
|
|
|
|
|
|
|
|
|
|
IF(WIN32)
|
|
|
|
|
# 添加vot_test
|
|
|
|
|
add_subdirectory(vot_test)
|
|
|
|
|
|
|
|
|
|
# 添加Console test
|
|
|
|
|
add_subdirectory(console_test)
|
|
|
|
|
ELSE(WIN32)
|
|
|
|
|
# 添加vot_test,默认关闭vot测试生产生成
|
|
|
|
|
# add_subdirectory(vot_test)
|
|
|
|
|
ENDIF(WIN32)
|
|
|
|
|
set(Common_DIR src/Common)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 添加日志模块
|
|
|
|
|
set(LIB_LOGGER_DIR src/Log)
|
|
|
|
|
IF(WIN32)
|
|
|
|
|
set(LIB_LOGGER libLogger)
|
|
|
|
|
ELSE(WIN32)
|
|
|
|
|
set(LIB_LOGGER Logger)
|
|
|
|
|
ENDIF(WIN32)
|
|
|
|
|
add_subdirectory(${LIB_LOGGER_DIR})
|
|
|
|
|
# 全局引用日志头文件,便于使用
|
|
|
|
|
include_directories(${LIB_LOGGER_DIR})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 添加红外检测器模块
|
|
|
|
|
set(LIB_DETECT_DIR src/Detect)
|
|
|
|
|
|
|
|
|
|
IF(WIN32)
|
|
|
|
|
set(LIB_DETECTOR libDetector)
|
|
|
|
|
ELSE(WIN32)
|
|
|
|
|
set(LIB_DETECTOR Detector)
|
|
|
|
|
ENDIF(WIN32)
|
|
|
|
|
|
|
|
|
|
add_subdirectory(${LIB_DETECT_DIR})
|
|
|
|
|
|
|
|
|
|
# 添加KCF模块
|
|
|
|
|
set(LIB_KCF_DIR src/KCF)
|
|
|
|
|
|
|
|
|
|
IF(WIN32)
|
|
|
|
|
set(LIB_GDKCF libKCFTracker)
|
|
|
|
|
ELSE(WIN32)
|
|
|
|
|
set(LIB_GDKCF KCFTracker)
|
|
|
|
|
ENDIF(WIN32)
|
|
|
|
|
|
|
|
|
|
add_subdirectory(${LIB_KCF_DIR})
|
|
|
|
|
|
|
|
|
|
# 添加Fast Match模块
|
|
|
|
|
set(LIB_FASTMATCH_DIR src/Matcher)
|
|
|
|
|
|
|
|
|
|
IF(WIN32)
|
|
|
|
|
set(LIB_GDFASTMATCHER libFastMatcher)
|
|
|
|
|
ELSE(WIN32)
|
|
|
|
|
set(LIB_GDFASTMATCHER FastMatcher)
|
|
|
|
|
ENDIF(WIN32)
|
|
|
|
|
|
|
|
|
|
add_subdirectory(${LIB_FASTMATCH_DIR})
|
|
|
|
|
|
|
|
|
|
# 添加TLD模块
|
|
|
|
|
set(LIB_TLD_DIR src/TLD)
|
|
|
|
|
|
|
|
|
|
IF(WIN32)
|
|
|
|
|
set(LIB_GDTLD libTLDTracker)
|
|
|
|
|
ELSE(WIN32)
|
|
|
|
|
set(LIB_GDTLD TLDTracker)
|
|
|
|
|
ENDIF(WIN32)
|
|
|
|
|
|
|
|
|
|
add_subdirectory(${LIB_TLD_DIR})
|
|
|
|
|
|
|
|
|
|
# 添加管道模块
|
|
|
|
|
set(LIB_PIPE_DIR src/PIPE)
|
|
|
|
|
|
|
|
|
|
IF(WIN32)
|
|
|
|
|
set(LIB_PIPE libMOT_PIPE)
|
|
|
|
|
ELSE(WIN32)
|
|
|
|
|
set(LIB_PIPE MOT_PIPE)
|
|
|
|
|
ENDIF(WIN32)
|
|
|
|
|
|
|
|
|
|
add_subdirectory(${LIB_PIPE_DIR})
|
|
|
|
|
|
|
|
|
|
# 添加SVM分类器(回归)模块
|
|
|
|
|
set(LIB_SVM_DIR src/SVM)
|
|
|
|
|
|
|
|
|
|
IF(WIN32)
|
|
|
|
|
set(LIB_SVM libSVM)
|
|
|
|
|
ELSE(WIN32)
|
|
|
|
|
set(LIB_SVM SVM)
|
|
|
|
|
ENDIF(WIN32)
|
|
|
|
|
|
|
|
|
|
add_subdirectory(${LIB_SVM_DIR})
|
|
|
|
|
set(ArithSrcDIR_MAIN "src") # 库源文件路径
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 获取编译时间
|
|
|
|
|
string(TIMESTAMP COMPILE_TIME 20%y_%m_%d-%H.%M.%S)
|
|
|
|
|
set(build_time ${COMPILE_TIME})
|
|
|
|
|
|
|
|
|
|
# 获取当前版本信息
|
|
|
|
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/Version.h.in ${CMAKE_CURRENT_SOURCE_DIR}/src/Version.h)
|
|
|
|
|
|
|
|
|
|
# 使用当前目录、Common目录源码构建
|
|
|
|
|
file(GLOB libsrcs ${ArithSrcDIR_MAIN}/*.cpp ${ArithSrcDIR_MAIN}/*.c ${ArithSrcDIR_MAIN}/*.h ${ArithSrcDIR_MAIN}/*.hpp)
|
|
|
|
|
file(GLOB CommonSrc ${Common_DIR}/*.cpp ${Common_DIR}/*.c ${Common_DIR}/*.h ${Common_DIR}/*.hpp ${ArithTrkPubInc}/*.h)
|
|
|
|
|
|
|
|
|
|
add_library(${LIB_TRACKER} SHARED ${libsrcs} ${CommonSrc}) # 构建算法库
|
|
|
|
|
|
|
|
|
|
# 设置包含路径
|
|
|
|
|
target_include_directories(${LIB_TRACKER} PUBLIC
|
|
|
|
|
${ArithTrkPubInc}
|
|
|
|
|
${ArithSrcDIR_MAIN}
|
|
|
|
|
${Common_DIR}
|
|
|
|
|
${LIB_SVM_DIR}
|
|
|
|
|
${LIB_DETECT_DIR}
|
|
|
|
|
${LIB_KCF_DIR}
|
|
|
|
|
${LIB_TLD_DIR}
|
|
|
|
|
${LIB_PIPE_DIR}
|
|
|
|
|
${LIB_FASTMATCH_DIR}
|
|
|
|
|
${LIB_LOGGER_DIR})
|
|
|
|
|
|
|
|
|
|
# 算法库链接
|
|
|
|
|
target_link_libraries(${LIB_TRACKER}
|
|
|
|
|
${LIB_DETECTOR} # 红外检测算法
|
|
|
|
|
${LIB_GDKCF} # KCF算法
|
|
|
|
|
${LIB_GDTLD} # TLD算法
|
|
|
|
|
${LIB_PIPE}
|
|
|
|
|
${LIB_GDFASTMATCHER}
|
|
|
|
|
${LIB_SVM}
|
|
|
|
|
${LIB_LOGGER}
|
|
|
|
|
${OpenCV_LIBS})
|
|
|
|
|
|
|
|
|
|
# # gcc编译器要求0警告
|
|
|
|
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
|
|
|
|
# 只导出指明的符号
|
|
|
|
|
add_definitions(-fvisibility=hidden)
|
|
|
|
|
|
|
|
|
|
# 警告:必须在如下编译器配置下编译通过
|
|
|
|
|
target_compile_options(${LIB_TRACKER} PRIVATE -Werror -Wreturn-type)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/Bin) # 输出算法库路径
|
|
|
|
|
|
|
|
|
|
# 安装
|
|
|
|
|
set(Install_DIR ${CMAKE_SOURCE_DIR}/install/${CMAKE_BUILD_TYPE}_${CMAKE_SYSTEM_PROCESSOR})
|
|
|
|
|
install(TARGETS ${LIB_TRACKER}
|
|
|
|
|
${LIB_DETECTOR} # 红外检测算法
|
|
|
|
|
${LIB_GDKCF} # KCF算法
|
|
|
|
|
${LIB_GDTLD} # TLD算法
|
|
|
|
|
${LIB_SVM}
|
|
|
|
|
${LIB_GDFASTMATCHER}
|
|
|
|
|
${LIB_PIPE} LIBRARY DESTINATION ${Install_DIR})
|
|
|
|
|
|
|
|
|
|
install(FILES ${ArithTrkPubInc}/*.h DESTINATION ${Install_DIR})
|
|
|
|
|
install(FILES ${ArithSrcDIR_MAIN}/NeoArithStandardDll.h DESTINATION ${Install_DIR})
|