Как найти Qt5 только для MSCV, когда также установлен MinGW-w64? - PullRequest
0 голосов
/ 03 октября 2018

Под C:\Qt\5.12.0 существует 2 папки:

C:\
   |->Qt\
         |->5.12.0\
                   |->mingw73_64\
                   |->msvc2017_64\

Обе работают нормально, когда в PATH работает только одна из них.Это потому, что если MinGW-w64 сначала в PATH, то VC ++ никогда не использует правильную папку для поиска Qt5.CMAKE_PREFIX_PATH не работает, потому что в тот момент, когда CMake находит его в CMakeLists.txt, уже слишком поздно.

#Not working
if(WIN32) # Check if we are on Windows
    if(CMAKE_CXX_COMPILER_ID MATCHES MSVC) # Check if we are using the Visual Studio compiler.
        set(CMAKE_PREFIX_PATH "C:\\Qt\\5.12.0\\msvc2017_64\\")
    endif()
endif(WIN32)
find_package(Qt5Widgets CONFIG REQUIRED) #It finds MinGW-w64

Прямо сейчас я нашел хакерский способ проинструктировать KDevelop и CMake использоватьПапка msvc: у меня есть только MinGW в PATH, и я использую следующий код внутри kdevelop-msvc.batch:

SET PATH=C:\Qt\5.12.0\msvc2017_64;%PATH%

Определяя его перед остальной частью PATH (включая MinGW), CMake находитправильные модули Qt5 для VC ++.

Но я хочу найти более элегантное и портативное решение для обнаружения Qt5 в Windows. Есть идеи?

...