pyhaのGUIランチャー(一般の方やデザイナーの方には黒い画面必須はありえないから)を作ろうとしてるんですが、コードベースが共通でwindows, mac, linux対応のGUIランチャーを作るとすると何を使えばいいのか悩んでました。やはり各種環境でネイティブの見た目がいいということでQtを使い始めたんですが、そもそも各種環境で共通のやり方で外部プロセス(要はruby pyha.rb)を実行するやり方がよく分かりませんでした。

よく考えたらforkが出来ないってのはMinGWとか使えば解決じゃんということに考えが至りませんでした。とにかく「Windowsではforkが使えない」という先入観にやられてました。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    char cmd[] = "ruby -e \"puts 'ruby!'\"";
    system(cmd);
    return 0;
}

Windows(MinGW), Mac OS X, Linuxで上記のコードはフツーに動きました。何と素晴らしいんでしょう!

Qtの方は単なるランチャーで対したことしないのでそれ程大変じゃ無さそうです。(アイコンをどうやって設定するのかぐらい?)

ただ、そのGUIランチャーを同伴すると、Qtのライセンス(GPLv3 or LGPL)の影響でPyhaがMITライセンスで居られなくなるのかもしれません。どうなんだろう?

Comments


Option