問題タブ [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.

0 投票する
1 に答える
801 参照

c++ - SConsを使用した外部コードツリーの構築

システムにインストールされているソースで利用可能なライブラリに依存するソフトウェアを構築するためにSConsを使用しようとしています。たとえば/usr/share/somewhere/src*.cppそのディレクトリにあるものを静的ライブラリに組み込み、自分のコードにリンクする必要があります。図書館の情報源にはそのSConscript中にはありません。

ライブラリはシステムディレクトリにあるので、私には権限がなく、ビルドアーティファクトをのどこかに置きたくありません/usr/tmpまたは.build現在の作業ディレクトリでOKです。これは簡単にできると思いますが、これらすべてに巻き込まれていSConscriptsますVariantDirs

SConsの問題を解決するための意図された方法は何ですか?

0 投票する
4 に答える
2497 参照

python - distutils のビルド エンジンとして SCons を使用する

拡張機能をビルドするために必要な C コードを含む python パッケージがあります (重要なビルドのニーズがあります)。私は SCons をビルド システムとして使用しました。SCons は非常に優れていて柔軟性があるからです。

distutils で配布する準備ができている SCons を使用して Python 拡張機能をコンパイルする方法を探しています。ユーザーが単純に setup.py install と入力して、デフォルトの distutils ビルド エンジンの代わりに SCons でコンパイルされた拡張機能を取得することを望んでいます。

頭に浮かぶアイデアは、distutils で build_ext コマンドを再定義することですが、詳細なドキュメントが見つかりません。

なにか提案を?

0 投票する
1 に答える
965 参照

scons - Sconsを使用して-DOEM="FOOBAR"などの特定のCPPDEFINEを生成する方法

私の意図は、-DOEM ="FOOBAR"を含むコンパイラコマンドラインで終わることです。

SConstructファイルに次のものがあります。

次に、「overrides.py」ファイルに次のように配置します。

生成されるコマンドラインに「-DOEM=FOOBAR」が表示されてしまうようです。誰かが私を正しい方向に向けることができますか?ありがとう。

0 投票する
2 に答える
21102 参照

c - SConsを使用して、LinuxでデフォルトのCコンパイラを変更する

私のLinuxプラットフォームには、いくつかのバージョンがありgccます。

私の下usr/binに:

  • gcc34
  • gcc44
  • gcc

ここにいくつかの出力があります:

4.4バージョンを使用する必要がありgccますが、デフォルトは4.1バージョンのようです。

シンボリックリンクを使用せずにデフォルトのコンパイラを置き換え/usr/bin/gccて作成する方法はありますか?gcc44/usr/bin/gcc44

シンボリックリンクを使用できない理由は、コードをを使用してRPMパッケージで出荷する必要があるためmockです。mock最小限のLinuxインストールを最初から作成し、コードをコンパイルする前に、指定された依存関係をインストールするだけです。この「最小インストール」をカスタマイズできません。

理想的には、完璧な解決策は、デフォルトのコンパイラとして置き換えgccられる公式のRPMパッケージをインストールすることです。そのようなパッケージはありますか?これも可能/良いですか?gcc44

追加情報

SConsmake代替)を使用する必要がありますが、使用するバイナリを指定できませgcc

gccまた、ファイルでバイナリを指定する方法を教えてくれる答えも受け入れSConstructます。

0 投票する
2 に答える
403 参照

c++ - fltk-configの出力がgccへの引数を切り捨てるのはなぜですか?

ダウンロードしたSCONSの「makereplacement」とFastLightToolKitGuiを使用するアプリケーションを作成しようとしています。

fltkの存在を検出するためのSConstructコードは次のとおりです。

残念ながら、私の(Gentoo Linux)システムや他の多くの(Linuxディストリビューション)では、パッケージマネージャーがFLTK-1とFLTK-2の同時インストールを許可している場合、これは非常に厄介なことがあります。

SConstructファイルを次のように追加して使用するように変更しようfltk-config --cflagsとしましたfltk-config --ldflags(またはそれfltk-config --libsよりも優れている可能性があります)。ldflags

しかし、これによりlibloのテストが失敗します!調べると、config.logどのように失敗したかがわかります。

これは実際にどのように行う必要がありますか?

そして、私の答えを完成させるために、どうすれば結果から引用符を削除できos.popen( 'command').read()ますか?

編集fltk-configここでの本当の問題は、gccがコンパイルするはずのfilename引数を受け取らない原因の出力を追加するのはなぜですか?

0 投票する
2 に答える
9737 参照

static - 共有よりも静的ライブラリの使用を強制するにはどうすればよいですか?

私のSConscriptには、次の行があります。

他のライブラリと動的にリンクしながら、sconsにmylib.soの代わりにmylib.aを使用させるにはどうすればよいですか?

編集:プラットフォーム固有のハックをできるだけ少なくすることを検討しています。

0 投票する
1 に答える
2638 参照

delphi - SConscript ビルダーに強制的にディレクトリを変更させるにはどうすればよいですか?

現在、私は 100 万 sloc のレガシー プロジェクトを退屈な .cmd スクリプトから SCons に移植しようとしています。その一部は VC++ で、他は Delphi です。C++ 部分の SConscripts の作成は簡単でした。

Delphi 部分をビルドするために、プログラムかライブラリ プロジェクトかを検出する非常に単純なビルダーを作成しました。SConscript を介して連鎖した後にビルダーを呼び出すと、scons が dcc32 $subdir/project.dpr を呼び出すようになり、dcc32 が $subdir ではなく現在のディレクトリでユニットを探すように誤解させます。

sconscript にあるコマンドを実行する前に $subdir に入るように scons に指示する方法はありますか、それともビルダー内で修正する必要がありますか?

前もって感謝します

0 投票する
3 に答える
1844 参照

naming-conventions - sconsで「libhello.so.0.0.1」のような共有ライブラリ名を取得するにはどうすればよいですか?

sconsユーティリティを使用して共有ライブラリを生成しています。私が次のルールを書くとき:

SharedLibrary('hello'、'hello.c')

``libhello.so''ファイルを取得します。

`` libhello.so.version''のようなファイルを自動的に取得する方法はありますか?

0 投票する
1 に答える
786 参照

tar - scons: ソース ディレクトリがビルド ディレクトリにコピーされない

ビルド プロセスの一部として、. にある入力ディレクトリの tar ファイルを作成しますsrc/bundle/bundle。src/bundle/SConscript:

私のSConstructで:

ビルドしようとすると:

scons が src/bundle/bundle を tmp/bundle/bundle にコピーしていないことは明らかですが、その理由がわかりません。

脚注: mkvgconf に絶対パス名を使用するのは悪い習慣ですが、この問題が解決されるまでは中間的なものです。

0 投票する
1 に答える
1099 参照

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 に解決策がない場合、パス名をビルド プラットフォーム用に正しくフォーマットするにはどうすればよいですか?