mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-03 17:24:29 +00:00 
			
		
		
		
	build: add basic cmake-presets integration (#19128)
This allows a more declarative way of defining targets which may be easier to those not familiar with cmake quirks. Example usage: # get a list of pre-configured presets cmake --list-presets # configure a preset cmake . --preset=default # build it cmake --build --preset=default
This commit is contained in:
		
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -73,3 +73,5 @@ tags
 | 
			
		||||
 | 
			
		||||
# vim patches
 | 
			
		||||
/vim-*.patch
 | 
			
		||||
 | 
			
		||||
/CMakeUserPresets.json
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										95
									
								
								CMakePresets.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								CMakePresets.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,95 @@
 | 
			
		||||
{
 | 
			
		||||
  "version": 3,
 | 
			
		||||
  "configurePresets": [
 | 
			
		||||
    {
 | 
			
		||||
      "name": "base",
 | 
			
		||||
      "generator": "Ninja",
 | 
			
		||||
      "binaryDir": "${sourceDir}/build",
 | 
			
		||||
      "hidden": true
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "default",
 | 
			
		||||
      "displayName": "RelWithDebInfo",
 | 
			
		||||
      "description": "Enables optimizations (-Og or -O2) with debug information",
 | 
			
		||||
      "cacheVariables": {
 | 
			
		||||
        "CMAKE_BUILD_TYPE": "RelWithDebInfo"
 | 
			
		||||
      },
 | 
			
		||||
      "inherits": [
 | 
			
		||||
        "base"
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "debug",
 | 
			
		||||
      "displayName": "Debug",
 | 
			
		||||
      "description": "Disables optimizations (-O0), enables debug information",
 | 
			
		||||
      "cacheVariables": {
 | 
			
		||||
        "CMAKE_BUILD_TYPE": "Debug"
 | 
			
		||||
      },
 | 
			
		||||
      "inherits": [
 | 
			
		||||
        "base"
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "release",
 | 
			
		||||
      "displayName": "Release",
 | 
			
		||||
      "description": "Same as RelWithDebInfo, but disables debug information",
 | 
			
		||||
      "cacheVariables": {
 | 
			
		||||
        "CMAKE_BUILD_TYPE": "Release"
 | 
			
		||||
      },
 | 
			
		||||
      "inherits": [
 | 
			
		||||
        "base"
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "windows-default",
 | 
			
		||||
      "displayName": "Windows x64 RelWithDebInfo",
 | 
			
		||||
      "description": "Sets Ninja generator, enables optimizations with debug information for x64",
 | 
			
		||||
      "generator": "Ninja",
 | 
			
		||||
      "cacheVariables": {
 | 
			
		||||
        "CMAKE_BUILD_TYPE": "RelWithDebInfo"
 | 
			
		||||
      },
 | 
			
		||||
      "architecture": {
 | 
			
		||||
        "value": "x64",
 | 
			
		||||
        "strategy": "external"
 | 
			
		||||
      },
 | 
			
		||||
      "vendor": {
 | 
			
		||||
        "microsoft.com/VisualStudioSettings/CMake/1.0": {
 | 
			
		||||
          "hostOS": [
 | 
			
		||||
            "Windows"
 | 
			
		||||
          ]
 | 
			
		||||
        }
 | 
			
		||||
      },
 | 
			
		||||
      "condition": {
 | 
			
		||||
        "type": "equals",
 | 
			
		||||
        "lhs": "${hostSystemName}",
 | 
			
		||||
        "rhs": "Windows"
 | 
			
		||||
      },
 | 
			
		||||
      "inherits": [
 | 
			
		||||
        "base"
 | 
			
		||||
      ]
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "buildPresets": [
 | 
			
		||||
    {
 | 
			
		||||
      "name": "default",
 | 
			
		||||
      "configurePreset": "default"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "debug",
 | 
			
		||||
      "configurePreset": "debug"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "release",
 | 
			
		||||
      "configurePreset": "release"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "windows-default",
 | 
			
		||||
      "configurePreset": "windows-default",
 | 
			
		||||
      "condition": {
 | 
			
		||||
        "type": "equals",
 | 
			
		||||
        "lhs": "${hostSystemName}",
 | 
			
		||||
        "rhs": "Windows"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user