代码拉取完成,页面将自动刷新
同步操作将从 10km/feature_se 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#cmake file for library fse(feature search engine)
#author:guyadong
#created:2018/04/13
include (CMakePackageConfigHelpers)
# define RUNTIME_INSTALL_DIR LIBRARY_INSTALL_DIR INCLUDE_INSTALL_DIR CONFIG_INSTALL_DIR
set (RUNTIME_INSTALL_DIR bin)
set (LIBRARY_INSTALL_DIR lib)
set (INCLUDE_INSTALL_DIR include)
if(WIN32 AND NOT CYGWIN)
set (CONFIG_INSTALL_DIR cmake)
else()
set (CONFIG_INSTALL_DIR ${LIBRARY_INSTALL_DIR}/cmake/fse)
endif()
find_package(Cassdk REQUIRED)
# 定义所有的源文件列表
set(_SOURCE_FILES
OverTableManager.cpp
HashMapCl.cpp
ICodeManager.cpp
ICodeManagerCPU.cpp
CodeManagerFactory.cpp
TopKCodeBean.cpp
feature_se.cpp
${DEPENDENT_SOURCE_DIR}/RWLock.cpp
${DEPENDENT_SOURCE_DIR}/ThreadPool.cpp
)
# 用于外部调用的公共头文件
set (_PUBLIC_HEADERS
config.h
feature_data_types.h
cross_define.h
feature_se.h
)
set (_FSE_TARGETS fse_cas_static fse_cas)
# CASSDK版本的CodeMgr实现
add_library(fse_cas_static STATIC ${_SOURCE_FILES})
add_library(fse_cas SHARED ${_SOURCE_FILES})
use_static_library(fse_cas)
if(MSVC)
add_library(fse_cas_static_mt STATIC ${_SOURCE_FILES})
with_mt_if_msvc(fse_cas_static_mt)
list(APPEND _FSE_TARGETS fse_cas_static_mt)
endif(MSVC)
#########################3
# 设置项目属性
function (define_fse_target target)
if(NOT TARGET ${target})
return ()
endif()
# MSVC Debug 编译时生成包含用于调试器的完整符号调试信息的 .obj 文件
# see also https://msdn.microsoft.com/zh-cn/library/958x11bc.aspx
target_compile_options(${target} PRIVATE $<$<AND:$<CXX_COMPILER_ID:MSVC>,$<CONFIG:Debug>>:/Z7>)
get_target_property(_type ${target} TYPE)
if(${_type} STREQUAL "SHARED_LIBRARY")
set(_is_shared TRUE)
set(_is_shared_str "1")
else()
set(_is_shared FALSE)
set(_is_shared_str "0")
endif()
target_include_directories (${target}
INTERFACE "$<INSTALL_INTERFACE:include>"
)
# 加入CASSDK 版本定义,编译库时必须加FSE_EXPORTS定义
target_compile_definitions (${target}
PRIVATE FSE_EXPORTS
PUBLIC FSE_IS_A_DLL=${_is_shared_str}
PUBLIC CASSDK
)
set_target_properties (${target} PROPERTIES
PUBLIC_HEADER "${_PUBLIC_HEADERS}"
VERSION ${PROJECT_VERSION}
SOVERSION ${PROJECT_VERSION_MAJOR}
DEBUG_POSTFIX _d
)
set(_link_libraries cassdk_THFeature)
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
list(APPEND _link_libraries -pthread -ldl)
endif()
target_link_libraries(${target} PRIVATE $<BUILD_INTERFACE:common_source>)
if(_is_shared)
target_link_libraries(${target} PRIVATE ${_link_libraries})
else()
target_link_libraries(${target} PUBLIC ${_link_libraries})
set_target_properties (${target} PROPERTIES INTERFACE_POSITION_INDEPENDENT_CODE ON
POSITION_INDEPENDENT_CODE ON)
endif()
endfunction()
#####################
define_fse_target(fse_cas_static)
define_fse_target(fse_cas_static_mt)
define_fse_target(fse_cas)
# 测试程序
add_executable(fctest EXCLUDE_FROM_ALL FeatureCompareSpeedTest.cpp)
add_executable(fctest2 EXCLUDE_FROM_ALL FeatureCompareVeracityTest.cpp)
target_link_libraries(fctest common_source)
target_link_libraries(fctest2 common_source $<$<CXX_COMPILER_ID:GNU>:-lpthread>)
target_compile_options(fctest2 PRIVATE $<$<CXX_COMPILER_ID:MSVC>:/utf-8>)
# ----------------------------------------------------------------------------
set (fse_DEPENDENCY "find_dependency(Cassdk)")
configure_package_config_file (${PROJECT_SOURCE_DIR}/cmake/config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/fse-config.cmake
INSTALL_DESTINATION ${CONFIG_INSTALL_DIR}
NO_CHECK_REQUIRED_COMPONENTS_MACRO)
write_basic_package_version_file (fse-config-version.cmake VERSION
${PROJECT_VERSION} COMPATIBILITY SameMajorVersion)
########安装脚本##########
install(TARGETS ${_FSE_TARGETS} EXPORT fse-targets
RUNTIME DESTINATION ${RUNTIME_INSTALL_DIR}
LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR}
ARCHIVE DESTINATION ${LIBRARY_INSTALL_DIR}
PUBLIC_HEADER DESTINATION ${INCLUDE_INSTALL_DIR}/feature_se
)
foreach(_target ${_FSE_TARGETS})
# 如果是动态库则安装对应的pdb文件
install(FILES $<$<STREQUAL:SHARED_LIBRARY,$<TARGET_PROPERTY:${_target},TYPE>>:$<TARGET_PDB_FILE:${_target}>> DESTINATION ${RUNTIME_INSTALL_DIR} OPTIONAL)
endforeach(_target)
install (FILES
${CMAKE_CURRENT_BINARY_DIR}/fse-config.cmake
${CMAKE_CURRENT_BINARY_DIR}/fse-config-version.cmake
DESTINATION ${CONFIG_INSTALL_DIR}
)
install(EXPORT fse-targets NAMESPACE gdface:: DESTINATION ${CONFIG_INSTALL_DIR})
# Cleanup temporary variables.
set(_PUBLIC_HEADERS)
set(_SOURCE_FILES)
set(_FSE_TARGETS)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。