ツールチェーンの指定

Note

SOLID-2.0.0 以降で使用できます。

インストーラでデフォルトのツールチェーンを更新した場合でも、個別にツールチェーンを変更できます。 ここでは、プロジェクトやソリューション毎の指定方法と、デフォルトツールチェーンの手動変更について説明します。


プロジェクト単位の指定

Note

本手法は主にbare-metalソフトウェア開発に使います。solid-os環境では、「IDE起動時などに指定」「ソリューション単位の指定」「デフォルトツールチェインの変更」を推奨します

ツールチェーンを変更したいプロジェクトのプロパティを開き [構成プロパティ] - [全般] にある、 プラットフォームツールセット でツールチェーンのバージョンを指定してください。

../_images/change-platformtoolset.png

IDE起動時などに指定

この指定方法では、IDEを起動前に、もしくは、IDEを使ってコマンドラインビルドを行う前に、ツールチェインの指定ができます。 solid-os環境で、利用したいツールチェインを一時的などに変更したい場合などに便利です。

たとえば、コマンドウィンドウからツールチェインを指定してからIDEを起動したい場合、以下のようにします。

set EXEGCC_STD_ARM_ROOTDIR=C:\GCC4\ARM\s002
start imx8m_evk-aarch32-asp3-demo-task.ptsln

また、以下のようなバッチファイルを作成しておけば、特定のツールチェインを指定してIDEを簡単に起動する事ができます。

set EXEGCC_STD_AARCH64_ROOTDIR=C:\GCC4\AARCH64\s003
"C:\Program Files (x86)\KMC\SOLID-IDE\Bin\PARTNER-IDE.com"

ソリューション単位の指定

この指定方法は、ソリューションに対してプロジェクトが複数あるなど、プロジェクト単位での設定が面倒なときに便利です。

OverridePlatformToolset.props という名前で、以下の内容のファイルを作成してください。

全ての環境でs002を指定する場合

別のバージョンのツールチェーンに変更するには、<PlatformToolset></PlatformToolset> 内の s002 を目的のバージョンに変更してください。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup Condition="'$(PlatformToolset)'=='exeClang_SOLID'">
    <PlatformToolset>exeClang_SOLID_s002</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(PlatformToolset)'=='exeGCC_SOLID'">
    <PlatformToolset>exeGCC_SOLID_s002</PlatformToolset>
  </PropertyGroup>
</Project>

プラットフォームごとに別のツールチェーンを指定する場合

以下の例では、ARMの場合にs002、AArch64ではs005を指定しています。:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup Condition="'$(Platform)|$(PlatformToolset)'=='KMC_SOLID_v7A_ARM|exeClang_SOLID'">
    <PlatformToolset>exeClang_SOLID_s002</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Platform)|$(PlatformToolset)'=='KMC_SOLID_v7A_ARM|exeGCC_SOLID'">
    <PlatformToolset>exeGCC_SOLID_s002</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Platform)|$(PlatformToolset)'=='KMC_SOLID_v8A_AArch64|exeClang_SOLID'">
    <PlatformToolset>exeClang_SOLID_s005</PlatformToolset>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Platform)|$(PlatformToolset)'=='KMC_SOLID_v8A_AArch64|exeGCC_SOLID'">
    <PlatformToolset>exeGCC_SOLID_s005</PlatformToolset>
  </PropertyGroup>
</Project>

次に、Directory.Build.props という名前で、以下の内容のファイルを作成します。

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ForceImportBeforeCppProps>$(SolutionDir)OverridePlatformToolset.props</ForceImportBeforeCppProps>
  </PropertyGroup>
</Project>

作成した2つのファイルを、ツールチェーンのバージョンを指定したいプロジェクトのあるディレクトリに配置してください。

Note

プロジェクト単位の指定よりも、本設定が優先されます。


デフォルトツールチェーンの変更

手動でデフォルトのツールチェーンを変更するには、環境変数 EXEGCC_STD_ARM_ROOTDIR に設定されているパスを、 直接変更してください。

  • s002 (ARM) を指定する場合

    EXEGCC_STD_ARM_ROOTDIR=C:\GCC4\ARM\s002

  • s003 (AArch64) を指定する場合

    EXEGCC_STD_AARCH64_ROOTDIR=C:\GCC4\AARCH64\s003