問題タブ [external-project]
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.
cmake - ExternalProject_Add でターゲットを指定するには?
ExternalProject を使用する場合、特定のターゲットのみをビルドすることはできますか? 特に、OpenCoarrays ライブラリの MPI バージョンのみをダウンロードしてビルドする必要があります。私は試した
ただし、シリアル バージョンと MPI バージョンの両方をビルドします。それが不可能な場合は、ハックも大歓迎です。
cmake - Cmake 外部プロジェクト インストーラー
Windows ディストリビューションが tarball ではなく .exe インストーラーである外部プロジェクトがあります。コマンド ラインから .exe を実行することもできましたが、もちろん cmake は、URL に tarball ファイル名が見つからないと文句を言います。.exe インストーラーで ExternalProject を使用する方法はありますか?
cmake - 現在のコンパイラを ExternalProject に転送しています
私はExternalProjectモジュールを使用しようとしていました:
そして、私が思いついた問題があります。このモジュールは、何らかの理由で、(親) cmake と CMAKE_BUILD_TYPE で使用されるコンパイラを転送しません。
CMAKE_CACHE_DEFAULT_ARGS を使用して CMAKE_CXX_COMPILER を直接設定しようとしましたが、うまくいきませんでした。
この動作について適切な説明はありますか?現在使用されているコンパイラ/ビルド構成を ExternalProject に転送する適切な (cmake っぽい) 方法はありますか?
c++ - ExternalProject_Addを使用したCMakeリンクエラー1
最近、C++ プロジェクトのビルド システムを CMake に切り替えました。私はExternalProject_Add関数を使用して必要なライブラリをダウンロードしようとしています(現在3つあり、GLMとTINYOBJは静的で、GLFWは静的または動的のいずれかです)。gitを使用してプロジェクトにリンクします。複数のプラットフォームでビルドできるように、これらのライブラリ (および場合によっては他のライブラリ) を最小限の労力でリンクできるようにしたいと考えています。または、他の誰かがプロジェクトに取り掛かる場合、正しいライブラリをインストールすることについてあまり心配する必要はありません。
ただし、ビルド時にこれらのエラーが発生し続けます(MinGWを使用したWindows 10で):
私のディレクトリ構造は次のようになります。
ここに私のCMakeLists.txtがあります:
これは deps-CMakeLists.txt ファイルです。
私の「メイン」は、エラーで「未定義の参照」として参照されているすべてのファイルとともに、「src」ディレクトリの Main.cpp にあります。すべてのライブラリのインクルード ディレクトリを追加し (ExternalProject_Add コマンドの直後)、GLFW 用にビルドされている動的ライブラリをリンクしようとしましたが、まだ機能していないようです。
これを正しくビルドするには何が欠けていますか? どんな助けでも大歓迎です。
アップデート:
ExternalProject_Add
Craig Scott が提案したように、ビルドの構成フェーズ中に実行されるコマンドを別のファイルに移動し、いくつかのことをシャッフルしました。すべての外部ライブラリがリンクされていることを確認しました。CMake ファイルが機能することを確認するために、別のテスト プロジェクトで各ライブラリを個別にテストしました。
私が取得している「未定義の参照」はすべて、私が作成したファイルからのもので、ソース ツリーにあります。どのように/なぜそれらが含まれていないのですか?
注:「src」ディレクトリも含めようとしましたが、何もしていないようです。
cmake - 並列 CMake ExternalProject ビルドの実行方法
CMake プロジェクト (Windows など) をビルドする場合、次のコマンドを実行して並列ビルドを実行できます。
/m スイッチが msbuild に渡され、並列化されたビルドが取得されます。ただし、CMakeLists に外部プロジェクトがある場合、そのスイッチはビルド コマンドに渡されません。
ExternalProject が並行してビルドされるようにする最善の方法は何ですか? 回避できるのであれば、BUILD_COMMAND をハードコーディングしたくありません。
build - CMake を使用した ExternalProject のインストール
私の の 1 つに次のコードがありますCMakeLists.txt
。
インストールしようとしている TARGET に加えて、この ExternalProject をインストールするにはどうすればよいですか? 今、私は次のようにしようとしています:
しかし、次のエラーがスローされます。
助言がありますか?
c++ - メインのものを構成しながらcmake ExternalProjectをビルドする方法は?
インストール ターゲットが台無しになっている場合、ExternalProjects を参照するのは面倒な場合があります。そのため、特定のプロジェクトのメイン プロジェクト ファイルを生成する前に、ExternalProjects をビルドしてインストールする必要がある場合があります。CMakeで可能ですか、それを行う方法は?