Check_ipo_supported gibt unter Windows false zurück, wenn clang++ von MSYS2 verwendet wirdC++

Programme in C++. Entwicklerforum
Anonymous
 Check_ipo_supported gibt unter Windows false zurück, wenn clang++ von MSYS2 verwendet wird

Post by Anonymous »

Unter Windows gibt die Verwendung der CMake-Funktion check_ipo_supported true für msvc und ein von MSYS2 installiertes g++ aus, aber nicht für clang++.
Ist das ein Fehler? (Ich konnte ein ähnliches unbestätigtes CMake-Problem finden: https://gitlab.kitware.com/cmake/cmake/-/issues/21635).
Ein MRE kann mit der folgenden CMakeLists.txt erreicht werden:

Code: Select all

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)
und jede main.cpp, zum Beispiel:

Code: Select all

int main() {}
Läuft:

Code: Select all

 CMake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=clang++ -G "MinGW Makefiles" -B "./build"
ergibt:

IPO NICHT UNTERSTÜTZT

Während:

Code: Select all

 CMake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++ -G "MinGW Makefiles" -B "./build"
ergibt:

IPO UNTERSTÜTZT

In beiden Fällen scheint die Variable RESULT leer zu sein.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post