# 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_RELATIVE "${CAD_SDK_ROOT}/R${CAD_SDK_VERSION}.${CAD_SDK_SUBVERSION}") get_filename_component(CURRENT_ARX_SDK "${CURRENT_ARX_SDK_RELATIVE}" ABSOLUTE) 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)