私は単一のNSISインストーラに複数のコンポーネントをリストするのではなく、複数のNSISインストーラ実行ファイルを生成したい(サブプロジェクトを持つ)プロジェクトが1つあります。これは可能ですか?あるいは、自分のコードを別々のプロジェクトに編成する必要がありますか?CMake/CPackは、1つのプロジェクトに対して複数のNSISインストーラを生成できますか?
5
A
答えて
0
CMake属性を提供することができる。 COMPONENT
は、次のような定義済みのパッケージ名から値を設定することができます:COMPONENT_1 | COMPONENT_2 | ... COMPONENT_X
パッケージ名は単一のコンポーネント名には対応していませんが、 CPACK_COMPONENTS_ALLに追加されるコンポーネント。 COMPONENTがALL_COMPONENTSに等しい場合、CPACK_COMPONENTS_ALLの値にはすべての可能なコンポーネントが含まれます。
cmakeの包装:
if (WIN32)
set (CPACK_COMPONENTS_ALL ${COMPONENT})
set (CPACK_PACKAGE_NAME ${COMPONENT})
set (CPACK_COMPONENT_${COMPONENT}_DISPLAY_NAME "${COMPONENT}")
set (CPACK_COMPONENT_${COMPONENT}_DESCRIPTION "${COMPONENT}")
set (CPACK_NSIS_DISPLAY_NAME "${COMPONENT}")
set (CPACK_NSIS_PACKAGE_NAME "${COMPONENT}")
set (CPACK_NSIS_INSTALL_ROOT "C:")
set (CPACK_GENERATOR NSIS)
else()
...
endif()
は、あなたが例えば実行します各コンポーネント用のインストーラを作成するには:
バイナリがあるので、nmake package
の最初の実行に構築することを念頭に置いて
cmake -COMPONENT=COMPONENT_1 ../
nmake package
cmake -COMPONENT=COMPONENT_2 ../
nmake package
...
cmake -COMPONENT=COMPONENT_X ../
nmake package
ベアその後のcmake
とnmake package
の呼び出しは、パッケージングのみを再構成し、要求されたコンポーネント(別名コンポーネント)を作成するだけです。
関連する問題
- 1. NSISインストーラから複数のアプリケーションをインストールできない
- 2. devicefarmの1つのプロジェクトに対して複数のテスト実行を作成できますか
- 3. 複数のアプリケーションを1つのプロジェクトに、または1つのプロジェクトをFirebaseに配置できますか?
- 4. 1人のインストーラで複数のインストーラ/ exeを実行していますか?
- 5. 1つのプロジェクトに対して複数のオンラインリポジトリを作成することは可能ですか?
- 6. JUnit:1つのメソッドに対して複数のテストメソッドを作成しますか?
- 7. nsisインストーラはバックグラウンドで開始します
- 8. NSISインストーラがバックグラウンドで開きます
- 9. NSISインストーラがバックグラウンドで開きます。
- 10. 複数のスプレッドシートに対して1つのスクリプトを作成することはできますか?
- 11. VISTAでNSISインストーラをサイレントに実行できますか?
- 12. 複数の入力フィールドに対して1つのFormControlを作成します。
- 13. 1つのコードから複数のプロジェクトを1つのメイクファイルに作成する
- 14. コードネーム1は複数のプロジェクトでiOS証明書を生成
- 15. NSISのパッチ適用(複数のパッチを1つのファイルに)
- 16. 1つのプロジェクトに対して2つのクラウド関数を作成しますか?
- 17. 1つのボタンに対して1つのonClickで複数の関数
- 18. 1つの親プロジェクトから複数の新しいプロジェクトAPKを作成する
- 19. Weblogic内の複数の管理対象サーバに対して1つのノードマネージャを設定できますか
- 20. NSISで擬似インストーラを作成するには?
- 21. NSIS - インストーラ自体をコピーします
- 22. 1つのソリューション構成内に複数のプロジェクト構成を構築できますか?
- 23. スパークは、複数の列を持つ1つのrowKeyに対してHFileを作成します。
- 24. 複数のオブジェクトに対して汎用関数を作成できますか?
- 25. Visual Studioで単一アプリケーション用に複数のプロジェクトから単一インストーラを作成
- 26. 1つのWebサイトで複数のDjangoプロジェクトを実行できますか?
- 27. 複数のEclipseプロジェクトを1つのMercurialリポジトリに作成
- 28. MySQLは複数の行に対してUUID()を生成します
- 29. ユニバーサルアナリティクス - 1つのディメンションと1つのページビューに対して複数の値をプッシュ
- 30. 複数のページで1つのフォームを作成しますか?
インストーラ実行ファイルをサブプロジェクト単位で実行しますか?もしそうなら、インストーラを使ってすべてのサブプロジェクトを単独でビルドしてみませんか? make NSISインストーラ(と他のもの)がインストールされたファイルを分割するためには、それらを異なる*コンポーネント*に割り当てる必要があります。すべてのサブプロジェクトを開始する 'project()'コマンドは、CPackには意味がありません。 – Tsyvarev