CMake と Visual Studio を併用する際、特定の警告を無視するには /wd オプションを指定します。

次の例では、通常 x の初期化に関する警告が出力されます。

#include <stdio.h>

int main(void)
{
    int x;
    printf("%d\n", x);
    return 0;
}
1>------ すべてのリビルド開始: プロジェクト:ZERO_CHECK, 構成: Debug x64 ------
1>Checking Build System
1>CMake does not need to re-run because /path/to/directory/CMakeFiles/generate.stamp is up-to-date.
2>------ すべてのリビルド開始: プロジェクト:Sample, 構成: Debug x64 ------
2>Building Custom Rule /path/to/directory/CMakeLists.txt
2>CMake does not need to re-run because /path/to/directory/CMakeFiles/generate.stamp is up-to-date.
2>sample.cpp
2>/path/to/directory/sample.cpp(6): warning C4700: 初期化されていないローカル変数 'x' が使用されます
2>Sample.vcxproj -> /path/to/directory/Debug/Sample.exe
2>Sample.vcxproj -> /path/to/directory/Debug/Sample.pdb (Full PDB)
2>プロジェクト "Sample.vcxproj" のビルドが終了しました。
3>------ [すべてリビルド] のスキップ: プロジェクト:ALL_BUILD, 構成: Debug x64 ------
3>プロジェクトはこのソリューション構成に対してビルドするように選択されていません。
========== すべてリビルド: 2 正常終了、0 失敗、1 スキップ ==========

警告の無効化

上記のコードを CMake でプロジェクト化する際、add_compile_options コマンドで /wd オプションを指定すると特定の警告を無視することができます。

cmake_minimum_required(VERSION 3.12)
project(Sample)

add_compile_options(/wd4700)
add_executable(Sample sample.cpp)
1>------ すべてのリビルド開始: プロジェクト:ZERO_CHECK, 構成: Debug x64 ------
1>Checking Build System
1>CMake does not need to re-run because /path/to/directory/CMakeFiles/generate.stamp is up-to-date.
2>------ すべてのリビルド開始: プロジェクト:Sample, 構成: Debug x64 ------
2>Building Custom Rule /path/to/directory/CMakeLists.txt
2>CMake does not need to re-run because /path/to/directory/CMakeFiles/generate.stamp is up-to-date.
2>sample.cpp
2>Sample.vcxproj -> /path/to/directory/Debug/Sample.exe
2>Sample.vcxproj -> /path/to/directory/Debug/Sample.pdb (Full PDB)
3>------ [すべてリビルド] のスキップ: プロジェクト:ALL_BUILD, 構成: Debug x64 ------
3>プロジェクトはこのソリューション構成に対してビルドするように選択されていません。
========== すべてリビルド: 2 正常終了、0 失敗、1 スキップ ==========

参考資料