問題タブ [scons]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
naming-conventions - sconsで「libhello.so.0.0.1」のような共有ライブラリ名を取得するにはどうすればよいですか?
sconsユーティリティを使用して共有ライブラリを生成しています。私が次のルールを書くとき:
SharedLibrary('hello'、'hello.c')
``libhello.so''ファイルを取得します。
`` libhello.so.version''のようなファイルを自動的に取得する方法はありますか?
tar - scons: ソース ディレクトリがビルド ディレクトリにコピーされない
ビルド プロセスの一部として、. にある入力ディレクトリの tar ファイルを作成しますsrc/bundle/bundle
。src/bundle/SConscript:
私のSConstructで:
ビルドしようとすると:
scons が src/bundle/bundle を tmp/bundle/bundle にコピーしていないことは明らかですが、その理由がわかりません。
脚注: mkvgconf に絶対パス名を使用するのは悪い習慣ですが、この問題が解決されるまでは中間的なものです。
windows - scons + windows: Command() ビルダーでシェルスクリプトを実行できません
私はそのようなコマンドビルダーを持っています:
jsontar = Command("bundle.tar", bundleDir, "mkvgconf $SOURCE $TARGET")
mkvgconf はシェル スクリプトです $SOURCE はディレクトリへのパスです $TARGET はファイルへのパスです
Windows で実行しようとすると、SCons は vgmkconf を実行可能ファイルとして認識しません。
Google が登場: http://www.scons.org/wiki/UsingPkgConfigMsysShellScripts
このスクリプトを使用すると、SCons が認識して実行を試みる mkvgconf.cmd を作成できます。残念ながら、SCons は $SOURCE と $TARGET を Windows 文字列ではなく UNIX パス文字列として渡します。パス文字列が誤って解釈され、ビルドが失敗します。
質問 1: どうすれば SCons に私のシェル スクリプトを認識させることができますか?
質問 2: 質問 1 に解決策がない場合、パス名をビルド プラットフォーム用に正しくフォーマットするにはどうすればよいですか?
windows - QProcess が引数の「=」をスペースに変換するのはなぜですか
Windows で実行している Qt プログラムで奇妙なエラーが発生しました。プログラムは QProcess を使用して、2 つの引数を持つ子プロセスを生成します。QProcess::start() メソッドに渡されるプログラムと引数の形式は次のとおりです。
何らかの理由で、等号を処理するためにこれらのオプションがバッチファイルに到達するまでに、スペースに変換され、次のようになります。
このため、処理は失敗します。等号がスペースに置き換えられる原因は何ですか? Qt ダウンロード ページにある QT 4.6.3 フレームワークの mingw ビルドを使用しています。
編集:これが実際のコードです。私はそれを書いたわけではありません (私は完全な Qt 初心者です) が、それを機能させるために努力する必要があります。これは、RHEL (4 および 5)、OS X、および Windows の 2 つのバージョンで実行される自動ビルド システムの一部です。また、Windows 以外のすべての場所で問題なく動作します。
Windows で変換される実際の値 (最初の qDebug() 印刷呼び出しで出力されるビット) は次のとおりです。
DEBUG: scons プロセスを開始しています: "V:\Glast_Software\Toaster\tools\Python2.5\Scripts\scons-1.3.0.bat" "--variant=Windows-i386-32bit-vc71-Debug" "--source- release=V:\Glast_Software\Toaster\ReleaseManagerBuild\Windows-i386-32bit-vc71\Debug\ScienceTools\LATEST-1-3163\ScienceTools-LATEST-1-3163-source.zip"
ただし、scons-1.3.0.bat 内では (実行されたすべてのコマンドをエコーするようにしました)、渡されたパラメーターは次のようになります。
"--variant Windows-i386-32bit-vc71-Debug" "--source-release V:\Glast_Software\Toaster\ReleaseManagerBuild\Windows-i386-32bit-vc71\Debug\ScienceTools\LATEST-1-3163\ScienceTools-LATEST -1-3163-source.zip"
等号がありません。
編集 (2010 年 6 月 29 日) : このシステムは、LSF バッチ キューイング システムを使用して小規模な Windows バッチ ファームで実行するように設計されていることを付け加えておきます。プロセスがバッチ ジョブとして実行されている場合にのみ失敗します。バッチ マシンの 1 つでコマンド ラインからこのプログラムを実行すると、完全に機能し、本来の動作を正確に実行します。なので、環境の問題かもしれません。
python - 古いコンパイラを使用するように scons を強制しますか?
ブーストを使用している C++ プロジェクトがあります。プロジェクト全体は、scons + Visual Studio 2008 を使用してビルドされています。Visual Studio 2010 をインストールしましたが、scons が古いコンパイラではなく新しいコンパイラを使用しようとしていることが判明し、boost および Visual Studio 2010 ドンとしてプロジェクトをビルドできませんでした。お互いがあまり好きではない - まだ. これを抑制し、scons に 2008 バージョンを使用するよう強制したいと考えています。これは可能ですか?どうやってこれを行うのですか?
scons - SConsの変更をテストする方法
私のチームはSConsに基づいたビルドシステムを作成しています。独自のsite_scons/site_toolsフォルダーに多数のヘルパークラスを作成しました。
私の仕事は、pyunitを使用して、コードでテストを作成して実行することです。テストコードはおそらくサブフォルダにあり、ディレクトリレイアウトは次のようになります。
今私の質問は次のとおりです。テストを呼び出すための最良の方法は、おそらく正しいSCons環境のセットアップが必要になることを考えると、何ですか?(つまり、a.pyはSCons.Environmentを使用します)
ビルダーまたはコマンドを追加しますか?または、他の何か?
path - scons-ソース/インクルードパス
私がこのディレクトリ構造を持っているとしましょう:
- SConstruct
- src /
- a.cpp
- b.cpp
- 含む/
- ああ
- bh
SConstructでは、毎回['src / a.cpp'、'scr/b.cpp']を指定したくありません。ベースソースディレクトリを「src」に設定する方法を探しています
ヒントはありますか?ドキュメントを調べてきましたが、役立つものが見つかりません
latex - XeTeX - 再実行が必要な場合に検出する
未定義の参照のために Xe(La)TeX の再実行がいつ必要になるかを判断しようとしています。関連する質問をSCons メーリング リストに投稿しましたが、問題は次のとおりです。
XeLaTeX の複数回の実行を必要とするページ カウントやその他の参照は、現時点では SCons やその他のビルド システムによって検出されないことがあります。以下にサンプル ファイルを示します (これを と呼びますjob.tex
)。
を実行するxelatex job
と、生成される .pdf には、3 ページのページ番号「Page 1 of 0」、「Page 2 of 0」、および「Page 3 of 0」が含まれます。2 回目に実行xelatex job
すると、"Page 1 of 3" など (つまり、正しいページ数) が表示されます。
これを修正するために、未定義の参照を解決するために xelatex を実行するかどうかを確認するには、次の正規表現を変更することを SCons メーリング リストで提案しました (SCons.Tools.tex
バージョン 2.0.1.beta.20100627.r5064 の 71 行目)。
実際には、これは「ファイル job.aux なし」のチェックです。Xe(La)TeX は最初の実行時に常に "No file job.aux" を出力し、Xe(La)TeX は常に 2 回実行されるため、これはすべての場合に機能します。job.aux
事実上、これはと の間の暫定ビルド ターゲットになったのjob.tex
と同じjob.pdf
です。
ここに問題があります: 未定義の参照がなくても (たとえば、上記\arabic{lastpage}
からを削除job.tex
)、Xe(La)TeX が 2 回呼び出され.aux
ます.pdf
。明らかに、未定義の参照がない場合、この 2 番目の呼び出しは不要です。
job.log
したがって、私の質問:再コンパイルが必要な未定義の参照 (\arabic{lastpage} など) がある場合とない場合を、おそらく正規表現を使用して検出する方法を教えてください。
読んでくれてありがとう。
よろしくお願いします、
ブライアン
unit-testing - scons と「Test Anything Protocol」の統合
Test Anything Protocolテスト フレームワークを持つプロジェクトをscons化しようとしています。
ここでの以前の作業について、または 2 つをスムーズに統合する方法を誰か教えてもらえますか? (ネイティブの python TAP ハーネスはありますか? カスタムTest::Harness
ラッパーなどにシェル アウトする必要がありますか?) ありがとうございます。
svn - sconsはSubversionチェックアウトをサポートしていますか?
一部のサイトからは、SconsがSubversionチェックアウトをサポートしているようです。
http://www.scons.org/doc/0.92/HTML/scons-user/x1625.html
ただし、最新の安定バージョン(2.0.0)のマニュアルページ/ユーザーガイドからは、Subversionはありません。変更ログには記載されていません。だから私は何が起こっているのだろうかと思っています。