CMakeでC++17が有効にならない

問題

CMake で set_property(TARGET hoge PROPERTY CXX_STANDARD 17) としても

CMake Error at CMakeLists.txt:16 (add_executable):
  CXX_STANDARD is set to invalid value '17'

というエラーが出る。

原因

ppaから入れたCMakeのバージョンが古かった。

CMake 3.8 以上でないと PROPERTY CXX_STANDARD を17にすることができない。

解決法

CMakeをアップデートする。

CMakeLists.txt に cmake_minimum_required(VERSION 3.8) を追加する。

参考

CXX_STANDARD — CMake 3.7.2 Documentation

CXX_STANDARD — CMake 3.8.2 Documentation