問題タブ [omake]
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.
c++ - サブディレクトリを使用した OMake コンパイル
OMake のドキュメントを見ると、サブディレクトリのソースが使用されているようです。それらは常に最初に静的ライブラリにコンパイルされます。これは常に必要ですか?ライブラリをビルドせずにすべてをコンパイルしてリンクできますか? 私はこれのために OMakefiles を書き込もうとしましたが、成功しませんでした。
ディレクトリ構造の例:
myproject: OMakeroot、OMakefile、main.cpp
myproject/ヘッダー: file1.h
myproject/src: file1.cpp
myproject OMakeroot の内容:
ビルドを開く/C
.サブディレクトリ: .
myproject Omakefile の内容:
CXX = g++
CXXFLAGS = -壁
INCLUDES += ヘッダー src
CXXProgram(myapp, メインファイル1)
ヘッダーと src ディレクトリの OMakefiles は空で、そこに何かを入れる必要があるかどうかわかりません。
omake myapp を実行すると、次のエラーが表示されます。
「myapp」に必要な「file1.o」のビルド方法がわからない
post-build - omakeを使用したビルド後のテスト
ビルド後のコマンドをomakefileに追加する方法はありますか?ビルドが成功するたびにユニットテストを自動的に実行したいのですが、これを行うための最良の方法がわかりません。
build-system - ターゲット リスト ジェネレーターのビルド時に OMake でターゲットが不明なビルド ルールを処理する方法
ビルド システムに OMake を使用するプロジェクトがあり、かなり難しいコーナー ケースを処理しようとしています。
いくつかの定義ファイルと、これらの定義ファイルを取得して GraphViz ファイルを作成できるツールがあります。ただし、次の 2 つの問題があります。
- 各定義ファイルは複数のグラフを作成でき、作成できるグラフのリストはファイルにエンコードされています。私のダンプ ツールには
-list
、定義ファイルが生成するすべてのグラフを一覧表示するオプションがあります。 - このダンプ ツールは、ソース ツリーに組み込まれています。
- このリストを OMakefile で利用できるようにして、他のルールを使用して DOT ファイルを SVG に変換し、偽のターゲットをすべての SVG に依存させるようにします (目標: すべてのグラフの SVG 記述を構築する単一の構築コマンド)。
最初の問題だけがあれば、簡単です。ツールを実行してリストを作成し、そのリストを使用して、ダンパーを呼び出して GraphViz ファイルを出力するターゲットを作成します。ただし、必要になる前にダンプツールを強制的にビルドすることにかなりこだわっています。
もしそうなら、ダンプツールを構築するために再帰的にmake
実行するだけです。make
ただし、OMake では再帰呼び出しが許可されておらず、build
関数は からのみ使用できosh
ます。
この問題の良い解決策はありますか?
msbuild - おまけとnmakeの違い
おまけとnmakeの違いを教えてください。クリアケースを展開しているので、omakeからnmakeに移行したいと思います。おまけからnmakeへの移行のプロセスを説明してください。また、いくつかの合併症がある場合は私に知らせてください。
path - ディレクトリ名がOMakeで引用されていることを確認するにはどうすればよいですか?
特定のプラットフォームでクロスコンパイルするために設計された比較的複雑なOMakeファイルのスイートがあります。私のソースはC++です。
私はWindowsからビルドしているので、名前にスペースが含まれているディレクトリをコンパイラに渡す必要があります。ファイルをコンパイルするためにコマンドラインに挿入されるincludes文字列を作成する方法は、次の行です。
OMakeファイルの他の時点で、次のような行があります。
コマンドラインの途中で、これは次のように展開されます。
私はそれを次のように拡張したいと思います:
可能であれば、「INCLUDES + = ...」行以外は変更したくありませんが、そのファイル内の他の何かを変更することもできます。PREFIXED_INCLUDESの定義を変更するようなことはしたくありません。これは、SDKの一部であるOMakeファイルのスイートに含まれているためです。これは可能ですか?もしそうなら、どうすればそれを行うことができますか?そうでない場合、小さなmakefileコード(できれば1行)を変更することで、スペースを含むインクルードが引用符で囲まれていることをどのように確認できますか?
makefile - Makefileにハードコードされたパスがあります-それらを排除するためにocamlfindを使用する方法は?(または代わりにocamlbuildまたはomakeを使用する方法)
camlp4拡張機能(この場合はpa_deriving)を必要とするocamlプロジェクトをビルドしようとしています。これが私のMakefileです:
このMakefileは機能します。それは仕事を成し遂げます、しかし問題は私が上記のようにハードコードされたパスを持っているということです:/home/p/godi-3.12.1.0/lib/ocaml/site-lib/deriving-ocsigen/pa_deriving.cma OCamlの私のゴディインストール。コードとMakefileを配布して、誰でもそれを使ってビルドできるように、それらを取り除きたいと思います。
これにはomakeまたはocamlbuildを使用する必要がありますか?私はomakeを使いたいのですが、これにはOMakefileで遊んだことがありますが、何も機能しませんでした。何か提案をいただければ幸いです。
更新:次の_tagsファイルでocamlbuildを使用しようとしました:
次のocamlbuildコマンドを使用します。ocamlbuild-use-ocamlfindtest_logic.native-classic-display
そして私は得る:
これを修正するには、_tagsファイルに何を追加する必要がありますか?
makefile - 「omake -P」(サーバーモード) に代わるものはありますか?
omake ビルド システムには、コマンド ライン スイッチ「omake -P」で呼び出される「サーバー モード」と呼ばれる優れた機能があります。これにより、omake はファイル システムでファイルの変更を監視します。ファイルの変更があると、適切なビルド アクションが起動されます。
残念ながら、omake はもはや積極的にメンテナンスされていないようで、-P 機能は Ubuntu 12.04 で深刻な問題を抱えています。(誰かが気になるなら、私はこれらについてある程度詳しく議論することができます)。
omake -P に似た機能を持つ make/omake のようなビルドシステムを知っている人はいますか?
visual-studio-2010 - VisualStudio2010プロジェクトでOmakeビルドシステムを使用する方法
で正常に動作するプロジェクトがありVS-2010
ます。そして、うまく動作します。make-file
しかし、私はを使用して作成したいと思いますOmake
。で同じものを構築する方法Omake
。のすべてのドキュメントを確認しましたOmake
が、作成方法については説明していません。私のVS-2010
プロジェクトには.c, .cpp, .h, .rc
MFCも含まれていmany subdirectories
ます。
regex - omakeで貪欲な正規表現を取得しようとしています
私はomakeファイルで作業しており、パスを表す文字列を持っています。最初のディレクトリを削除しようとしています。
これは私の文字列です:
私はこの正規表現を書きました:
しかし、結果はユーティリティです。私が受け取りたいのはこの文字列ですが:\Common\noa\common\util
"?"
欲張らずに使ってみたのですが、ここでは動きません(omakeファイル)
誰かがそれを行う方法を知っていますか?
tfs - omake ビルドを ms ビルドに変換する方法はありますか
omake プロジェクト (clearcase) を msbuild (TFS) に変換したいと考えています。変換に使用できるツールがあれば教えてください。例を挙げていただければ幸いです