Hi Jochen,

the link https://qbs.io/docs/qml-qbsmodules-cpp/#windowsSdkVersion-prop states

   "By default, the latest SDK is used."

How is the latest one determined? Just by not passing any version to vcvarsall.bat?

My concrete problem is:

   
C:\Programs\QtCreator\11.0.8\share\qtcreator\qbs\share\qbs\imports\qbs\Probes\MsvcProbe.qbs:52:16
   Could not run
   C:/Programs/mvs17/VC/Tools/MSVC/14.43.34808/bin/Hostx64/x64/cl.exe
   (Process crashed)

Currently I'm looking for a way to see the actual commandline used for cl.exe. To reproduce the crash ...

Maybe an important detail: this is part of a docker image resp. is crashing inside a docker container. Running cl.exe standalone looks fine:

    > C:/Programs/mvs17/VC/Tools/MSVC/14.43.34808/bin/Hostx64/x64/cl.exe
   Microsoft (R) C/C++ Optimizing Compiler Version 19.43.34808 for x64
   Copyright (C) Microsoft Corporation.  All rights reserved.

   usage: cl [ option... ] filename... [ /link linkoption... ]

I've created some dummy file like in MSVC::determineCompilerVersion; looks good as well:

    >
   C:/Programs/mvs17/VC/Tools/MSVC/14.43.34808/bin/Hostx64/x64/cl.exe
   /nologo /EP qbsXXXX.cpp
   qbsXXXX.cpp

   194334808


Based on what I've found inside "retrieveInstancesFromVSWhere()" the vswhere command returns:

    > "C:\Program Files (x86)\Microsoft Visual
   Studio\Installer\vswhere.exe" -products
   Microsoft.VisualStudio.Product.BuildTools -format json -utf8
   [
      {
        "instanceId": "3fd400c3",
        "installDate": "2025-03-07T06:22:46Z",
        "installationName": "VisualStudio/17.13.2+35825.156",
        "installationPath": "C:\\Programs\\mvs17",
        "installationVersion": "17.13.35825.156",
        "productId": "Microsoft.VisualStudio.Product.BuildTools",
        "productPath":
   "C:\\Programs\\mvs17\\Common7\\Tools\\LaunchDevCmd.bat",
        "state": 4294967295,
        "isComplete": true,
        "isLaunchable": true,
        "isPrerelease": false,
        "isRebootRequired": false,
        "displayName": "Visual Studio Build Tools 2022",
        "description": "The Visual Studio Build Tools allows you to
   build native and managed MSBuild-based applications without
   requiring the Visual Studio IDE. There are options to install the
   Visual C++ compilers and libraries, MFC, ATL, and C++/CLI support.",
        "channelId": "VisualStudio.17.Release",
        "channelUri": "https://aka.ms/vs/17/release/channel";,
        "enginePath": "C:\\Program Files (x86)\\Microsoft Visual
   
Studio\\Installer\\resources\\app\\ServiceHub\\Services\\Microsoft.VisualStudio.Setup.Service",
        "installedChannelId": "VisualStudio.17.Release",
        "installedChannelUri": "https://aka.ms/vs/17/release/channel";,
        "releaseNotes":
   
"https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.13#17.13.2";,
        "resolvedInstallationPath": "C:\\Programs\\mvs17",
        "thirdPartyNotices":
   "https://go.microsoft.com/fwlink/?LinkId=661288";,
        "updateDate": "2025-03-07T06:22:46.1065459Z",
        "catalog": {
          "buildBranch": "d17.13",
          "buildVersion": "17.13.35825.156",
          "id": "VisualStudio/17.13.2+35825.156",
          "localBuild": "build-lab",
          "manifestName": "VisualStudio",
          "manifestType": "installer",
          "productDisplayVersion": "17.13.2",
          "productLine": "Dev17",
          "productLineVersion": "2022",
          "productMilestone": "RTW",
          "productMilestoneIsPreRelease": "False",
          "productName": "Visual Studio",
          "productPatchVersion": "2",
          "productPreReleaseMilestoneSuffix": "1.0",
          "productSemanticVersion": "17.13.2+35825.156",
          "requiredEngineVersion": "3.13.2069.59209"
        },
        "properties": {
          "campaignId": "",
          "channelManifestId": "VisualStudio.17.Release/17.13.2+35825.156",
          "includeRecommended": "0",
          "nickname": "",
          "setupEngineFilePath": "C:\\Program Files (x86)\\Microsoft
   Visual Studio\\Installer\\setup.exe"
        }
      }
   ]

I have to admit that I don't get the calls inside "getMsvcDefines()"; what do I need to run for them on the commandline?

   C:/Programs/mvs17/VC/Tools/MSVC/14.43.34808/bin/Hostx64/x64/cl.exe
   /nologo /B1 %COMSPEC% /c /TC NUL set MSC_CMD_FLAGS

Probably the above is not correct?


/Kind regards,/

  Heiko
------------------------------------------------------------------------
*From:* Jochen Ulrich [mailto:jochen.ulr...@bee360.com]
*Sent:* Friday, March 7, 2025 at 8:12 AM
*To:* Heiko Nardmann
*Cc:* qbs@qt-project.org
*Subject:* AW: [Qbs] MSVC based profile: how SDK detection is working?

Hi Heiko!

The winSdkVersioninside MsvcProbe.qbsis an input which is set from the cpp.windowsSdkVersionproperty (see https://qbs.io//docs/qml-qbsmodules-cpp/#windowsSdkVersion-prop <https://qbs.io/docs/qml-qbsmodules-cpp/#windowsSdkVersion-prop>).

As it seems to me, the “detection” of the SDK version is done by MSVC itself. So, if you don’t set the cpp.windowsSdkVersionexplicitly, then Qbs doesn’t know which SDK version it is working with. If you set it, then Qbs simply passes this to vcvarsall.batto figure out the necessary environment variables (see vsenvironmentdetector.cpp, line 243-244 <https://code.qt.io/cgit/qbs/qbs.git/tree/src/lib/corelib/tools/vsenvironmentdetector.cpp#n243>).

Best

Jochen

*Von: *Qbs <qbs-boun...@qt-project.org> im Auftrag von Heiko Nardmann <heiko.nardm...@itechnical.de>
*Datum: *Donnerstag, 6. März 2025 um 18:17
*An: *qbs@qt-project.org <qbs@qt-project.org>
*Betreff: *[Qbs] MSVC based profile: how SDK detection is working?

Hi together,

I'm currently fighting with getting Qbs working with MSVC 2022. Somehow the probing fails and I wonder whether this has sth to do with the SDK version: that is shown as being undefined when dumping it inside MsvcProbe.qbs.

So ... how do I tell Qbs which Windows SDK version to use? Or how is the detection working wrt. this?

/Kind regards,/

  Heiko
_______________________________________________
Qbs mailing list
Qbs@qt-project.org
https://lists.qt-project.org/listinfo/qbs

Reply via email to