Check_ipo_supported возвращает false в Windows при использовании clang++, предоставляемого MSYS2C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Check_ipo_supported возвращает false в Windows при использовании clang++, предоставляемого MSYS2

Сообщение Anonymous »

В Windows использование функции check_ipo_supported CMake дает следующие результаты:



компилятор
генератор
check_ipo_supported




msvc
NMake Makefile
TRUE


g++ (из MSYS2)
MinGW Makefile
TRUE


clang++ (из MSYS2)
MinGW Makefiles
FALSE



Результат для clang неожиданный.
Это ошибка? (Я мог найти аналогичную неподтвержденную проблему CMake: https://gitlab.kitware.com/cmake/cmake/-/issues/21635).
MRE можно достичь с помощью следующего CMakeLists.txt:

Код: Выделить всё

cmake_minimum_required(VERSION 3.10)

project(checkipo)

add_executable(checkipo main.cpp)

include(CheckIPOSupported)
check_ipo_supported(RESULT IPO_SUPPORTED)

if(IPO_SUPPORTED)
message("IPO SUPPORTED")
else()
message(WARNING "IPO NOT SUPPORTED")
endif()

target_compile_options(checkipo PRIVATE -std=c++20 -Wall -Wextra -pedantic -Wshadow -O3)
и любой файл main.cpp, например:

Код: Выделить всё

int main() {}
Выполняется:

Код: Выделить всё

 CMake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=clang++ -G "MinGW Makefiles" -B "./build"
дает:

IPO НЕ ПОДДЕРЖИВАЕТСЯ

Пока:

Код: Выделить всё

 CMake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++ -G "MinGW Makefiles" -B "./build"
дает:

IPO ПОДДЕРЖИВАЕТСЯ

По предложению Цыварева я записал в журнал вывод check_ipo_supported, добавив OUTPUT Reason, и он показывает, что CMAKE_CXX_COMPILER_AR установлен в значение CMAKE_CXX_COMPILER_AR-NOTFOUND.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ed-by-msys
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»