Skip to main content

A lightweight cross-platform C/C++ build system written in Python.

Project description

pcmake

pcmake 是一個輕量級、跨平台的 C/C++ 專案建置工具。

安裝

pip install pcmake

使用方法

在專案目錄下建立

檔案: Pcmakefile

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;
}

然後執行建置:

pcmake build

這樣就會產生

(venv) cccuser@cccimacdeiMac hello_pcmake % 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 Pcmakefile
-rwxr-xr-x@ 1 cccuser  staff  33688 Mar 15 17:32 ssl_app

最後你就可以執行

(venv) cccuser@cccimacdeiMac hello_pcmake % ./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.0.1.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

make0-0.0.1-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file make0-0.0.1.tar.gz.

File metadata

  • Download URL: make0-0.0.1.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

Hashes for make0-0.0.1.tar.gz
Algorithm Hash digest
SHA256 9611046d82a191db12b38b7add7ef49b67ef04cd8c4147cd1b9b5a70eaa32d29
MD5 cd7c5acea8ac9451a84dd959183e4d7f
BLAKE2b-256 e811f73a86c39bcf9d24974dfcb812570f43996be8517a78e8131f6ff08fe4ec

See more details on using hashes here.

File details

Details for the file make0-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: make0-0.0.1-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

Hashes for make0-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5e5e2abfeb0aad9e8ad3383f806e209a24c3a9e923047530438adef1b684bdc2
MD5 1b7f0c3c8dfd427a5210dbd067d98298
BLAKE2b-256 d75162d05d07d083383a6b6fc6d8ce287d6e205eef5ce9ca6ce2ffb03b32cbbe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page