LAMPCAE/src/CMakeLists.txt

95 lines
3.3 KiB
CMake
Raw Normal View History


set(SOVERSION ${PROJECT_VERSION} ${PROJECT_VERSION_MAJOR} ${PROJECT_VERSION_MINOR} ${PROJECT_VERSION_PATCH})
2023-05-08 06:32:41 +00:00
#-----------------------------------------------------------------------------
# 所有项目
#-----------------------------------------------------------------------------
list(APPEND _libraries Common PythonModule SARibbonBar Settings DataProperty MeshData SelfDefObject Material Geometry BCBase ConfigOptions ParaClassFactory ModelData ModuleBase PostAlgorithm PostRenderData PostInterface PostCurveDataManager PostPlotWidget PostWidgets GeometryDataExchange ProjectTree ProjectTreeExtend GeometryCommand GeometryWidgets PluginManager GmshModule IO SolverControl MainWidgets UserGuidence)
list(APPEND _libraries PointCloudOperator )
list(APPEND _libraries json qcustomplot qhexedit qscintilla2 LAMPTool WBCLFZSystemModule )
list(APPEND _libraries PluginMotorBike )
2023-05-08 06:32:41 +00:00
#[[if(_WIN_)
list(APPEND _libraries XGenerateReport License)
endif()]]
list(APPEND _libraries MainWindow ${PROJECT_NAME})
#-----------------------------------------------------------------------------
# 处理LAMPCAE程序的RPATH
2023-05-08 06:32:41 +00:00
#-----------------------------------------------------------------------------
file(RELATIVE_PATH _rel ${CMAKE_INSTALL_PREFIX}/${INSTALL_BINDIR} ${CMAKE_INSTALL_PREFIX})
if(_APPLE_)
set(_rpath "@loader_path/${_rel}")
2023-05-08 06:32:41 +00:00
else()
set(_rpath "\$ORIGIN:\$ORIGIN/${_rel}")
2023-05-08 06:32:41 +00:00
endif()
file(TO_NATIVE_PATH "${_rpath}/${INSTALL_LIBDIR}" _lib_rpath)
# 遗漏两个,临时解决方案
list(APPEND LAMPCAE_Runtimes_Libraries VTK::loguru VTK::gl2ps Qt5::DBus VTK::IOChemistry )
list(APPEND LAMPCAE_Runtimes_Libraries Qt5::Qml )
2023-05-08 06:32:41 +00:00
foreach(_library ${_libraries})
add_subdirectory(${_library})
2023-05-08 06:32:41 +00:00
set_target_properties(${_library}
PROPERTIES
MACOSX_RPATH ON
SKIP_BUILD_RPATH OFF
BUILD_WITH_INSTALL_RPATH ON
INSTALL_RPATH "${_lib_rpath}"
INSTALL_RPATH_USE_LINK_PATH ON
#POSITION_INDEPENDENT_CODE 1
#OUTPUT_NAME $<LOWER_CASE:${_library}>
#DEBUG_POSTFIX "_d"
VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR}
FOLDER Modules
)
list(APPEND LAMPCAE_Runtimes_Libraries ${LAMPCAE_${_library}_Runtimes_Libraries})
2023-05-08 06:32:41 +00:00
endforeach()
#-----------------------------------------------------------------------------
# 安装LAMPCAE定义项目的安装目录
2023-05-08 06:32:41 +00:00
#-----------------------------------------------------------------------------
install(
TARGETS ${_libraries} ${PROJECT_NAME}
#ARCHIVE DESTINATION ${INSTALL_LIBDIR} COMPONENT lib
RUNTIME DESTINATION ${INSTALL_BINDIR} COMPONENT bin
LIBRARY DESTINATION ${INSTALL_LIBDIR} COMPONENT lib
)
list(APPEND _plugins PluginCustomizer PluginMeshDataExchange PluginWBFZExchangePlugin)
2023-05-08 06:32:41 +00:00
foreach(_plugin ${_plugins})
list(APPEND LAMPCAE_Runtimes_Libraries ${LAMPCAE_${_plugin}_Runtimes_Libraries})
2023-05-08 06:32:41 +00:00
add_subdirectory(${_plugin})
set_target_properties(${_plugin} PROPERTIES
FOLDER Plugins
)
endforeach()
#-----------------------------------------------------------------------------
# 安装插件到plugins目录
#-----------------------------------------------------------------------------
install(
TARGETS ${_plugins}
RUNTIME DESTINATION ${INSTALL_BINDIR}/plugins
LIBRARY DESTINATION ${INSTALL_BINDIR}/plugins
)
list(REMOVE_DUPLICATES LAMPCAE_Runtimes_Libraries)
2023-05-08 06:32:41 +00:00
install(IMPORTED_RUNTIME_ARTIFACTS
${LAMPCAE_Runtimes_Libraries}
2023-05-08 06:32:41 +00:00
DESTINATION ${INSTALL_LIBDIR}
COMPONENT lib
)