Mam tylko nagłówek C++ 11 biblioteki, więc chcę go skonfigurować, używając CUpewnij> 3.1, kompilacja cech wydaje się rozsądny sposób, aby to zrobić:Jak zdefiniować przechodnia CXX_STANDARD C++ 11 w CUpewnij
target_compile_features(my_header_lib INTERFACE cxx_range_for)
Ale wolałbym nie wskazywać poszczególnych funkcji, ale tylko C++ 11 lub C++ 14. Wtedy mógłbym spróbować użyć następujących:
set_property(TARGET my_target PROPERTY CXX_STANDARD 11)
Problemem jest to, że my_target nie może być INTERFEJS tutaj, to nie jest obsługiwany i nie można zdefiniować go PUBLIC, więc konsumentów (wiele eks) mojego nagłówka tylko woli biblioteki automatycznie propagowana jest konfiguracja C++ 11 z biblioteki.
Czy jest jakiś sposób zdefiniowania na wysokim poziomie standardu 11/14, ale także skonfigurować go dla biblioteki tylko nagłówkowej (INTERFEJS)? Wolałbym nie powracać do starego podręcznika -std = C++ 11.
W rzeczywistości jest to świadomy wybór projektu, który nie obsługuje właściwości celu "INTERFACE_CXX_STANDARD". Zobacz także zmienną 'CMAKE_CXX_STANDARD'. – steveire