Xmake-APIを使用してプロジェクトをビルドする

序文

 前回の記事では、Xmake の基本的なコマンドを紹介しましたが、Xmake コマンドを使用してプロジェクトをビルドすることは、基本的に g++ を使用して直接ビルドするのと同等であるため、プロジェクトが比較的単純な場合にのみコマンドを使用してビルドすることを選択できますが、プロジェクトがより複雑な場合は、xmake.lua を使用してプロジェクトのビルド プロセスを構成できます。

1. 共通APIの紹介

 Xmake の初心者にとって、いくつかの簡単な API を学べば、プロジェクトを構成するのは非常に便利です。その中で、最もよく使用される API は次のとおりです。

  • set_kind: ターゲットタイプを設定します
  • add_files: コンパイルが必要なソース ファイル/静的ライブラリを追加します
  • add_links: リンクする必要があるダイナミック ライブラリを追加します
  • add_includedirs: ヘッダー ファイルの検索パスを追加します
  • add_linkdirs: 動的ライブラリ検索パスを追加します
  • add_ldflags: リンクパラメータを追加します
  • add_cxxflags: C++ コンパイル オプションを追加します。
  • add_cflags: C コンパイラ オプションを追加します
  • add_cxflags: C/C++ コンパイル オプションを追加します。

2. APIの利用

 Xmake を使用して新しく作成されたプロジェクトでは、Xmake は xmake.lua を直接作成します。その内容は次のとおりです。

add_rules("mode.debug", "mode.release")

target("hello")
    set_kind("binary")
    add_files("src/*.cpp")

 その内、add_rulesデバッグモードとリリースモードが設定されるビルドモードの設定です。

set_kindここではコンパイル対象がバイナリファイルであることを指定し、プログラムを実行できるようにします。

add_filesすべての cpp ファイル ヘッダーを src の下に追加し、add_filesワイルドカードをサポートします

以下では、構築における要件がこれらの API を通じてどのように実現されるかを説明します。

1. コンパイルされたソースファイルを追加します

 上の例のように、ソース ファイルをコンパイル スコープに追加する必要がある場合は、add_filesファイルを追加するだけで済みます。add_filesサポートされているファイル タイプは次のとおりです。

サポートされているソース ファイルの種類 説明
.c/.cpp/.cc/.cxx C++ファイル
.s/.S/.asm アセンブリファイル
。うーん objcファイル
。迅速 迅速なファイル
。行く ファイルを成長させる
.o/.obj オブジェクトファイル
.a/.lib 静的ライブラリ ファイル。ライブラリはターゲット プログラムに自動的にマージされます。
.rc msvcリソースファイル
.manifest Windowsマニフェストファイル
.dll Windows エクスポート ファイル
.ld/.lds gcc/clang のリンカー スクリプト ファイル
.map/.ver gcc/clang のバージョン スクリプト ファイル

 このうち、ワイルドカード * は現在のディレクトリ内のファイルと一致することを意味し、** は複数レベルのディレクトリ内のファイルと一致することを意味します。

2. ヘッダーファイルの検索パスを追加

 ヘッダーファイルの検索パスを追加する場合は、それを使用することもできますが、またはインターフェイスadd_includedirsを介して直接設定することも可能です。add_cxflagsadd_mxflags

3. ダイナミックライブラリを追加する

 ダイナミック ライブラリをリンクする必要がある場合は、add_linksからダイナミック ライブラリを追加できます。ここで追加する必要があるダイナミック ライブラリは、先頭の lib とサフィックス .so を削除する必要があります。

4. 動的ライブラリ検索パスを追加する

add_linkdirsを渡すことでダイナミック ライブラリの検索パスを追加し、 を 渡すことでヘッダー ファイルの検索パスを追加しますadd_includedirs

5. 外部パッケージの追加

 Xmake はadd_requires依存パッケージの追加をサポートしています。バージョン番号を追加してパッケージのバージョンを制限したり、バージョン番号を記述せずに最新バージョンを使用したりできます。通常は、あまり複雑な使用法は必要ありません。

add_requires("tbox 1.6.*", "pcre 8.x", "libpng ^1.18")
add_requires("libpng ~1.16", "zlib 1.1.2 || >=1.2.11 <1.3.0")
add_requires("tbox", "libpng", "zlib")

6. Xmake設定の継承

 ここで言う継承とは、フォルダーに xmake によって管理される複数のプロジェクトが含まれている場合、親ディレクトリーにヘッダーを追加するなどして、親ディレクトリーの xmake 構成がサブディレクトリーの xmake プロジェクトに継承されることを意味します。 ファイル検索add_includedirsパスを使用すると、サブディレクトリ内の項目を繰り返し追加する必要がなくなります。より高度な使用法には、グローバル変数、マクロ定義などの定義が含まれ、プロジェクト管理が大幅に容易になります。

hello
├── src
│   ├── main.cpp
│   └── subhello
│       ├── src
│       │   └── main.cpp
│       └── xmake.lua
└── xmake.lua

Xmake の初心者ユーザーは、上記の API を使用して通常のプロジェクトの構築を完了できます。プロジェクトがより複雑な場合は、より高度な使用法が必要になる場合があります。より 複雑な使用法については、Xmake の公式ドキュメントを参照してください

おすすめ

転載: blog.csdn.net/dddgggd/article/details/129019373