VisualStudio で SWIG やるときのテンプレ(仮)。
そのうちプロジェクト整理して github にでもあげるけど、とりあえずのメモ。
SWIG 用にビルドターゲットつくって、
ビルド前イベントで swig コマンド打って、
ビルド後イベントで Python 側のテストコード走らせてる。
これだと Python コードだけ編集したときにテストが走らなくて不便なんだけど、真面目に実行ターゲットつくってごにょごにょするの面倒だし、個人レベルではこのあたりが楽かなと。
自動生成されるコードは C++ 側のビルドに含めたくないから、マクロで切り分けてる。
#ifdef _SWIG_PY #include "rte2_wrap.cxx" #endif
Python 側のテストコードはだいたいこんなかんじ。
# encoding: utf-8 import sys import os sys.path.append(os.path.join(os.getcwd(), "..", "SwigPy")) import unittest (以下略)
ビルド時の出力はこんなかんじ。
1>------ ビルド開始: プロジェクト:rte2, 構成:SwigPy Win32 ------ 1> _swig_py_wrap.cpp 1> ライブラリ D:\home\Documents\Visual Studio 2013\Projects\rte2\SwigPy\_rte2.lib とオブジェクト D:\home\Documents\Visual Studio 2013\Projects\rte2\SwigPy\_rte2.exp を作成中 1> コード生成しています。 1> コード生成が終了しました。 1> rte2.vcxproj -> D:\home\Documents\Visual Studio 2013\Projects\rte2\SwigPy\_rte2.pyd 1> ...... 1> ---------------------------------------------------------------------- 1> Ran 6 tests in 0.001s 1> 1> OK ========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========
以下、プロジェクト設定のスクショ。