1

次の問題について助けていただきたいです。

私は、Launchpad の Recipes 機能を使用して毎日ビルドされた debian パッケージを持っています。バージョン名 (およびソース ディレクトリの名前) は自動的に生成され、現在のリビジョン番号が含まれます。リビジョン番号を抽出して CMake に渡すように debian/rules ファイルを変更したいと考えています。

これまでのところ動作しません - 空の文字列が CMake に渡されているようです。問題が私のmakeコードにあるのか、それとも他の何かにあるのかわかりません。

ルール ファイル:

#!/usr/bin/make -f

# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1

%:
    dh $@ --parallel --list-missing

# Try to detect the Bazaar revision number from the directory name
ifneq ($(findstring bzr,$(PWD)),)
COMPONENTS := $(PWD)
COMPONENTSL := $(subst -,' ',COMPONENTS)
COMPONENTSLL := $(subst ~,' ',COMPONENTSL)
BZRVER := $(filter bzr%,COMPONENTSLL)
BZRVERN := $(subst bzr,,$(BZRVER))
override_dh_auto_configure:
    dh_auto_configure -- -DRELEASE_BUILD=0 -DBZR_REVISION=$(BZRVERN)
endif

ビルド ログの関連セクション:

make[1]: Entering directory `/build/buildd/stellarium-0.11.2~bzr5066'
dh_auto_configure -- -DRELEASE_BUILD=0 -DBZR_REVISION=
    mkdir -p obj-i686-linux-gnu
    cd obj-i686-linux-gnu
    cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_VERBOSE_MAKEFILE=ON -DRELEASE_BUILD=0 -DBZR_REVISION=

完全なログはこちら: https://launchpadlibrarian.net/86783083/buildlog_ubuntu-natty-i386.stellarium_0.11.2~bzr5066-0ubuntu0~natty1_BUILDING.txt.gz

何か案は?

4

1 に答える 1

1

少なくとも次の行で間違いを犯しました。

COMPONENTSL := $(subst -,' ',COMPONENTS)
COMPONENTSLL := $(subst ~,' ',COMPONENTSL)
BZRVER := $(filter bzr%,COMPONENTSLL)

変数の実際の値を変更するCOMPONENTSXX必要があるため、変数の名前は で囲む必要があります$(...)

リビジョン番号 (この例では 5066) だけが必要な場合は、次のように抽出できます。

BZR_REVISION := $(lastword $(subst ~bzr, ,$(PWD)))
于 2011-12-06T17:41:45.530 に答える