cmakeチュートリアル(5)-cpackを使用してインストールパッケージを生成

4932 ワード

【cmakeシリーズ使用チュートリアル】
cmake使用チュートリアル(一)-スタート
cmake使用チュートリアル(二)-ライブラリの追加
cmake使用チュートリアル(3)-インストール、テスト、システムセルフテスト
cmake使用チュートリアル(4)-ファイルジェネレータ
cmakeチュートリアル(5)-cpackを使用してインストールパッケージを生成
cmake使用教程(六)-卵痛の文法
cmake使用チュートリアル(7)-プロセスとループ
cmake使用チュートリアル(8)-macroとfunction
このシリーズの文章は公式cmakeチュートリアル:cmake tutorialから翻訳されています.
サンプルプログラムアドレス:github.com/rangaofei/t...
公式チュートリアルにとどまることはありません.私はアンドロイド開発者として、linux cプログラムの開発経験がありません.チュートリアルはmacosの下で完成して、大部分のlinuxは私もテストしたことがあって、特殊な説明がある私は表示します.このチュートリアルはcmake-3.10.2に基づいており、cmakeをインストールしたと考えられています.
私たちのプロジェクトを他の人に配布したい場合は、インストールして使用することができます.cygwin、debian、rpmなど、バイナリインストールおよびパッケージ管理機能をサポートするインストールパッケージを構築するために、さまざまなプラットフォームで実行可能なファイルまたはソースファイルを提供することを望んでいます.これを実現するために、CPackを使用して、セクションパッケージで説明したプラットフォーム固有のインストーラを作成します.具体的には、ルートディレクトリCMakeLists.txtの下部にコードをいくつか追加する必要があります.
# build a CPack driven installer package
include (InstallRequiredSystemLibraries)
set (CPACK_RESOURCE_FILE_LICENSE  
     "${CMAKE_CURRENT_SOURCE_DIR}/License.txt")
set (CPACK_PACKAGE_VERSION_MAJOR "${Tutorial_VERSION_MAJOR}")
set (CPACK_PACKAGE_VERSION_MINOR "${Tutorial_VERSION_MINOR}")
include (CPack)

まずInstallRequiredSystemLibrariesを入れます.このモジュールには、現在のプラットフォームプロジェクトに必要なランタイムライブラリが含まれます.次に、プロジェクトのライセンス情報やバージョン情報などのCPack変数について説明します.最後に、先ほど定義した変数変数とシステムの他のプロパティを使用してインストーラを設定するCPackモジュールを追加します.外部構築を実行し、生成されたファイルに何があるかを確認します.
 ~/Desktop/Tutorial/Step6/build/ tree -L 1
.
├── CMakeCache.txt
├── CMakeFiles
├── CPackConfig.cmake
├── CPackSourceConfig.cmake
├── CTestTestfile.cmake
├── Makefile
├── MathFunctions
├── TutorialConfig.h
└── cmake_install.cmake

このうち2つの生成されたファイルCPackConfig.cmake,CPackSourceConfig.cmakeは、後で大きく役立つことに注意してください.
次のステップは、一般的な方法でプロジェクトを構築し、CPackを実行します.バイナリ・バージョンを構築するには、次の手順に従います.
cpack --config CPackConfig.cmake

下にはログがあります.
CPack: Create package using STGZ
CPack: Install projects
CPack: - Run preinstall target for: Tutorial
CPack: - Install project: Tutorial
CPack: Create package
CPack: - package: /Users/saka/Desktop/Tutorial/Step6/build/Tutorial-1.0.1-Darwin.sh generated.
CPack: Create package using TGZ
CPack: Install projects
CPack: - Run preinstall target for: Tutorial
CPack: - Install project: Tutorial
CPack: Create package
CPack: - package: /Users/saka/Desktop/Tutorial/Step6/build/Tutorial-1.0.1-Darwin.tar.gz generated.

2つのパッケージが生成されたファイルTutorial-1.0.1-Darwin.sh,Tutorial-1.0.1-Darwin.tar.gzがログから表示される.ディレクトリを確認します.
 ~/Desktop/Tutorial/Step6/build/ tree -L 1
.
├── CMakeCache.txt
├── CMakeFiles
├── CPackConfig.cmake
├── CPackSourceConfig.cmake
├── CTestTestfile.cmake
├── Makefile
├── MathFunctions
├── Tutorial
├── Tutorial-1.0.1-Darwin.sh
├── Tutorial-1.0.1-Darwin.tar.gz
├── TutorialConfig.h
├── _CPack_Packages
├── cmake_install.cmake
└── install_manifest.txt

圧縮パッケージ内のファイルを確認します.
 ~/Desktop/Tutorial/Step6/build/ tar -tf Tutorial-1.0.1-Darwin.tar.gz 
Tutorial-1.0.1-Darwin/bin/
Tutorial-1.0.1-Darwin/bin/Tutorial
Tutorial-1.0.1-Darwin/bin/libMathFunctions.a
Tutorial-1.0.1-Darwin/include/
Tutorial-1.0.1-Darwin/include/MathFunctions.h
Tutorial-1.0.1-Darwin/include/TutorialConfig.h

これはすでにコンパイルされた問答圧縮で、解凍して直接実行できます.
ソース・バージョンを構築するには、次の手順に従います.
cpack --config CPackSourceConfig.cmake

ログ出力は基本的に同じですが、パッケージ内のファイルが異なるだけです.
 ~/Desktop/Tutorial/Step6/build/ tar -tf Tutorial-1.0.1-Source.tar.gz 
Tutorial-1.0.1-Source/CMakeLists.txt
Tutorial-1.0.1-Source/TutorialConfig.h.in
Tutorial-1.0.1-Source/tutorial.cxx
Tutorial-1.0.1-Source/MathFunctions/
Tutorial-1.0.1-Source/MathFunctions/MakeTable.cxx
Tutorial-1.0.1-Source/MathFunctions/mysqrt.cxx
Tutorial-1.0.1-Source/MathFunctions/CMakeLists.txt
...

もちろん、私たちはこの2つのファイルを自分で作成してファイルを生成するルールをカスタマイズすることもできますが、暇な卵が痛い人だけが自分で2つのものを書くと思います.
基本的な使用教程はすでに終わって、このように公式で、このように穴のお父さんです.パッケージングを無視したファイルをどのように追加するかは説明されず、パッケージング生成のファイル名をカスタマイズする方法は説明されず、パッケージング生成の圧縮パケットの位置をどのように制定するかは説明されず、圧縮パケットを生成するタイプをどのように指定するかは説明されていない.このように公式で、このように穴のお父さんです.後のチュートリアルで穴を埋めます.