fafnir
fafnir copied to clipboard
Feat: support msys2
msys2のgcc(clangはだめ)でもビルドできたらいいなと思い対応してみた。
現在msys2のpacmanで拾えるgccは7.3.0だけれども、たしかgcc8.0.0からfilesystemがexperimentalではなくなるので、そのときは 78af762d5e6fbed6c0652c24eded8bcf3c055499, 77e6c8a0552a33106662879170065971bff71776 に改修が必要。
http://en.cppreference.com/w/cpp/io/basic_fstream/basic_fstream
std::experimentall::filesystemを使っている時点でどうなのという話ではあるが、このプロジェクトはC++17以前の環境をターゲットにしておらず、C++17ならstd::filesystem::path
やconst std::filesystem::path::value_type*
を受け取れるので、日本語パスの扱いが不安なコードはあまり入れたくない。
少なくともこのコードは、MSVCの環境ならCP932になってしまうので、入れるなら日本語パスに関するテストを追加した上で対象の環境を切り分けて欲しい。
正直な話Win32APIないしboostで書き換えたい。filesystem使うには時期尚早。そもそもmingwのwchar_t
周りは大体壊れていて地雷原を進むようなものなのでgcc8.0.0が来てもまともに実装されていると思えず、Win32API以外で使いたくない。
規模これ以上は大きくならないだろうと思われるためboostには依存したくない。 ターゲットがWindows以外になり得ないためWin32 APIに依存するのは構わない。