CONTROL ファイル
警告
CONTROL
ファイルは非推奨であり、以前のバージョンの vcpkg との下位互換性のためにのみ保持されます。 新しく作成されたポートvcpkg.jsonマニフェスト ファイルを使用します。
既存CONTROL
のファイルをファイルに変換するためにvcpkg.json
使用./vcpkg format-manifest path/to/CONTROL
します。
ファイルには CONTROL
、ポートに関するメタデータが含まれています。 構文は Debian control
形式に基づいていますが、ここで説明するフィールドのサブセットのみがサポートされています。
フィールド名では大文字と小文字が区別され、先頭に空白を付けずに行を開始します。 段落は 1 つ以上の空の行で区切ります。
ソース段落
ファイルの最初の CONTROL
段落はソース段落です。 フィールドが必要ですSource
Version
Description
。 フィールドの完全なセットを以下に示します。
例
Source: ace
Version: 6.5.5
Description: The ADAPTIVE Communication Environment
Source: vtk
Version: 8.2.0
Port-Version: 2
Description: Software system for 3D computer graphics, image processing, and visualization
Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, libjpeg-turbo, proj4, lz4, libtheora, atlmfc (windows), eigen3, double-conversion, pugixml, libharu, sqlite3, netcdf-c
認識されるフィールド
ソース
ポートの名前。
新しいポートを追加するときは、vcpkg の一部ではない他のプロジェクトと名前が競合する可能性があることに注意してください。 たとえば、 json
他のプロジェクトが多すぎるため、名前 taocpp-json
にスコープを追加して一意にする必要があります。 検索エンジンと他のパッケージ コレクションで競合がないことを確認します。
競合のチェックするパッケージ コレクション:
バージョン
ライブラリのバージョン。
このフィールドは、英数字の文字列で、または .
. _
-
バージョンの注文は試行されません。すべてのバージョンはビット文字列として扱われ、等しいかどうかのみが評価されます。
タグ付きリリース ポートの場合は、次の規則に従います。
- ポートが次のような
va.b.c
スキームに従っている場合は、先頭v
を削除します。 この場合、次のようになりますa.b.c
。 - ポートに次のような
curl-7_65_1
独自の名前が含まれている場合は、先頭の名前を削除します。7_65_1
ローリング リリース ポートの場合は、コミットが ユーザーによってアクセスされた日付を使用します。形式は次のとおりです YYYY-MM-DD
。 別の方法として、誰かがタイムマシンを持っていて、その日付に行った場合、このコミットは最新のマスターと見なされます。
次に例を示します。
- 最新のコミットは 2019-04-19 に行われました
- 現在のバージョン文字列は次の値です。
2019-02-14-1
- 今日の日付は 2019-06-01 です。
その後、ソースバージョンを今日更新する場合は、バージョン 2019-06-01
を与える必要があります。
Port-Version
ポートのバージョン。
このフィールドは負以外の整数です。 これにより、基になるライブラリのバージョンとは別にポート ファイルをバージョン管理できます。ライブラリの基になるバージョンを変更せずにポートに変更を加えた場合は、このフィールドを 1 ずつインクリメントする必要があります (フィールドなしPort-Version
から始まります0
)。 基になるライブラリのバージョンがアップグレードされたら、このフィールドを (フィールドを 0
削除 Port-Version
する) に戻す必要があります。
例
Version: 1.0.5
Port-Version: 2
Version: 2019-03-21
説明
ライブラリの説明。
慣例により、説明の最初の行はライブラリの概要です。 省略可能な詳細な説明を次に示します。 詳細な説明には複数の行を指定できます。すべて空白で始まります。
例
Description: C++ header-only JSON library
Description: Mosquitto is an open source message broker that implements the MQ Telemetry Transport protocol versions 3.1 and 3.1.1.
MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. This makes it suitable for "machine
to machine" messaging such as with low power sensors or mobile devices such as phones, embedded computers or microcontrollers like the Arduino.
Homepage
ユーザーが追加のドキュメントまたは元のソース コードを検索できるライブラリのホームページの URL。
例:
Homepage: https://github.com/Microsoft/vcpkg
Build-Depends
ライブラリが依存関係を持つ vcpkg ポートのコンマ区切りリスト。
vcpkg では、ビルドのみの依存関係とランタイムの依存関係は区別されません。 ライブラリを正常に使用するために必要な依存関係の完全な一覧を指定する必要があります。
たとえば、websocketpp はヘッダーのみのライブラリであるため、インストール時に依存関係は必要ありません。 ただし、ダウンストリーム ユーザーは、ライブラリを利用するために boost と openssl が必要です。 したがって、websocketpp では、boost と openssl が依存関係として一覧表示されます。
ポートが別のライブラリのオプション機能に依存している場合は、構文を portname[featurelist]
使用して指定できます。 ポートに依存関係の機能が必要ない場合は、次のように portname[core]
指定する必要があります。
依存関係は、異なる要件をサポートするために、ターゲットトリプレットに基づいてフィルター処理できます。 これらのフィルターでは、以下の [サポート] フィールドと同じ構文が使用され、ポート名と機能の一覧の後にかっこで囲まれています。
例
Build-Depends: rapidjson, curl[core,openssl] (!windows), curl[core,winssl] (windows)
既定の機能
既定でインストールする省略可能なポート機能のコンマ区切りの一覧。
このフィールドは省略可能です。
例
Default-Features: dynamodb, s3, kinesis
サポート
ポートがトリプレットに対して正常にビルドされることが予想される場合に true に評価される式。
現時点では、このフィールドは CI テストでのみポートをスキップするために使用されます。 今後、このメカニズムは、特定のインストール ツリーが正常に実行されないことをユーザーに事前に警告することを目的としています。 したがって、このフィールドは楽観的に使用する必要があります。ポートが 10% の時間成功すると予想される場合は、引き続き "サポートされている" とマークする必要があります。
サポートされている識別子の一覧については、vcpkg.json
マニフェスト ドキュメントのプラットフォーム式を参照してください。
例
Supports: !(uwp|arm)
機能の段落
ファイルには複数のオプション機能を CONTROL
指定できます。 フィールドとDescription
フィールドがFeature
必要です。 必要に応じてフィールドを持 Build-Depends
つことができます。 他の段落から 1 つ以上の空の行で区切る必要があります。
例
Source: vtk
Version: 8.2.0-2
Description: Software system for 3D computer graphics, image processing, and visualization
Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5, libjpeg-turbo, proj4, lz4, libtheora, atlmfc (windows), eigen3, double-conversion, pugixml, libharu, sqlite3, netcdf-c
Feature: openvr
Description: OpenVR functionality for VTK
Build-Depends: sdl2, openvr
Feature: qt
Description: Qt functionality for VTK
Build-Depends: qt5
Feature: mpi
Description: MPI functionality for VTK
Build-Depends: mpi, hdf5[parallel]
Feature: python
Description: Python functionality for VTK
Build-Depends: python3
認識されるフィールド
機能
機能の名前。
説明
ポート Description
フィールドと同じ構文を使用した機能の説明。
Build-Depends
この機能をビルドして使用するために必要な依存関係の一覧。
インストール時に、選択したすべての機能の依存関係が結合され、ビルドの完全な依存関係リストが生成されます。 このフィールドは、ソース段落と同じ構文 Build-Depends
に従います。
vcpkg