COMPASSi/trunk/code/projects/OCC/CMakeLists.txt

124 lines
2.9 KiB
CMake
Raw Normal View History

2025-06-25 15:06:42 +08:00
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("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/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
)