C/C++のソースコードを生成するツール

ソースをささっと書きたい、でも後で使うときに備えてそれなりの体裁に整えておきたい。そんなニーズを満たすべく、ソースコードを吐き出すツールを作っています。

https://github.com/vottie/codegen

使い方ですが、codegen.sh cって打つと、以下のような形でプロジェクト名とファイル名を入れてくださいって表示されます。

codegen % codegen.sh c

USAGE:

        codegen.sh c project_name file_name

codegen %

hello world的なものをやりたいなぁですと、

codegen % codegen.sh hello hello

これでhelloってディレクトリができます。その中に入って見ると、以下のファイルが出来上がっているはずです。

% ls
Makefile hello.c  hello.h  main.c
%
hello % cat main.c
#include <stdio.h>
#include "hello.h"

int main(int argc, char **args) {
    return 0;
}
hello % cat hello.c
#include <stdio.h>
#include "hello.h"

int execute() {
    return 0;
}
hello % cat hello.h
#ifndef HELLO_H_
#define HELLO_H_
/**
 *
 */
int execute();
#endif // HELLO_H_
hello % cat Makefile
CXX=gcc
CXXFLAGS= -O0 -Wall -g
LDFLAGS=
TARGET=main

OPT=
INC=
LIB=

SRC=$(shell ls *.c)
HEAD=$(shell ls *.h)
OBJ=$(SRC:. c=.o)

all: $(TARGET)

$(TARGET): $(OBJ)
        $(CXX) $(CXXFLAGS) -o $(TARGET) $(OBJ) $(LIB)

clean:
        $(RM) $(TARGET) *.o

私はMakefileを書くのは苦手です。コピペして作れば良いとは思うんですけど、さくっと書いて動かしたい時に、ニーズにあったMakefileを探すのが面倒だったり。ですので、Makefileを自動生成するツールを作ってみました。

上記のソースについては、execute()の中身を実装してmain.c側で呼び出してあげるように実装し、makeを実行すれば、mainという実行ファイルができると思います。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.