github.com/shogo82148/std@v1.22.1-0.20240327122250-4e474527810c/runtime/debug/mod.go (about)

     1  // Copyright 2018 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package debug
     6  
     7  // ReadBuildInfoは実行中のバイナリに埋め込まれたビルド情報を返します。
     8  // この情報はモジュールサポートでビルドされたバイナリでのみ利用可能です。
     9  func ReadBuildInfo() (info *BuildInfo, ok bool)
    10  
    11  // BuildInfoはGoバイナリから読み取られるビルド情報を表します。
    12  type BuildInfo struct {
    13  
    14  	// GoVersionはバイナリをビルドしたGoツールチェーンのバージョンです
    15  	// (例: "go1.19.2").
    16  	GoVersion string
    17  
    18  	// Pathはバイナリのメインパッケージのパッケージパスです
    19  	// (例:「golang.org/x/tools/cmd/stringer」)。
    20  	Path string
    21  
    22  	// Mainはバイナリのmainパッケージを含むモジュールを説明します。
    23  	Main Module
    24  
    25  	// Depsは、このバイナリのビルドに寄与したパッケージの直接および間接の依存モジュールをすべて説明します。
    26  	Deps []*Module
    27  
    28  	// Settingsはバイナリのビルドに使用されるビルド設定を記述しています。
    29  	Settings []BuildSetting
    30  }
    31  
    32  // Moduleはビルドに含まれる単一のモジュールを記述します。
    33  type Module struct {
    34  	Path    string
    35  	Version string
    36  	Sum     string
    37  	Replace *Module
    38  }
    39  
    40  // BuildSettingはビルドに影響を与える1つの設定を表すキーと値のペアです。
    41  //
    42  // 定義されたキーには以下のものがあります:
    43  //
    44  //   - -buildmode: 使用されたビルドモードフラグ(通常は "exe")
    45  //   - -compiler: 使用されたコンパイラツールチェーンフラグ(通常は "gc")
    46  //   - CGO_ENABLED: 有効なCGO_ENABLED環境変数
    47  //   - CGO_CFLAGS: 有効なCGO_CFLAGS環境変数
    48  //   - CGO_CPPFLAGS: 有効なCGO_CPPFLAGS環境変数
    49  //   - CGO_CXXFLAGS: 有効なCGO_CXXFLAGS環境変数
    50  //   - CGO_LDFLAGS: 有効なCGO_LDFLAGS環境変数
    51  //   - GOARCH: アーキテクチャターゲット
    52  //   - GOAMD64/GOARM/GO386/etc: GOARCHのアーキテクチャ機能レベル
    53  //   - GOOS: オペレーティングシステムターゲット
    54  //   - vcs: ビルドが実行されたソースツリーのバージョン管理システム
    55  //   - vcs.revision: 現在のコミットまたはチェックアウトのリビジョン識別子
    56  //   - vcs.time: vcs.revisionに関連付けられた修正時刻(RFC3339形式)
    57  //   - vcs.modified: ローカルの変更があるかどうかを示すtrueまたはfalse
    58  type BuildSetting struct {
    59  
    60  	// KeyとValueはビルド設定を説明します。
    61  	// Keyには等号、スペース、タブ、改行を含めることはできません。
    62  	// Valueには改行('\n')を含めることはできません。
    63  	Key, Value string
    64  }
    65  
    66  func (bi *BuildInfo) String() string
    67  
    68  func ParseBuildInfo(data string) (bi *BuildInfo, err error)