友人と私は Qt Creator with Boost を使用してゲーム エンジンを構築しています。これまでのところ、エンジンは共有ライブラリになるという考えがあり、最終的に作成したいゲームに変わるテスト実行可能ファイルで実行できるという考えがあります。
問題は主にヘッダーファイルです。エンジンの最新のビルドがビルドされたらすぐに、または追加されたときにでも、Qt Creator がヘッダー ファイルを認識できる方法を見つけたいと思います。/usr/include
最初は、エンジンがビルドされた後に Qt Creator でビルド ステップとして実行される Python のスクリプトは、ヘッダー ファイルをシステム ディレクトリ (たとえば、* nix システムで動作している場合) にコピーするだけだと考えていました。 IDE は、エンジンをテスト実行可能ファイルにリンクするときにヘッダー ファイルを認識し、完全な自動補完もサポートします。
もちろん、環境変数が使用されます。私は Linux で開発することを好みますが、友人は Windows を好むので、それぞれのプラットフォームの好みに関して開発を行うことに同意しました。
これは良い解決策のように思えますが、この Python スクリプトのアイデアはやり過ぎかもしれません。これを行うより良い方法はありますか?
アップデート
提案されたQmakeスクリプトから、このエラーが発生します。
cp -f "/home/amsterdam/Programming/atlas/Engine/AtlasEngine/"AtlasEngine_global.h "/"
cp: cannot create regular file `/AtlasEngine_global.h': Permission denied
make: Leaving directory `/home/amsterdam/Programming/atlas/Engine/AtlasEngine__GCC__Linux__Debug'
make: *** [libAtlasEngine.so.1.0.0] Error 1
15:20:52: The process "/usr/bin/make" exited with code 2.
Error while building project AtlasEngine (target: Desktop)
When executing build step 'Make'
私の調整は次のようになります。
# Copy over build artifacts
SRCDIR = $$ATLAS_PROJ_ROOT
DESTDIR = $$ATLAS_INCLUDE
# Look for header files there too
INCLUDEPATH += $$SRCDIR
# Dependencies: mylib. Only specify the libs you depend on.
# Leave out for building a shared library without dependencies.
#win32:LIBS += $$quote($$SRCDIR/mylib.dll)
# unix:LIBS += $$quote(-L$$SRCDIR) -lmylib
DDIR = \"$$SRCDIR/\" #<--DEFAULTS
SDIR = \"$$IN_PWD/\"
# Replace slashes in paths with backslashes for Windows
win32:file ~= s,/,\\,g
win32:DDIR ~= s,/,\\,g
win32:SDIR ~= s,/,\\,g
for(file, HEADERS) {
QMAKE_POST_LINK += $$QMAKE_COPY $$quote($${SDIR}$${file}) $$quote($$DDIR) $$escape_expand(\\n\\t)
}