204 lines
6.3 KiB
CMake
204 lines
6.3 KiB
CMake
# cmake/ThirdPartyDeps.cmake
|
|||
|
|
|
||
|
|
message(STATUS ">>> 正在注册全局第三方 INTERFACE 目标...")
|
||
|
|
|
||
|
|
# ==========================================
|
||
|
|
# 内部全局头文件
|
||
|
|
# ==========================================
|
||
|
|
# 定义一个全局的内部接口目标,专门管理公共头文件
|
||
|
|
add_library(ShsGlobalIncludes INTERFACE)
|
||
|
|
target_include_directories(ShsGlobalIncludes INTERFACE
|
||
|
|
"${CMAKE_SOURCE_DIR}/inc"
|
||
|
|
)
|
||
|
|
|
||
|
|
# ==========================================
|
||
|
|
# SQLite3
|
||
|
|
# ==========================================
|
||
|
|
add_library(ThirdParty::SQLite3 UNKNOWN IMPORTED)
|
||
|
|
set_target_properties(ThirdParty::SQLite3 PROPERTIES
|
||
|
|
IMPORTED_LOCATION "sqlite3_x64.lib"
|
||
|
|
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/inc"
|
||
|
|
INTERFACE_LINK_DIRECTORIES "${DEP_LIB_ROOT}/pub"
|
||
|
|
)
|
||
|
|
|
||
|
|
# ==========================================
|
||
|
|
# cURL
|
||
|
|
# ==========================================
|
||
|
|
add_library(ThirdParty_cURL INTERFACE)
|
||
|
|
target_include_directories(ThirdParty_cURL INTERFACE "${DEP_INC_ROOT}/curl")
|
||
|
|
target_link_directories(ThirdParty_cURL INTERFACE "${DEP_LIB_ROOT}/curl/${CMAKE_GENERATOR_TOOLSET}")
|
||
|
|
|
||
|
|
add_library(ThirdParty::cURL ALIAS ThirdParty_cURL)
|
||
|
|
|
||
|
|
# ==========================================
|
||
|
|
# ObjectARX
|
||
|
|
# ==========================================
|
||
|
|
set(CURRENT_ARX_SDK "${CAD_SDK_ROOT}/R${CAD_SDK_VERSION}.${CAD_SDK_SUBVERSION}")
|
||
|
|
|
||
|
|
add_library(ThirdParty_ARX INTERFACE)
|
||
|
|
# 保存 头文件目录 列表
|
||
|
|
set(INC_DIRS
|
||
|
|
"${CURRENT_ARX_SDK}/inc"
|
||
|
|
"${CURRENT_ARX_SDK}/inc-x64"
|
||
|
|
"${CURRENT_ARX_SDK}/utils/amodeler/inc"
|
||
|
|
"${CURRENT_ARX_SDK}/utils/Atil/inc"
|
||
|
|
"${CURRENT_ARX_SDK}/utils/brep/inc"
|
||
|
|
"${CURRENT_ARX_SDK}/utils/HlrApi/inc"
|
||
|
|
)
|
||
|
|
# 保存 lib文件的目录 列表
|
||
|
|
set(LIB_DIRS
|
||
|
|
"${CURRENT_ARX_SDK}/lib-x64"
|
||
|
|
"${CURRENT_ARX_SDK}/utils/amodeler/lib-x64"
|
||
|
|
"${CURRENT_ARX_SDK}/utils/Atil/lib-x64"
|
||
|
|
"${CURRENT_ARX_SDK}/utils/brep/lib-x64"
|
||
|
|
"${CURRENT_ARX_SDK}/utils/HlrApi/lib-x64"
|
||
|
|
)
|
||
|
|
# 需要依赖的库文件
|
||
|
|
set(ARX_LIBS
|
||
|
|
acad.lib
|
||
|
|
accore.lib
|
||
|
|
rxapi.lib
|
||
|
|
acgiapi.lib
|
||
|
|
axdb.lib
|
||
|
|
aecmodeler.lib)
|
||
|
|
|
||
|
|
list(APPEND ARX_LIBS
|
||
|
|
acdb${CAD_SDK_VERSION}.lib
|
||
|
|
acge${CAD_SDK_VERSION}.lib
|
||
|
|
acISMobj${CAD_SDK_VERSION}.lib
|
||
|
|
adui${CAD_SDK_VERSION}.lib
|
||
|
|
acui${CAD_SDK_VERSION}.lib
|
||
|
|
ac1st${CAD_SDK_VERSION}.lib
|
||
|
|
acgex${CAD_SDK_VERSION}.lib
|
||
|
|
acbr${CAD_SDK_VERSION}.lib)
|
||
|
|
|
||
|
|
if (CAD_SDK_VERSION GREATER 19)
|
||
|
|
list(APPEND ARX_LIBS
|
||
|
|
acdrawbridge.lib)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
if (CAD_SDK_VERSION GREATER 23)
|
||
|
|
list(APPEND ARX_LIBS
|
||
|
|
acpal.lib
|
||
|
|
acgeoment.lib)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
# 保存头文件目录列表 (你的 INC_DIRS 保持不变)
|
||
|
|
target_include_directories(ThirdParty_ARX INTERFACE ${INC_DIRS})
|
||
|
|
|
||
|
|
# 保存库文件目录列表 (你的 LIB_DIRS 保持不变)
|
||
|
|
target_link_directories(ThirdParty_ARX INTERFACE ${LIB_DIRS})
|
||
|
|
|
||
|
|
# 🌟 这里的 ARX_LIBS 是个列表,直接扔给 link_libraries 就行了!
|
||
|
|
target_link_libraries(ThirdParty_ARX INTERFACE ${ARX_LIBS})
|
||
|
|
|
||
|
|
# 穿上马甲
|
||
|
|
add_library(ThirdParty::ARX ALIAS ThirdParty_ARX)
|
||
|
|
|
||
|
|
# ==========================================
|
||
|
|
# ZW ZRX
|
||
|
|
# ==========================================
|
||
|
|
set(CURRENT_ZRX_SDK "${CAD_SDK_ROOT}/Z${CAD_SDK_VERSION}")
|
||
|
|
add_library(ThirdParty_ZRX INTERFACE)
|
||
|
|
|
||
|
|
if (CAD_SDK_VERSION LESS 2025)
|
||
|
|
# 保存 头文件目录 列表
|
||
|
|
set(INC_DIRS_Z
|
||
|
|
"${CURRENT_ZRX_SDK}/arxport"
|
||
|
|
"${CURRENT_ZRX_SDK}/arxport/arxport/pal/api"
|
||
|
|
|
||
|
|
"${CURRENT_ZRX_SDK}/inc"
|
||
|
|
"${CURRENT_ZRX_SDK}/inc/arxport/pal/api"
|
||
|
|
|
||
|
|
"${CURRENT_ZRX_SDK}/utils/amodeler/inc"
|
||
|
|
"${CURRENT_ZRX_SDK}/utils/amodeler/arxport"
|
||
|
|
|
||
|
|
"${CURRENT_ZRX_SDK}/utils/ztil/inc"
|
||
|
|
"${CURRENT_ZRX_SDK}/utils/ztil/arxport"
|
||
|
|
|
||
|
|
"${CURRENT_ZRX_SDK}/utils/brep/inc"
|
||
|
|
"${CURRENT_ZRX_SDK}/utils/brep/arxport"
|
||
|
|
|
||
|
|
"${CURRENT_ZRX_SDK}/utils/hlr/inc"
|
||
|
|
"${CURRENT_ZRX_SDK}/utils/hlr/arxport"
|
||
|
|
)
|
||
|
|
# 保存 lib文件的目录 列表
|
||
|
|
set(LIB_DIRS_Z
|
||
|
|
"${CURRENT_ZRX_SDK}/lib-x64"
|
||
|
|
"${CURRENT_ZRX_SDK}/utils/amodeler/lib-x64"
|
||
|
|
"${CURRENT_ZRX_SDK}/utils/ztil/lib-x64"
|
||
|
|
"${CURRENT_ZRX_SDK}/utils/brep/lib-x64"
|
||
|
|
"${CURRENT_ZRX_SDK}/utils/hlr/lib-x64"
|
||
|
|
)
|
||
|
|
else() # 大于2024版本,库文件重新调整,所有依赖都在根目录的arxport下
|
||
|
|
set (ZRX_SDK_ARXPORT "${CURRENT_ZRX_SDK}/arxport")
|
||
|
|
set(INC_DIRS_Z
|
||
|
|
"${ZRX_SDK_ARXPORT}/inc"
|
||
|
|
"${ZRX_SDK_ARXPORT}/inc-x64"
|
||
|
|
|
||
|
|
"${ZRX_SDK_ARXPORT}/utils/amodeler/inc"
|
||
|
|
|
||
|
|
"${ZRX_SDK_ARXPORT}/utils/atil/inc"
|
||
|
|
|
||
|
|
"${ZRX_SDK_ARXPORT}/utils/brep/inc"
|
||
|
|
|
||
|
|
"${ZRX_SDK_ARXPORT}/utils/hlrapi/inc"
|
||
|
|
)
|
||
|
|
# 保存 lib文件的目录 列表
|
||
|
|
set(LIB_DIRS_Z
|
||
|
|
"${ZRX_SDK_ARXPORT}/lib-x64"
|
||
|
|
"${ZRX_SDK_ARXPORT}/utils/amodeler/lib-x64"
|
||
|
|
"${ZRX_SDK_ARXPORT}/utils/atil/lib-x64"
|
||
|
|
"${ZRX_SDK_ARXPORT}/utils/brep/lib-x64"
|
||
|
|
"${ZRX_SDK_ARXPORT}/utils/hlrapi/lib-x64"
|
||
|
|
)
|
||
|
|
endif()
|
||
|
|
# 需要依赖的库文件
|
||
|
|
set(ARX_LIBS_Z
|
||
|
|
ZwBase.lib
|
||
|
|
ZWCAD.lib
|
||
|
|
ZwAuto.lib
|
||
|
|
ZwRx.lib
|
||
|
|
ZwZrx.lib
|
||
|
|
ZwGeometry.lib
|
||
|
|
ZwDatabase.lib
|
||
|
|
ZwDatabaseMgd.lib
|
||
|
|
ZwdUI.lib
|
||
|
|
ZwGs.lib
|
||
|
|
ZwTc.lib
|
||
|
|
ZwUI.lib
|
||
|
|
ZwBrep.lib
|
||
|
|
ZwAECModeler.lib)
|
||
|
|
|
||
|
|
# 保存头文件目录列表 (你的 INC_DIRS 保持不变)
|
||
|
|
target_include_directories(ThirdParty_ZRX INTERFACE ${INC_DIRS_Z})
|
||
|
|
|
||
|
|
# 保存库文件目录列表 (你的 LIB_DIRS 保持不变)
|
||
|
|
target_link_directories(ThirdParty_ZRX INTERFACE ${LIB_DIRS_Z})
|
||
|
|
|
||
|
|
# 🌟 这里的 ARX_LIBS 是个列表,直接扔给 link_libraries 就行了!
|
||
|
|
target_link_libraries(ThirdParty_ZRX INTERFACE ${ARX_LIBS_Z})
|
||
|
|
|
||
|
|
# 穿上马甲
|
||
|
|
add_library(ThirdParty::ZRX ALIAS ThirdParty_ZRX)
|
||
|
|
|
||
|
|
# ==========================================
|
||
|
|
# bitanswer
|
||
|
|
# ==========================================
|
||
|
|
add_library(ThirdParty_BitAnswer INTERFACE)
|
||
|
|
target_link_directories(ThirdParty_BitAnswer INTERFACE "${DEP_LIB_ROOT}/pub")
|
||
|
|
add_library(ThirdParty::BitAnswer ALIAS ThirdParty_BitAnswer)
|
||
|
|
|
||
|
|
# ==========================================
|
||
|
|
# modernGlue
|
||
|
|
# ==========================================
|
||
|
|
add_library(ThirdParty_modernGlue INTERFACE)
|
||
|
|
target_include_directories(ThirdParty_modernGlue INTERFACE "${DEP_INC_ROOT}/modernGlue")
|
||
|
|
add_library(ThirdParty::modernGlue ALIAS ThirdParty_modernGlue)
|
||
|
|
|
||
|
|
# ==========================================
|
||
|
|
# cadOcr
|
||
|
|
# ==========================================
|
||
|
|
add_library(ThirdParty_CadOcr INTERFACE)
|
||
|
|
target_include_directories(ThirdParty_CadOcr INTERFACE "${DEP_INC_ROOT}/cadOcr")
|
||
|
|
add_library(ThirdParty::CadOcr ALIAS ThirdParty_CadOcr)
|