A lightweight cross-platform C/C++ build system written in Python.
Project description
make0
make0 是一個輕量級、跨平台的 C/C++ 專案建置工具。
安裝
pip install make0
使用方法
在專案目錄下建立
檔案: make0file
app = target("ssl_app")
app.set_kind("binary")
app.add_files("main.c", "math_utils.c")
app.add_packages("openssl")
檔案: main.c
#include <stdio.h>
#include <string.h>
#include <openssl/sha.h> // 由 pmake 的 add_packages("openssl") 處理路徑
#include "math_utils.h"
int main() {
// 1. 測試自定義函式庫
int num = 5;
printf("--- pmake 跨平台測試 ---\n");
printf("數字 %d 的平方是: %d\n", num, square(num));
// 2. 測試 OpenSSL SHA256
const char *data = "Hello Gemini & pmake!";
unsigned char hash[SHA256_DIGEST_LENGTH];
// 呼叫 OpenSSL 函式
SHA256((unsigned char*)data, strlen(data), hash);
printf("字串: \"%s\"\n", data);
printf("SHA256 結果: ");
for (int i = 0; i < SHA256_DIGEST_LENGTH; i++) {
printf("%02x", hash[i]);
}
printf("\n------------------------\n");
return 0;
}
檔案: math_util.h
#ifndef MATH_UTILS_H
#define MATH_UTILS_H
int square(int a);
#endif
檔案: math_util.c
#include "math_utils.h"
int square(int a) {
return a * a;
}
然後執行建置:
make0 build
這樣就會產生
(venv) cccuser@cccimacdeiMac hello_make0 % ls -all
total 104
drwxr-xr-x@ 8 cccuser staff 256 Mar 15 17:32 .
drwxr-xr-x@ 3 cccuser staff 96 Mar 15 17:32 ..
drwxr-xr-x@ 4 cccuser staff 128 Mar 15 17:32 .pmake_cache
-rw-r--r--@ 1 cccuser staff 752 Mar 15 20:14 main.c
-rw-r--r--@ 1 cccuser staff 64 Mar 15 16:14 math_utils.c
-rw-r--r--@ 1 cccuser staff 69 Mar 15 16:01 math_utils.h
-rw-r--r--@ 1 cccuser staff 195 Mar 15 16:28 make0file
-rwxr-xr-x@ 1 cccuser staff 33688 Mar 15 17:32 ssl_app
最後你就可以執行
(venv) cccuser@cccimacdeiMac hello_make0 % ./ssl_app
--- pmake 跨平台測試 ---
數字 5 的平方是: 25
字串: "Hello Gemini & pmake!"
SHA256 結果: a44b648ff26615cb44c163c246ed18fd89cd4991f025bc13cff3d876bbd32b7d
------------------------
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
make0-0.1.0.tar.gz
(5.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
make0-0.1.0-py3-none-any.whl
(5.8 kB
view details)
File details
Details for the file make0-0.1.0.tar.gz.
File metadata
- Download URL: make0-0.1.0.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86885821315f02492bac008716c5907005722faac481a94b32f1de677229d14b
|
|
| MD5 |
fc6e745552db3f7c8ab39e4d7b578042
|
|
| BLAKE2b-256 |
82fcd470471fa3cc21df3827fe1daff08c946e4a3e5937638b5bdbe5179690c0
|
File details
Details for the file make0-0.1.0-py3-none-any.whl.
File metadata
- Download URL: make0-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e16bf4fa978b15f5ffba9a5af928d5ec5192e3181690cb3bc96cb87af99e84b
|
|
| MD5 |
1fd951a13428baa40a4233d124fa40db
|
|
| BLAKE2b-256 |
6c6c8703b7aa8601672d9700f80cad554d4ea165b24ec9a00a7469985b36f943
|