cmake_minimum_required(VERSION 3.5) project(OCCModeling) add_definitions(-DWNT) add_definitions(-DOCC_LIB) # 设置编译选项,Linux 不需要 /MP if(MSVC) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP1") add_compile_options("/bigobj") endif() if(WIN32) set(CMAKE_DEBUG_POSTFIX "d") else() set(CMAKE_DEBUG_POSTFIX "d") endif() # 使用 UTF-8 编码 if(WIN32) add_compile_options("$<$:/utf-8>") add_compile_options("$<$:/utf-8>") else() # 设置GCC编译选项 add_compile_options(-fPIC) # 用于共享库的编译选项 endif() # 定义环境变量 find_package(Qt5 COMPONENTS Core Widgets WebChannel WebEngineWidgets Svg Sql Xml REQUIRED) #附加包含目录 set(PROJECTS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../..") include_directories(${PROJECTS_PATH}/inc/Common) include_directories(${PROJECTS_PATH}/inc/) 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}/3rd/pugixml-1.15/src) include_directories(${PROJECTS_PATH}/inc/ReadDXF) if(WIN32) include_directories(${PROJECTS_PATH}/3rd/occ/win64/include) include_directories(${PROJECTS_PATH}/3rd/spdlog/win64/include) else() include_directories(${PROJECTS_PATH}/3rd/occ/arm_linux/include) include_directories(${PROJECTS_PATH}/3rd/spdlog/arm_linux/include) endif() #源文件目录 aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/OCCLib srcs_occlib) aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/OCCModeling/ srcs_occmodeling) #aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/OCCModeling/CXml srcs_cxml) aux_source_directory(${PROJECTS_PATH}/3rd/pugixml-1.15/src/ srcs_pugixml) #库本身头文件 file(GLOB src_head ${PROJECTS_PATH}/inc/OCC/OCCLib/*.h) file(GLOB src_head ${PROJECTS_PATH}/inc/OCC/OCCModeling/*.h) #file(GLOB src_head ${PROJECTS_PATH}/inc/OCC/OCCModeling/CXml/*.h) add_library(${PROJECT_NAME} SHARED ${srcs_occlib} ${srcs_occmodeling} ${srcs_cxml} ${src_head} ${srcs_pugixml} ) # 添加库文件搜索路径 if(WIN32) target_link_directories(${PROJECT_NAME} PRIVATE ${PROJECTS_PATH}/3rd/occ/win64/lib64 ${PROJECTS_PATH}/bin/${CMAKE_BUILD_TYPE} ) else() target_link_directories(${PROJECT_NAME} PRIVATE ${PROJECTS_PATH}/3rd/occ/arm_linux/lib ${PROJECTS_PATH}/3rd/spdlog/arm_linux/lib ${PROJECTS_PATH}/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 ReadDXF )