178 lines
6.0 KiB
CMake
178 lines
6.0 KiB
CMake
|
cmake_minimum_required(VERSION 3.5)
|
|||
|
project(InlandModel)
|
|||
|
|
|||
|
# 符号导出
|
|||
|
add_definitions(-DINLAND_LIB)
|
|||
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
|||
|
set(CMAKE_AUTOUIC ON)
|
|||
|
set(CMAKE_AUTOMOC ON)
|
|||
|
set(CMAKE_AUTORCC ON)
|
|||
|
set(CMAKE_CXX_STANDARD 17)
|
|||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|||
|
|
|||
|
# 设置编译选项,Linux 不需要 /MP
|
|||
|
if(MSVC)
|
|||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
|
|||
|
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)
|
|||
|
|
|||
|
set(PROJECTS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../..")
|
|||
|
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}/inc/DataManager/DataManagerInterface/include)
|
|||
|
include_directories(${PROJECTS_PATH}/inc/DataManager/Infrastructure.Interface)
|
|||
|
include_directories(${PROJECTS_PATH}/inc/DataManager/Infrastructure.Data)
|
|||
|
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/InlandModel)
|
|||
|
include_directories(${PROJECTS_PATH}/inc/InlandModel/StabilityModelInterface)
|
|||
|
include_directories(${PROJECTS_PATH}/inc/InlandModel/StructureModelInterface)
|
|||
|
include_directories(${PROJECTS_PATH}/inc/InlandModel/CertiModelInterface)
|
|||
|
include_directories(${PROJECTS_PATH}/3rd/pugixml-1.15/src)
|
|||
|
include_directories(${PROJECTS_PATH}/inc/Util/include)
|
|||
|
include_directories(${PROJECTS_PATH}/inc/Common)
|
|||
|
|
|||
|
|
|||
|
if(WIN32)
|
|||
|
include_directories(${PROJECTS_PATH}/3rd/occ/win64/include)
|
|||
|
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/occ/arm_linux/include)
|
|||
|
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 srcs_InlandModel ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
|
|||
|
file(GLOB head_InlandModel ${PROJECTS_PATH}/inc/InlandModel/*.h)
|
|||
|
source_group("InlandModel\\Source" FILES ${srcs_InlandModel})
|
|||
|
source_group("InlandModel\\Headers" FILES ${head_InlandModel})
|
|||
|
|
|||
|
|
|||
|
|
|||
|
file(GLOB srcs_StabilityModelInterface ${CMAKE_CURRENT_SOURCE_DIR}/StabilityModelInterface/*.cpp)
|
|||
|
file(GLOB head_StabilityModelInterface ${PROJECTS_PATH}/inc/InlandModel/StabilityModelInterface/*.h)
|
|||
|
source_group("StabilityModelInterface\\Source" FILES ${srcs_StabilityModelInterface})
|
|||
|
source_group("StabilityModelInterface\\Headers" FILES ${head_StabilityModelInterface})
|
|||
|
|
|||
|
|
|||
|
file(GLOB srcs_StructureModelInterface ${CMAKE_CURRENT_SOURCE_DIR}/StructureModelInterface/*.cpp)
|
|||
|
file(GLOB head_StructureModelInterface ${PROJECTS_PATH}/inc/InlandModel/StructureModelInterface/*.h)
|
|||
|
source_group("StructureModelInterface\\Source" FILES ${srcs_StructureModelInterface})
|
|||
|
source_group("StructureModelInterface\\Headers" FILES ${head_StructureModelInterface})
|
|||
|
|
|||
|
file(GLOB srcs_CertiModelInterface ${CMAKE_CURRENT_SOURCE_DIR}/CertiModelInterface/*.cpp)
|
|||
|
file(GLOB head_CertiModelInterface ${PROJECTS_PATH}/inc/InlandModel/CertiModelInterface/*.h)
|
|||
|
source_group("CertiModelInterface\\Source" FILES ${srcs_CertiModelInterface})
|
|||
|
source_group("CertiModelInterface\\Headers" FILES ${head_CertiModelInterface})
|
|||
|
|
|||
|
|
|||
|
add_library(${PROJECT_NAME} SHARED ${srcs_InlandModel} ${head_InlandModel}
|
|||
|
${srcs_StabilityModelInterface} ${head_StabilityModelInterface}
|
|||
|
${srcs_StructureModelInterface} ${head_StructureModelInterface}
|
|||
|
${srcs_CertiModelInterface} ${head_CertiModelInterface}
|
|||
|
)
|
|||
|
|
|||
|
target_include_directories(InlandModel PRIVATE ${CMAKE_SOURCE_DIR}/3rd/spdlog)
|
|||
|
|
|||
|
# 添加库文件搜索路径
|
|||
|
|
|||
|
if(WIN32)
|
|||
|
target_link_directories(${PROJECT_NAME} PRIVATE
|
|||
|
${PROJECTS_PATH}/3rd/occ/win64/lib64
|
|||
|
${PROJECTS_PATH}/3rd/spdlog/win64/lib
|
|||
|
${PROJECTS_PATH}/3rd/xerces-c/win64/lib
|
|||
|
${PROJECTS_PATH}/3rd/xlnt/win64/lib
|
|||
|
${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}/3rd/xerces-c/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
|
|||
|
DataManager
|
|||
|
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
|
|||
|
pugixml
|
|||
|
xerces-c
|
|||
|
|
|||
|
)
|
|||
|
|
|||
|
|
|||
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
|||
|
target_link_libraries(${PROJECT_NAME} PUBLIC DataManagerd)
|
|||
|
target_link_libraries(${PROJECT_NAME} PUBLIC OCCModelingd)
|
|||
|
target_link_libraries(${PROJECT_NAME} PUBLIC Utild)
|
|||
|
#target_link_libraries(${PROJECT_NAME} PUBLIC pugixmld)
|
|||
|
target_link_libraries(${PROJECT_NAME} PUBLIC spdlogd)
|
|||
|
target_link_libraries(${PROJECT_NAME} PUBLIC xlntd)
|
|||
|
else()
|
|||
|
target_link_libraries(${PROJECT_NAME} PUBLIC DataManager)
|
|||
|
target_link_libraries(${PROJECT_NAME} PUBLIC OCCModeling)
|
|||
|
target_link_libraries(${PROJECT_NAME} PUBLIC Util)
|
|||
|
#target_link_libraries(${PROJECT_NAME} PUBLIC pugixml)
|
|||
|
target_link_libraries(${PROJECT_NAME} PUBLIC spdlog)
|
|||
|
target_link_libraries(${PROJECT_NAME} PUBLIC xlnt)
|
|||
|
endif()
|