Задать вопрос
  • Как запустить SFML проект в VS Code с CMake?

    babenow
    @babenow
    Программирование - пожалуй лучшее хобби в мире
    В целом, сделать это несложно. И дело здесь вовсе не в VSCode.
    Для сборки проекта вам необходимо написать пресеты - файлы CMakePresets.json и CMakeUserPresets.json. В CMakePresets.json помешаются настройки окружения, которые не зависят от вашей машины. В CMakeUserPresets.json помещаются настройки для конкретного проекта.
    Примеры таких файлов (кстати, с ними все по идее должно собраться,, если в PATH добавить путь к cl.exe (компилятор MSVC)
    ---
    CMakePresets.json

    {
        "version": 6,
        "cmakeMinimumRequired": {
            "major": 3,
            "minor": 22
        },
        "configurePresets": [
            {
                "name": "Configure",
                "hidden": true,
                "generator": "Ninja",
                "binaryDir": "${sourceDir}/out/build/${presetName}",
                "installDir": "${sourceDir}/out/install/${presetName}",
                "cacheVariables": {
                    "CMAKE_CXX_STANDARD": "23",
                    "CMAKE_CXX_STANDARD_REQUIRED": "ON",
                    "CMAKE_RUNTIME_OUTPUT_DIRECTORY": "${sourceDir}/out/bin/${presetName}",
                    "CMAKE_LIBRARY_OUTPUT_DIRECTORY": "${sourceDir}/out/lib/${presetName}",
                    "CMAKE_ARCHIVE_OUTPUT_DIRECTORY": "${sourceDir}/out/lib/${presetName}",
                    "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
                }
            },
            {
                "name": "MSVCFlags",
                "hidden": true,
                "cacheVariables": {
                    "CMAKE_CXX_FLAGS": "/W4 /EHsc /w14242 /w14254 /w14263 /w14265 /w14287 /w14289 /w14296 /w14311 /w14545 /w14546 /w14547 /w14549 /w14555 /w14640 /w14826 /w14928 /WX "
                }
            },
            {
                "name": "Debug",
                "hidden": true,
                "inherits": "Configure",
                "cacheVariables": {
                    "CMAKE_BUILD_TYPE": "Debug"
                }
            },
            {
                "name": "Release",
                "hidden": true,
                "inherits": "Configure",
                "cacheVariables": {
                    "CMAKE_BUILD_TYPE": "Release"
                }
            },
            {
                "name": "RelWithDebInfo",
                "hidden": true,
                "inherits": "Configure",
                "cacheVariables": {
                    "CMAKE_BUILD_TYPE": "RelWithDebInfo"
                }
            },
            {
                "name": "MinSizeRel",
                "hidden": true,
                "inherits": "Configure",
                "cacheVariables": {
                    "CMAKE_BUILD_TYPE": "MinSizeRel"
                }
            }
        ]
    }



    CMakeUserPresets.json

    {
        "version": 6,
        "cmakeMinimumRequired": {
            "major": 3,
            "minor": 22
        },
        "configurePresets": [
            {
                "name": "msvc2022_64",
                "hidden": true,
                "cacheVariables": {
                    "CMAKE_CXX_COMPILER": "cl.exe"
                }
            },
            {
                "name": "ProjectConfigure",
                "hidden": true,
                "inherits": [
                    "MSVCFlags",
                    "msvc2022_64"
                ],
                "cacheVariables": {
                    "CMAKE_PREFIX_PATH": ""
                }
            },
            {
                "name": "win-debug-msvc-x64",
                "displayName": "Windows Debug (MSVC x64)",
                "inherits": [
                    "Debug",
                    "ProjectConfigure"
                ]
            },
            {
                "name": "win-release-msvc-x64",
                "displayName": "Windows Release (MSVC x64)",
                "inherits": [
                    "Release",
                    "ProjectConfigure"
                ]
            },
            {
                "name": "win-release-with-deb-info-msvc-x64",
                "displayName": "Windows Release With Debug Information (MSVC x64)",
                "inherits": [
                    "RelWithDebInfo",
                    "ProjectConfigure"
                ]
            },
            {
                "name": "win-min-size-release-msvc-x64",
                "displayName": "Windows Release Minimum Size (MSVC x64)",
                "inherits": [
                    "MinSizeRel",
                    "ProjectConfigure"
                ]
            }
        ]
    }



    Далее выбираете необходимую предустановку, настраиваете, собираете, запускаете
    677d602cb2546178287182.png
    Ответ написан