149 lines
4.1 KiB
CMake
149 lines
4.1 KiB
CMake
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("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
|
||
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/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()
|