# HMake **Repository Path**: H0x9DEFA478/HMake ## Basic Information - **Project Name**: HMake - **Description**: 一个构建工具 - **Primary Language**: C++ - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-17 - **Last Updated**: 2026-06-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HMake ## 介绍 HMake 是一个高效的构建工具,其特点如下: 1. **高效性**:通过直接调用系统 API 启动进程,提高构建效率。 2. **灵活性**:支持对单个文件或文件夹设置特别的编译选项。 3. **跨平台**:支持 Windows 和 Linux 系统(Linux 版本待测试)。 ## 使用说明 有关 `hmk` 语法的详细说明,请参见 [hmk语法](./HMK.md)。 有关变量的详细信息,请参见 [hmk变量说明](./HMK_ValueList.md)。 ### 编译方法 环境需求: 1. gcc编译器 2. make 3. 类unix环境(例如linux mingw等) 设置好需要的环境确保下面的命令能使用到到这些工具 cd到Makefile所在文件夹 执行 ```shell make TARGET_CONFIG=mingw64 BUILD_PREFIX= ``` 其中`TARGET_CONFIG`代表目标配置, 目前支持 | 目标名 | 描述 | |:-----------:|:-----------------:| | mingw64 | windows下的mingw64 | | mingw32 | windows下的mingw32 | | x86_64 | linux x86_64 | | aarch64 | linux aarch64 | |arm-gnueabihf| linux arm | | arm-gnueabi | linux arm | BUILD_PREFIX代表编译器前缀, 当gcc/g++具有前缀时, 可以根据前缀设置该值 #### 其他编译方法 当然也可以使用自己的构建工具进行编译, 只需要编译`Code`中的所有的源文件即可, 头文件路径为`./Code`,`./Code/H_Lib`与`./Code/SystemProcess` 编译并不需要添加特别的预编译宏与选项, 这部分任君发挥 ### 命令行 HMake 的命令行格式如下: ```shell HMake --help # 输出帮助信息 HMake --version # 输出版本信息 HMake --target= [--shell=xxx] [-j=xx] [--print=xxx,xxx...] [--hmk=xxx] # 构建目标 ``` #### `--target` 选项 用于指定要构建的目标名称。 #### `--shell` 选项 用于指定要使用的 Shell 环境。 #### `-j` 选项 用于指定并发执行的任务数量,以加快构建过程。 #### `--print` 选项 用于控制额外的日志输出,多个类型可以用逗号 `,` 连接。 | 类型 | 功能说明 | |--------------|----------------------------------| | `TargetValue` | 构建前输出所有目标的变量池内容 | | `BuildArgs` | 执行每一个构建任务后输出其命令行 | | `SkipLog` | 输出跳过的任务 | #### `--hmk` 选项 用于指定 `hmk` 文件的位置。如果不指定,默认使用 `./HMake.hmk`。