LoginSignup
1
1

More than 5 years have passed since last update.

コードにコンパイル日時を埋め込みたい

Last updated at Posted at 2013-05-22

モチベーション

コンパイルしたときの日時情報(C/C++ の __DATE__ や __TIME__)が欲しくなることがあります。

解決方法

次のマクロを使う。マクロの展開がコンパイル時であることを利用する。

# pythonじゃないよ。Booだよ。
import Boo.Lang.Compiler.Ast

# build_date: 引数名の変数にコンパイル日時を代入するコードを生成するマクロ。
macro build_date( vn as ReferenceExpression ):
    # この行はコンパイル時(build_date が展開されるとき)に実行されるので、dt にはコンパイル時の日時文字列が代入される。
    dt = System.DateTime.Now.ToString() 

    # ここはコンパイル時に展開されて、ランタイムコードとなる部分。
    yield [|
        $(vn) = $(dt)  # コンパイル日時文字列をコードに埋め込む。
    |]

次のように使う。

build_date bd
print "build: ${bd}"
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1