LAMPCAE/README.md

176 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 说明
## 源码文件夹结构
- cmake cmake相关的脚本
- doc 生成文档需要的模板及配置文件
- extlib 第三方依赖库见下文extlib获取方式
- src LAMPCAE源码
- test 包含单元测试代码(待整理)
## 构建编译
### LAMPCAE相关的cmake构建选项说明
- `LAMPCAE_AUTO_DOWNLOAD`如果源码目录不存在extlib目录时是否会自动从gitee克隆依赖包。
- `LAMPCAE_DOXYGEN_DOC`是否需要构建目标Doxygen需要本地安装Doxygen软件
- `LAMPCAE_ENABLE_DEV`:是否在构建完成时自动拷贝依赖文件到调试目录。(开启该选项会在每次编译完拷贝第三方依赖库文件到构建目录,会增加构建时间)
- `LAMPCAE_ENABLE_MPI`是否开启MPI支持目前无效
- `LAMPCAE_ENABLE_OPENMP`是否开启OpenMP。
- `LAMPCAE_ENABLE_TEST`:是否构建单元测试模块(目前无效)。
- `LAMPCAE_INSTALLATION_PACKAGE`是否构建安装包制作PACKAGE。
### cmake预定义目标说明
- ALL_BUILD生成所有项目。
- INSTALL安装LAMPCAE到CMAKE_INSTALL_PREFIX定义的目录。
- PACKAGE或者package: 在Visual Studio中该目标为大写在其它构建系统中该目标为小写用于将LAMPCAE打包成安装包exe、deb、rpm
- DOXYGEN: 生成LAMPCAE的Doxygen格式文档html
### 编译视频教程
#### Windows
- <a href="https://www.bilibili.com/video/BV1U24y1R73n/" target="_blank">cmake 3.24.1 + Visual Studio Community 2017</a>
- <a href="https://www.bilibili.com/video/BV1FX4y1y7T4/" target="_blank">QtCreator编译</a>
#### Linux
- <a href="https://www.bilibili.com/video/BV1iW4y1Y79p/" target="_blank">cmake + GNU GCC + make</a>
- <a href="https://www.bilibili.com/video/BV1xd4y1q7Cm/" target="_blank">借助vscode构建、编译、安装、打包</a>
### 编译说明
- windows环境下使用vscode时编译工具链只能使用Visual Studio目前不支持MinGW工具
### extlib目录结构
```
extlib
├─CGNS(version:4.3.0)
├─Gmsh(version:4.8.0)
├─HDF5(version:1.13.1)
├─OCC(version:7.6.0)
├─Python(version:3.7.0)
├─QuaZIP(version:0.7.3)
├─Qwt(version: Qwt:6.1.6 QwtPolar:1.1.1)
├─TecIO(version:1.4.2)
└─VTK(version:9.0.1)
```
### extlib获取方式
### Linux系统
```bash
git clone https://gitee.com/DISOGitee/LAMPCAELinuxExtlib.git extlib
```
### windows系统
```bash
git clone https://gitee.com/DISOGitee/LAMPCAEWinExtlib.git extlib
```
## 编译打包
项目采用cmake构建系统组织代码可以直接使用cmake转换visual studio 2017工程或者生成Makefile文件或者可以直接使用支持cmake系统的IDE比如vscode、clion、visual studio、qtcreator等打开项目文件夹进行构建、编译。
> 项目依赖文件会在构建阶段根据系统自动克隆对应的依赖库到本地extlib文件夹如果需要离线部署可以在“extlib获取方式”中离线下载依赖库。
构建项目:
```
cmake -DCMAKE_INSTALL_PREFIX:PATH=/path_to_install -DQt5_DIR:PATH=/path_of_Qt5Config.cmake -B build -S .
```
> 如果在windows环境下使用命令行构建项目需要增加参数`-G "Visual Studio 15 2017 Win64"`具体参数需要根据自己的Visual Studio的版本确定
安装:
```
cmake --build build --target install
```
源码(`.tar.gz` and `.zip`)打包:
```
cmake --build build --target package_source
```
制作安装包(`.deb` `.rpm` `.exe`:
```
cmake --build build --target package
```
**备注:**
> 1、如果构建系统是Makefile、Ninja、Xcode则生成`package`目标如果是MVSC构建系统则生成大写的`PACKAGE`目标。
>
> > `cmake --build . --target package` 或者 `make package` 或者 `ninja package`
> 2、如果构建系统是Makefile、Ninja还会则生成`package_source`目标用于打包源码。
>
> > `cmake --build . --target package_source` 或者 `make package_source` 或者 `ninja package_source`
## 特别说明
- 源码绝对路径中不要出现中文字符、空格以及特殊字符:(){}*/?|\等
- 要求cmake的最低版本为3.21
- windows环境制作安装包要求NSIS版本为3.03+
- linux环境制作安装包需要安装`dpkg-deb`或者`rpmbuild`
- linux的其他系统依赖包`OpenGL`、`fontconfig`、`xkbcommon`
## 测试平台
| 序号 | 操作系统 | GLIBC版本 | 编译器 | Qt | 测试结果 | 备注 |
| :--: | :-----------: | :-------: | :---------: | :--: | :--: | :--: |
| 1 | Ubuntu18.04 | 2.27 | GNU GCC 7.5.0 | Qt5.14.2 | 通过 | |
| 2 | Ubuntu20.04 | 2.31 | GNU GCC 9.4.0 | Qt5.14.2 | 通过 | |
| 3 | Ubuntu22.04 | 2.35 | GNU GCC 11.2.0 | Qt5.14.2 | 通过 | deb成功打包 |
| 4 | CentOS 7.0.1406 | 2.17 | GNU GCC 8.3.1 | Qt5.14.2 | 通过 | 借助devtoolset-8升级GCC |
| 5 | CentOS 7.9.2009 | 2.17 | GNU GCC 7.5.0 | Qt5.14.2 | 通过 | |
| 6 | CentOS 8.5.2111 | 2.28 | GNU GCC 8.5.0 | Qt5.14.2 | 通过 | rpm成功打包 |
| 7 | RedHat Server 7.0 | | | | | 待测试 |
| 8 | RedHat 8.1 | 2.28 | GNU GCC 8.5.0 | Qt5.14.2 | 通过 | |
| 9 | RedHat 9.0 | | | | | 待测试 |
| 10 | Windows7 X64 | 无 | Visual Studio 2017 Community | Qt5.14.2 | 通过 | VS附带安装Windows 8.1SDK |
| 11 | Windows10 X64 | 无 | Visual Studio 2017 Community | Qt5.14.2 | 通过 | SDK 10.0.17763.0NSIS成功打包 |
| 12 | deepin 20.7社区版 | | | | | 待测试 |
| 13 | ubuntukylin 22.04 | 2.35 | GNU GCC 11.2.0 | Qt5.14.2 | 通过 | 基于Ubuntu22.04 |
## 相关链接
- 帮助文档http://www.LAMPCAE.com/index.php?mod=document
- 社区论坛http://disc.LAMPCAE.com/
## 感谢开源贡献者
- 陈宗衍 czy.t@163.comRibbon风格组件
- 张立春 zhang.lichun@foxmail.com远程任务提交插件
- 赵德祥 zhao.dexiang@foxmail.com远程任务提交插件
- 万义钊 wanyizhao@mail.cgs.gov.cn Tecplot后处理文件格式szplt解析
## 使用交流
技术交流QQ群671925863
官方微信号LAMPCAE-DISO