Last active
April 29, 2025 14:15
-
-
Save devlights/5fbf3e6724dac167d97e4e22c1fd84e9 to your computer and use it in GitHub Desktop.
C言語向けのTaskfile.yml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| version: '3' | |
| silent: true | |
| vars: | |
| CC: gcc | |
| CFLAGS: -Wall -Wextra -O0 -g3 | |
| SRC_DIR: ./src | |
| BUILD_DIR: ./build | |
| BIN_DIR: ./bin | |
| EXECUTABLE: "{{.BIN_DIR}}/app" | |
| tasks: | |
| default: | |
| desc: "タスク一覧を表示" | |
| cmds: | |
| - task --list | |
| init: | |
| desc: "プロジェクトの初期化(必要なディレクトリを作成)" | |
| cmds: | |
| - mkdir -p "{{.SRC_DIR}}" "{{.BUILD_DIR}}" "{{.BIN_DIR}}" | |
| status: | |
| - test -d "{{.SRC_DIR}}" | |
| - test -d "{{.BUILD_DIR}}" | |
| - test -d "{{.BIN_DIR}}" | |
| clean: | |
| desc: "ビルドファイルとバイナリを削除" | |
| cmds: | |
| - rm -rf {{.BUILD_DIR}}/* {{.BIN_DIR}}/* | |
| fmt: | |
| desc: "clang-formatを実行" | |
| vars: | |
| SRC_FILES: | |
| sh: find {{.SRC_DIR}} -type f -name "*.c" | |
| cmds: | |
| - for: { var: SRC_FILES, as: FILE } | |
| cmd: clang-format -i {{.FILE}} | |
| tags: | |
| desc: "ctags -Rを実行" | |
| cmds: | |
| - ctags -R . | |
| compile: | |
| desc: "単一のCファイルをコンパイルする" | |
| requires: | |
| vars: [FILE] | |
| cmds: | |
| - mkdir -p "{{.BUILD_DIR}}" | |
| - '{{.CC}} {{.CFLAGS}} -c "{{.FILE}}" -o "{{.BUILD_DIR}}/{{base .FILE}}.o"' | |
| sources: | |
| - "{{.FILE}}" | |
| generates: | |
| - "{{.BUILD_DIR}}/{{base .FILE}}.o" | |
| compile-all: | |
| desc: "すべてのソースファイルをコンパイル" | |
| deps: [init] | |
| vars: | |
| SRC_FILES: | |
| sh: find {{.SRC_DIR}} -type f -name "*.c" | |
| cmds: | |
| - for: { var: SRC_FILES, as: FILE } | |
| cmd: | | |
| echo "Compiling {{.FILE}}" | |
| {{.CC}} {{.CFLAGS}} -c "{{.FILE}}" -o "{{.BUILD_DIR}}/$(basename {{.FILE}} .c).o" | |
| sources: | |
| - "{{.SRC_DIR}}/*.c" | |
| generates: | |
| - "{{.BUILD_DIR}}/*.o" | |
| link: | |
| desc: "オブジェクトファイルをリンクして実行ファイルを生成" | |
| deps: [compile-all] | |
| cmds: | |
| - mkdir -p "{{.BIN_DIR}}" | |
| - '{{.CC}} {{.CFLAGS}} {{.BUILD_DIR}}/*.o -o "{{.EXECUTABLE}}"' | |
| sources: | |
| - "{{.BUILD_DIR}}/*.o" | |
| generates: | |
| - "{{.EXECUTABLE}}" | |
| build: | |
| desc: "プロジェクトをビルド" | |
| deps: [link] | |
| run: | |
| desc: "ビルドしたプログラムを実行" | |
| deps: [build] | |
| cmds: | |
| - "{{.EXECUTABLE}}" | |
| dev: | |
| desc: "単一のCファイルをコンパイルして実行(例: task dev FILE=src/main.c)" | |
| requires: | |
| vars: [FILE] | |
| silent: false | |
| cmds: | |
| - mkdir -p "{{.BIN_DIR}}" | |
| - '{{.CC}} {{.CFLAGS}} "{{.FILE}}" -o "{{.BIN_DIR}}/{{base .FILE}}"' | |
| - "{{.BIN_DIR}}/{{base .FILE}}" | |
| sources: | |
| - "{{.FILE}}" | |
| generates: | |
| - "{{.BIN_DIR}}/{{base .FILE}}" |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Run
REFERENCES