これまでの記事で、Qtはフルインストールしたが、非常に重たい。そこで、必要なサブモジュールだけをインストールする方法について書いておく。
この辺りを参考にすると、まずはqtbaseのみをconfigureしてbuildし、その後各モジュールのディレクトリでqmakeすれば良いとなっている。
このやり方でOpenFOAMのmakeQtと連携が取れるかを確認した。何度か試したところ必要なモジュールはqtbaseは必須としてqttools、qtx11extras、qtsvg、qtxmlpatternsのようので、それぞれ公式ページ(https://download.qt.io/)からダウンロードする。zip版はなぜか改行コードのエラーが出るためtar.xzをダウンロード。ここで、各サブモジュールの上位に位置するsuper moduleが見当たらない。公式のGit Repository Browser(https://code.qt.io/cgit/qt/qt5.git/tree/?h=5.9)からsuper moduleのconfigureの内容を確認すると、qtbaseにcdしてconfigureを実行するだけのスクリプトのようなのでmakeQtから直接qtbaseのconfigureを実行させた。
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ curl -O -L https://download.qt.io/archive/qt/5.9/5.9.3/submodules/qtbase-opensource-src-5.9.3.tar.xz
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ curl -O -L https://download.qt.io/archive/qt/5.9/5.9.3/submodules/qttools-opensource-src-5.9.3.tar.xz
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ curl -O -L https://download.qt.io/archive/qt/5.9/5.9.3/submodules/qtx11extras-opensource-src-5.9.3.tar.xz
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ curl -O -L https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtsvg-opensource-src-5.9.3.tar.xz
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ curl -O -L https://download.qt.io/official_releases/qt/5.9/5.9.3/submodules/qtxmlpatterns-opensource-sr
c-5.9.3.tar.xz
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ xz -d qtbase-opensource-src-5.9.3.tar.xz
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ tar xf qtbase-opensource-src-5.9.3.tar
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ xz -d qttools-opensource-src-5.9.3.tar.xz
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ tar xf qttools-opensource-src-5.9.3.tar
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ xz -d qtx11extras-opensource-src-5.9.3.tar.xz
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ tar xf qtx11extras-opensource-src-5.9.3.tar
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ xz -d qtsvg-opensource-src-5.9.3.tar.xz
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ tar xf qtsvg-opensource-src-5.9.3.tar
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ xz -d qtxmlpatterns-opensource-src-5.9.3.tar.xz
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ tar xf qtxmlpatterns-opensource-src-5.9.3.tar
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ mv qtbase-opensource-src-5.9.3 qt-everywhere-opensource-src-5.9.3
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ ./makeQt -qt-5.9.3
無事にqtbaseがビルドできたので、各サブモジュールをビルドする。
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ cd qttools-opensource-src-5.9.3
user@instance-1:~/OpenFOAM/ThirdParty-v2012/qttools-opensource-src-5.9.3$ $WM_THIRD_PARTY_DIR/platforms/linux64Gcc/qt-5.9.3/bin/qmake
Info: creating stash file /home/user/OpenFOAM/ThirdParty-v2012/qttools-opensource-src-5.9.3/.qmake.stash
Info: creating cache file /home/user/OpenFOAM/ThirdParty-v2012/qttools-opensource-src-5.9.3/.qmake.cache
user@instance-1:~/OpenFOAM/ThirdParty-v2012/qttools-opensource-src-5.9.3$ make
(省略)
user@instance-1:~/OpenFOAM/ThirdParty-v2012/qttools-opensource-src-5.9.3$ make install
(省略)
user@instance-1:~/OpenFOAM/ThirdParty-v2012/qttools-opensource-src-5.9.3$ cd ../qtx11extras-opensource-src-5.9.3
user@instance-1:~/OpenFOAM/ThirdParty-v2012/qtx11extras-opensource-src-5.9.3$ $WM_THIRD_PARTY_DIR/platforms/linux64Gcc/qt-5.9.3/bin/qmake
Info: creating stash file /home/user/OpenFOAM/ThirdParty-v2012/qtx11extras-opensource-src-5.9.3/.qmake.stash
Info: creating cache file /home/user/OpenFOAM/ThirdParty-v2012/qtx11extras-opensource-src-5.9.3/.qmake.cache
user@instance-1:~/OpenFOAM/ThirdParty-v2012/qtx11extras-opensource-src-5.9.3$ make
(省略)
user@instance-1:~/OpenFOAM/ThirdParty-v2012/qtx11extras-opensource-src-5.9.3$ make install
(省略)
user@instance-1:~/OpenFOAM/ThirdParty-v2012/qttools-opensource-src-5.9.3$ cd ../qtsvg-opensource-src-5.9.3
user@instance-1:~/OpenFOAM/ThirdParty-v2012/qtsvg-opensource-src-5.9.3$ $WM_THIRD_PARTY_DIR/platforms/linux64Gcc/qt-5.9.3/bin/qmake
Info: creating stash file /home/user/OpenFOAM/ThirdParty-v2012/qtsvg-opensource-src-5.9.3/.qmake.stash
Info: creating cache file /home/user/OpenFOAM/ThirdParty-v2012/qtsvg-opensource-src-5.9.3/.qmake.cache
user@instance-1:~/OpenFOAM/ThirdParty-v2012/qtsvg-opensource-src-5.9.3$ make
(省略)
user@instance-1:~/OpenFOAM/ThirdParty-v2012/qtsvg-opensource-src-5.9.3$ make install
(省略)
user@instance-1:~/OpenFOAM/ThirdParty-v2012$ cd qtxmlpatterns-opensource-src-5.9.3
user@instance-1:~/OpenFOAM/ThirdParty-v2012/qtxmlpatterns-opensource-src-5.9.3$ $WM_THIRD_PARTY_DIR/platforms/linux64Gcc/qt-5.9.3/bin/qmake
Info: creating stash file /home/user/OpenFOAM/ThirdParty-v2012/qtxmlpatterns-opensource-src-5.9.3/.qmake.stash
Info: creating cache file /home/user/OpenFOAM/ThirdParty-v2012/qtxmlpatterns-opensource-src-5.9.3/.qmake.cache
Running configuration tests...
Done running configuration tests.
Configure summary:
QtXmlPatterns:
XML schema support ..................... yes
Qt is now configured for building. Just run 'make'.
Once everything is built, Qt is installed.
You should NOT run 'make install'.
Note that this build cannot be deployed to other machines or devices.
Prior to reconfiguration, make sure you remove any leftovers from
the previous build.
user@instance-1:~/OpenFOAM/ThirdParty-v2012/qtxmlpatterns-opensource-src-5.9.3$ make
(省略)
user@instance-1:~/OpenFOAM/ThirdParty-v2012/qtxmlpatterns-opensource-src-5.9.3$ make install
(省略)
これでParaViewのビルドに必要な最低限のQtモジュールがインストールできたはず。
再インストールしたら、fontのシンボリックリンク作成をもう一度行っておく。
user@instance-1:~$ ln -s /usr/share/fonts/truetype/dejavu \
OpenFOAM/ThirdParty-v2012/platforms/linux64Gcc/qt-5.9.3/lib/fonts