cmake_minimum_required(VERSION 3.5) project(DataManager) # 符号导出 # 符号导出 add_definitions(-DDATAMANAGER_LIB) # 设置编译选项,Linux 不需要 /MP if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") add_compile_options("/bigobj") endif() if(WIN32) set(CMAKE_DEBUG_POSTFIX "d") else() set(CMAKE_DEBUG_POSTFIX "d") endif() # 使用 UTF-8 编码 add_compile_options("$<$:/utf-8>") add_compile_options("$<$:/utf-8>") find_package(Qt5 COMPONENTS Core Widgets WebChannel WebEngineWidgets Svg Sql Xml REQUIRED) include_directories(${PROJECTS_PATH}/inc/Common) include_directories(${PROJECTS_PATH}/inc/DataManager/DataManagerInterface/include) include_directories(${PROJECTS_PATH}/inc/DataManager/Infrastructure.Interface/Arithmetics) include_directories(${PROJECTS_PATH}/inc/DataManager/Infrastructure.Data) include_directories(${PROJECTS_PATH}/inc/DataManager/Infrastructure.Data/Model) include_directories(${PROJECTS_PATH}/inc/DataManager/Logic/Logic.DataManagement/Interpreters) include_directories(${PROJECTS_PATH}/inc/DataManager/Logic/Logic.DataManagement/Utility) include_directories(${PROJECTS_PATH}/inc/OCC/OCCLib/) include_directories(${PROJECTS_PATH}/inc/OCC/OCCModeling/) include_directories(${PROJECTS_PATH}/inc/OCC/OCCModeling/CXml) include_directories(${PROJECTS_PATH}/inc/DataManager/XmlSerialization) include_directories(${PROJECTS_PATH}/inc/DataManager/XSDHeader) include_directories(${PROJECTS_PATH}/inc/ReadDXF) if(WIN32) include_directories(${PROJECTS_PATH}/3rd/spdlog/win64/include) include_directories(${PROJECTS_PATH}/3rd/xerces-c/win64/include) include_directories(${PROJECTS_PATH}/3rd/xlnt/win64/include) else() include_directories(${PROJECTS_PATH}/3rd/spdlog/arm_linux/include) include_directories(${PROJECTS_PATH}/3rd/xerces-c/arm_linux/include) include_directories(${PROJECTS_PATH}/3rd/xlnt/arm_linux/include) endif() file(GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp ${CMAKE_CURRENT_SOURCE_DIR}/*.cxx) file(GLOB_RECURSE HEADERS ${PROJECTS_PATH}/inc/DataManager/*.h ${PROJECTS_PATH}/inc/DataManager/*.hxx) add_library(${PROJECT_NAME} SHARED ${SOURCES} ${HEADERS} ) target_include_directories(DataManager PRIVATE ${CMAKE_SOURCE_DIR}/3rd/spdlog) # 添加库文件搜索路径 if(WIN32) target_link_directories(${PROJECT_NAME} PRIVATE ${PROJECTS_PATH}/3rd/occ/win64/lib64 ${PROJECTS_PATH}/3rd/xerces-c/win64/lib ${PROJECTS_PATH}/3rd/spdlog/win64/lib ${PROJECTS_PATH}/bin/${CMAKE_BUILD_TYPE} ${PROJECTS_PATH}/3rd/xlnt/win64/lib ) else() target_link_directories(${PROJECT_NAME} PRIVATE ${PROJECTS_PATH}/3rd/occ/arm_linux/lib ${PROJECTS_PATH}/3rd/xerces-c/arm_linux/lib ${PROJECTS_PATH}/3rd/spdlog/arm_linux/lib ${PROJECTS_PATH}/3rd/xlnt/arm_linux/lib ${PROJECTS_PATH}/arm_linux_bin/${CMAKE_BUILD_TYPE}/lib ) endif() target_link_libraries(${PROJECT_NAME} PUBLIC Qt5::Widgets Qt5::Core Qt5::Svg Qt5::WebChannel Qt5::WebEngineWidgets Qt5::Xml Qt5::Sql TKVRML TKSTL TKBRep TKIGES TKShHealing TKSTEP TKXSBase TKernel TKBool TKCDF TKDraw TKFeat TKFillet TKG2d TKG3d TKGeomAlgo TKGeomBase TKHLR TKMath TKOffset TKPrim TKService TKTopAlgo TKV3d TKBO TKMesh TKOpenGl OCCModeling pugixml xerces-c ) if(WIN32) if(CMAKE_BUILD_TYPE STREQUAL "Debug") target_link_libraries(${PROJECT_NAME} PUBLIC Utild) #target_link_libraries(${PROJECT_NAME} PUBLIC ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Debug/pugixmld.lib) target_link_libraries(${PROJECT_NAME} PUBLIC spdlogd) target_link_libraries(${PROJECT_NAME} PUBLIC xlntd) else() target_link_libraries(${PROJECT_NAME} PUBLIC Util) #target_link_libraries(${PROJECT_NAME} PUBLIC ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/Release/pugixml.lib) target_link_libraries(${PROJECT_NAME} PUBLIC spdlog) target_link_libraries(${PROJECT_NAME} PUBLIC xlnt) endif() else() if(CMAKE_BUILD_TYPE STREQUAL "Debug") else() endif() endif()