ソースを参照

[c][cpp] Use CMake presets and Ninja as the default generator

Mario Zechner 1 ヶ月 前
コミット
84a541b098
5 ファイル変更74 行追加8 行削除
  1. 0 2
      spine-c/CMakeLists.txt
  2. 35 0
      spine-c/CMakePresets.json
  3. 2 3
      spine-c/build.sh
  4. 35 0
      spine-cpp/CMakePresets.json
  5. 2 3
      spine-cpp/build.sh

+ 0 - 2
spine-c/CMakeLists.txt

@@ -34,8 +34,6 @@ target_include_directories(spine-c PUBLIC
     ../spine-cpp/spine-cpp/include
 )
 
-# Export compile commands for better IDE support
-set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
 
 # Create test executable only if this is the top-level project
 if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)

+ 35 - 0
spine-c/CMakePresets.json

@@ -0,0 +1,35 @@
+{
+  "version": 3,
+  "configurePresets": [
+    {
+      "name": "debug",
+      "displayName": "Debug Config",
+      "description": "Debug build using Ninja generator",
+      "generator": "Ninja",
+      "binaryDir": "${sourceDir}/build",
+      "cacheVariables": {
+        "CMAKE_BUILD_TYPE": "Debug",
+        "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
+      }
+    },
+    {
+      "name": "release",
+      "inherits": "debug",
+      "displayName": "Release Config",
+      "description": "Release build using Ninja generator",
+      "cacheVariables": {
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    }
+  ],
+  "buildPresets": [
+    {
+      "name": "debug",
+      "configurePreset": "debug"
+    },
+    {
+      "name": "release",
+      "configurePreset": "release"
+    }
+  ]
+}

+ 2 - 3
spine-c/build.sh

@@ -15,6 +15,5 @@ if [ "$1" = "clean" ]; then
 fi
 
 # Always build
-mkdir -p build && cd build
-[ -f CMakeCache.txt ] || cmake .. -DCMAKE_BUILD_TYPE=Debug
-make -j$(sysctl -n hw.ncpu 2>/dev/null || nproc 2>/dev/null || echo 4)
+cmake --preset=debug .
+cmake --build --preset=debug

+ 35 - 0
spine-cpp/CMakePresets.json

@@ -0,0 +1,35 @@
+{
+  "version": 3,
+  "configurePresets": [
+    {
+      "name": "debug",
+      "displayName": "Debug Config",
+      "description": "Debug build using Ninja generator",
+      "generator": "Ninja",
+      "binaryDir": "${sourceDir}/build",
+      "cacheVariables": {
+        "CMAKE_BUILD_TYPE": "Debug",
+        "CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
+      }
+    },
+    {
+      "name": "release",
+      "inherits": "debug",
+      "displayName": "Release Config",
+      "description": "Release build using Ninja generator",
+      "cacheVariables": {
+        "CMAKE_BUILD_TYPE": "Release"
+      }
+    }
+  ],
+  "buildPresets": [
+    {
+      "name": "debug",
+      "configurePreset": "debug"
+    },
+    {
+      "name": "release",
+      "configurePreset": "release"
+    }
+  ]
+}

+ 2 - 3
spine-cpp/build.sh

@@ -9,6 +9,5 @@ if [ "$1" = "clean" ]; then
 fi
 
 # Always build
-mkdir -p build && cd build
-[ -f CMakeCache.txt ] || cmake .. -DCMAKE_BUILD_TYPE=Debug
-make -j$(sysctl -n hw.ncpu 2>/dev/null || nproc 2>/dev/null || echo 4)
+cmake --preset=debug .
+cmake --build --preset=debug