2016-03-29 23 views
0

は、いくつかの設定ファイルから読み込まれるパスをインストールCMakeの使用は(私はdebパッケージを必要とする)パッケージをインストールターゲットを作成する方法がある設定ファイルのパスをインストールします(例: /etc/myconfig.cfg)をにインストールすると、になります。私はシェルスクリプトを使ってそれを行うことができますが、私はCMakeとCPackの可能性を使用したいと思います。CMakeおよびCPack。

cmake_minimum_required(VERSION 2.8.11 FATAL_ERROR) 
project("My project") 
add_executable(a.out main.cpp) 

/etc/myconfig.cfg

私は時間にCMakeLists.txt開始

非常に簡単な例をではmyconfig.cfgを読んでインストールするには、生成されたdebパッケージが欲しいです

set(INSTALL_PATH "/var/path1") 

または

INSTALL_PATH = /var/path1 

など。

答えて

1

なぜ使用しないのですかCMAKE_INSTALL_PREFIX?例:

cmake -DCMAKE_INSTALL_PREFIX=/usr/boob .. 
+0

1)作成するだけでなく、cmakeを開始する必要があります。 2)私はdebパッケージをインストールするコンピュータにcmake、gccなどの依存関係が存在することは望ましくありません。コンパイル済みのファイルのみをインストールする必要があります。私が理解しているように、cmakeを使ってそのようなdebパッケージを行うことができるなら、cmakeスクリプトのインストール手順を使用します。 3)私の本当の仕事はより複雑で、すべてを手動で管理するのは難しいです。私がこの簡単な例を行う方法を理解していれば、他のすべてをやります。 –

+0

1.どちらの方法でも、debパッケージのCONTROLスクリプトの処理方法をcmakeに伝える必要があります。私はあなたがちょうどcmakeを開始することを理解しますが、あなたは何かを背景なしにやりたいことや期待していることにジャンプすることはできません。 2.必要はありませんが、プロセスを完全に自動化するには、最初に開発者のハードコードが必要です。手で唯一の方法です、私の友人。 [configure_file](https://cmake.org/cmake/help/v3.0/command/configure_file.html)に関するドキュメントや例をご覧になることをお勧めします.CMAKE_INSTALL_PREFIXは、最初の手順で役立ちます。 – Joel

+0

私は高速のcgiアプリケーションを開発しています。各新しいバージョンは、いくつかのファイルを含む新しい場所にインストールし、以前のバージョンが動作している間に起動する必要があります。その後、Webサーバーの設定を変更し、以前のバージョンを停止して削除する必要があります。私は、このプロセスを自動化する方法を知るためにこの質問をしました。私はクロスプラットフォームではないシェルスクリプトを使ってこれを行い、プロジェクトをコンパイルする際にcmakeを使ってすべてをやりたいと思います。しかし、私はcmakeで何かをする方法がわかりません。非常に醜い。 –