Russian Qt Forum
Ноябрь 22, 2024, 11:17 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Пример тулчейна и пресета для cmake и VS2022  (Прочитано 8482 раз)
SektorCT
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« : Октябрь 29, 2023, 18:50 »

Всем привет.
Мог бы кто то поделится примером cmake пресета и тулчейна с указаниями каких то пареметров дял компиляции?
Пытаюсь разобратся в параметрах, ниже мой пример, но вот ошибка которая мне не говорит ничего.
Вроде как ошибки с путем к библиотекам Qt не выдает, значит это срабатывает.

Код:
{
            "name": "Windows",
            "displayName": "Windows x64 Debug",
            "description": "Sets Ninja generator, compilers, x64 architecture, build and install directory, debug build type",
            "generator": "Visual Studio 17 2022",
            "binaryDir": "${sourceDir}/build",
            "condition": {
                "type": "equals",
                "lhs": "${hostSystemName}",
                "rhs": "Windows"
            },
            "architecture": {
                "value": "x64",
                "strategy": "external"
            },
            "cacheVariables": {
                "CMAKE_BUILD_TYPE": "Debug",
                "CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}",
                "CMAKE_TOOLCHAIN_FILE": {
                    "type": "FILEPATH",
                    "value": "${sourceDir}/Toolchains/toolchain-windows.cmake"

                }
            },
            "vendor": {
                "microsoft.com/VisualStudioSettings/CMake/1.0": {
                    "hostOS": [ "Windows" ]
                }
            }
        },

А это телчейн с некоторыми настрйоками.
Код:
cmake_minimum_required(VERSION 3.24)

set(CMAKE_SYSTEM_NAME WindowsStore)
set(CMAKE_SYSTEM_VERSION 8.1)

#set(CMAKE_Fortran_COMPILER /opt/nec/ve/bin/nfort CACHE FILEPATH "Aurora Fortran compiler")
set(CMAKE_CXX_COMPILER "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.36.32532/bin/Hostx64/x64/cl.exe")
set(CMAKE_C_COMPILER "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.36.32532/bin/Hostx64/x64/cl.exe")
set(CMAKE_PREFIX_PATH "C:/Qt/6.5.2/msvc2019_64/lib/cmake")
set(CMAKE_CXX_FLAGS "/MP")

А это ошибка
Код:
  A Windows Store component with CMake requires both the Windows Desktop SDK
  as well as the Windows Store '8.1' SDK.  Please make sure that you have
  both installed

Если кто может поделитесь пожалуйста каким то рабочим примером. Пытаюсь разобратся что еще указываются для правильнйо рабоыт и определений всех нужных частей.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Октябрь 29, 2023, 22:03 »

вроде ошибка крайне очевидная: надо поставить указанные сдк, ставится через установщик студии (там можно компоненты выбирать).
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
SektorCT
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« Ответ #2 : Октябрь 30, 2023, 00:23 »

вроде ошибка крайне очевидная: надо поставить указанные сдк, ставится через установщик студии (там можно компоненты выбирать).

Зачем мне ставить это? Мне же надо только указать компилятор и все.
Ведь если без SDK и руками указывается в IDE компилятор то ничего другого не надо указывать.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Октябрь 30, 2023, 23:25 »

у тебя CMAKE_SYSTEM_NAME задано WindowsStore, наверное поэтому надо ставить
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
SektorCT
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« Ответ #4 : Октябрь 31, 2023, 10:14 »

у тебя CMAKE_SYSTEM_NAME задано WindowsStore, наверное поэтому надо ставить

Хорошо, но если я даже поменяю на
set(CMAKE_SYSTEM_VERSION 10.0)
То ошибка будет такой же. По этому и спрашиваю может кто моделится каким то примером рабочего тулчейна
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #5 : Октябрь 31, 2023, 11:46 »

еще раз спрашиваю: у тебя установлен WindowsStore SDK нужной версии? если нет, потому и ошибка.
Зачем мне ставить это? Мне же надо только указать компилятор и все.
Ведь если без SDK и руками указывается в IDE компилятор то ничего другого не надо указывать.
если тебе надо только компилятор, то зачем ты указываешь виндоус сдк в своем тулчейне?

CMAKE_SYSTEM_NAME is by default set to the same value as the CMAKE_HOST_SYSTEM_NAME variable so that the build targets the host system.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
SektorCT
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« Ответ #6 : Ноябрь 30, 2023, 11:42 »

еще раз спрашиваю: у тебя установлен WindowsStore SDK нужной версии? если нет, потому и ошибка.
Зачем мне ставить это? Мне же надо только указать компилятор и все.
Ведь если без SDK и руками указывается в IDE компилятор то ничего другого не надо указывать.
если тебе надо только компилятор, то зачем ты указываешь виндоус сдк в своем тулчейне?

CMAKE_SYSTEM_NAME is by default set to the same value as the CMAKE_HOST_SYSTEM_NAME variable so that the build targets the host system.

Извиняюсь что не сразу ответил, не был установлен и да, если мне нужен только компилятор то я убрал SDK и все прошло.

Пара вопросов есть по данному топику:
1. Может вы пробовали собирать на удаленой машине Qt приложение и с указаным путем в cmake к либам?
2. Сделать дерево отображаемых подпроектов и библиотек в IDE. Если например у вас много всего в проекта но вам надо или показывать только часть, или их разбить на котегории для лучшего отображения?
Записан
SektorCT
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« Ответ #7 : Ноябрь 30, 2023, 12:00 »

По поводу путей к либам Qt на remote мышине, у меня ошибка вот такого плана

Код:
Severity	Code	Description	Project	File	Line	Suppression State
Error CMake Error at cmake/preset.cmake:73 (find_package):
  Found package configuration file:

    /home/test/Qt/6.5.3/gcc_64/lib/cmake/Qt6/Qt6Config.cmake

  but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT
  FOUND.  Reason given by package:

  Qt6 could not be found because dependency Threads could not be found.

  Configuring with --debug-find-pkg=Threads might reveal details why the
  package was not found.

  Configuring with -DQT_DEBUG_FIND_PACKAGE=ON will print the values of some
  of the path variables that find_package uses to try and find the package. C:\dev2\sourcen\cmake/preset.cmake 73

Библиотеки все на месте, но ошибка вылетает.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #8 : Декабрь 16, 2023, 22:27 »

поставь пакет Threads из менеджера пакетов, это какая-то стандартная линукс штука (многие проекты ее требуют)

по вопросам:
1. не понимаю какая разница между локальной и удаленной машиной, суть ведь та же. не под линуксом, но пробовал, всё работало.
2. это надо смотреть доку смаке по части нужной тебе Иде, помню там были какие-то свойства.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.109 секунд. Запросов: 22.