From 6e04fa709ca428d3a20d8296dd57f4c05630199b Mon Sep 17 00:00:00 2001 From: FTS427 Date: Sun, 24 Dec 2023 19:37:43 +0800 Subject: [PATCH 1/5] U | Use CMake instead of Make --- .gitignore | 1 + CMakeLists.txt | 8 ++++++++ make.sh | 5 +++++ 3 files changed, 14 insertions(+) create mode 100644 CMakeLists.txt create mode 100755 make.sh diff --git a/.gitignore b/.gitignore index 1d74e21..fb2a4b2 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .vscode/ +build/* \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..c9ccfe8 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required(VERSION 3.9) + +PROJECT(MCT) +INCLUDE_DIRECTORIES( +./src/include +) +AUX_SOURCE_DIRECTORY(src ./src) +ADD_EXECUTABLE(${PROJECT_NAME} ./src/main.cpp) diff --git a/make.sh b/make.sh new file mode 100755 index 0000000..98594e4 --- /dev/null +++ b/make.sh @@ -0,0 +1,5 @@ +cmake -S . -B ./build && +cd ./build && +make && +echo "Done!" && +echo "Exec -> build/MCT" From dc710ba65e60c6daebe6c302c991d01382f1eac0 Mon Sep 17 00:00:00 2001 From: FTS427 Date: Sun, 24 Dec 2023 19:39:50 +0800 Subject: [PATCH 2/5] U | Change the dir rules --- src/Makefile | 2 -- src/{head => include}/mhead.h | 0 src/main.cpp | 12 ++++++------ src/{cpart => part}/calc.cpp | 0 src/{cpart => part}/cg.cpp | 0 src/{cpart => part}/chn.cpp | 0 src/{cpart => part}/maxn.cpp | 0 src/{cpart => part}/minn.cpp | 0 8 files changed, 6 insertions(+), 8 deletions(-) delete mode 100644 src/Makefile rename src/{head => include}/mhead.h (100%) rename src/{cpart => part}/calc.cpp (100%) rename src/{cpart => part}/cg.cpp (100%) rename src/{cpart => part}/chn.cpp (100%) rename src/{cpart => part}/maxn.cpp (100%) rename src/{cpart => part}/minn.cpp (100%) diff --git a/src/Makefile b/src/Makefile deleted file mode 100644 index c4c4863..0000000 --- a/src/Makefile +++ /dev/null @@ -1,2 +0,0 @@ -MCT-Build: main.cpp ./cpart/ - g++ main.cpp -o ../bin/MCT diff --git a/src/head/mhead.h b/src/include/mhead.h similarity index 100% rename from src/head/mhead.h rename to src/include/mhead.h diff --git a/src/main.cpp b/src/main.cpp index 379c8b5..49a3739 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,11 +1,11 @@ //Preview, be careful -#include "./head/mhead.h" -#include "./cpart/calc.cpp" -#include "./cpart/maxn.cpp" -#include "./cpart/minn.cpp" -#include "./cpart/chn.cpp" -#include "./cpart/cg.cpp" +#include "./include/mhead.h" +#include "./part/calc.cpp" +#include "./part/maxn.cpp" +#include "./part/minn.cpp" +#include "./part/chn.cpp" +#include "./part/cg.cpp" //主函数 int main(){ diff --git a/src/cpart/calc.cpp b/src/part/calc.cpp similarity index 100% rename from src/cpart/calc.cpp rename to src/part/calc.cpp diff --git a/src/cpart/cg.cpp b/src/part/cg.cpp similarity index 100% rename from src/cpart/cg.cpp rename to src/part/cg.cpp diff --git a/src/cpart/chn.cpp b/src/part/chn.cpp similarity index 100% rename from src/cpart/chn.cpp rename to src/part/chn.cpp diff --git a/src/cpart/maxn.cpp b/src/part/maxn.cpp similarity index 100% rename from src/cpart/maxn.cpp rename to src/part/maxn.cpp diff --git a/src/cpart/minn.cpp b/src/part/minn.cpp similarity index 100% rename from src/cpart/minn.cpp rename to src/part/minn.cpp From 8efeaf0c8f1187f8aa51e1b61322923da85ee5bf Mon Sep 17 00:00:00 2001 From: FTS427 Date: Sun, 24 Dec 2023 19:43:12 +0800 Subject: [PATCH 3/5] U | Update github files --- .github/workflows/preview-build.yml | 7 +++---- .gitignore | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/preview-build.yml b/.github/workflows/preview-build.yml index 1268762..f0b9af9 100644 --- a/.github/workflows/preview-build.yml +++ b/.github/workflows/preview-build.yml @@ -12,11 +12,10 @@ jobs: steps: - uses: actions/checkout@v3 - name: build-linux - run: make - working-directory: src/ + run: sh ./make.sh + working-directory: / - name: Build Preview MCT-Linux uses: actions/upload-artifact@v3.1.2 with: name: MCT-Pre - path: bin/MCT - + path: build/MCT diff --git a/.gitignore b/.gitignore index fb2a4b2..ab24a97 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -.vscode/ +.vscode build/* \ No newline at end of file From 244d637c875da8490738b3a7df0e06aa4f512a21 Mon Sep 17 00:00:00 2001 From: FTS427 Date: Sun, 24 Dec 2023 19:46:02 +0800 Subject: [PATCH 4/5] U | Update Readme --- README.md | 8 +++++--- README_zh.md | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index bb559f6..1d3e8f2 100644 --- a/README.md +++ b/README.md @@ -18,25 +18,26 @@ [![Preview](https://img.shields.io/github/actions/workflow/status/QuantumLS-Studio/MathCentralTool/preview-build.yml?label=Preview&style=for-the-badge "Preview")](https://github.com/QuantumLS-Studio/MathCentralTool/actions/workflows/preview-build.yml) ![EMAIL](https://img.shields.io/badge/EMAIL-fts427%40outlook.com-4169E1?style=for-the-badge&logoColor=white) - + [🀄简体中文](/README_zh.md) | 🔠[English](/README.md) ## 📃 Introduce + A terminal-based math tool that runs on linux. This program is free and open source. We allow everyone to use the source code for enrichment, compilation, etc. But we don't take any responsibility for any problems! ⚠worn: This program is in developing and cannot be used for scientific precision calculations! If anything goes wrong, do so at your own risk! -## ❔ How to use +## ❔ How to use Look in the GitAction and choose you need. Or clone and compile by yourself. -📦 Compilation environment requirements: make, gcc +📦 Compilation environment requirements: cmake, make, gcc ## 🧑‍💻 Contribution and thanks @@ -49,6 +50,7 @@ Or clone and compile by yourself. Thank every developer very much for their help!👍 ## 👀 Other + This project also powered by [ECCPH](https://github.com/QuantumLS-Studio/ECCPH) Old versions[MathCentralTools](https://github.com/FTS427/MathCentralTools)(Archived🗃️) diff --git a/README_zh.md b/README_zh.md index dddeb55..e630e88 100644 --- a/README_zh.md +++ b/README_zh.md @@ -37,7 +37,7 @@ 或自行拉取编译 -📦编译环境需求(Linux):make,gcc +📦编译环境需求:cmake, make,gcc ## 🧑‍💻感谢 From 308055f683f285882f0488dba69597785d02c622 Mon Sep 17 00:00:00 2001 From: FTS427 Date: Sun, 24 Dec 2023 19:51:11 +0800 Subject: [PATCH 5/5] D | Remove "bin" dir --- bin/MCT | Bin 33312 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100755 bin/MCT diff --git a/bin/MCT b/bin/MCT deleted file mode 100755 index aec7b349972875e96f4e0a3848de06b9f0ead576..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33312 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