From f804f1c71de882434fc2b030ed5c972efd2a9a48 Mon Sep 17 00:00:00 2001
From: Chuck Walbourn <chuckw@microsoft.com>
Date: Thu, 25 Jul 2024 14:36:59 -0700
Subject: [PATCH] Add CodeQL using GitHub Actions

---
 .github/workflows/codeql.yml           | 61 ++++++++++++++++++++++++++
 CMakePresets.json                      |  2 +
 build/DirectXTK-GitHub-CMake-Dev17.yml |  2 +
 build/DirectXTK-GitHub-CMake.yml       |  2 +
 build/DirectXTK-GitHub-Dev17.yml       |  2 +
 build/DirectXTK-GitHub-GDK.yml         |  2 +
 build/DirectXTK-GitHub-MinGW.yml       |  2 +
 build/DirectXTK-GitHub-Test.yml        |  2 +
 build/DirectXTK-GitHub.yml             |  2 +
 9 files changed, 77 insertions(+)
 create mode 100644 .github/workflows/codeql.yml

diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
new file mode 100644
index 00000000..a64b084a
--- /dev/null
+++ b/.github/workflows/codeql.yml
@@ -0,0 +1,61 @@
+# Copyright (c) Microsoft Corporation.
+# Licensed under the MIT License.
+#
+# http://go.microsoft.com/fwlink/?LinkId=248929
+
+name: "CodeQL"
+
+on:
+  push:
+    branches: [ "main" ]
+  pull_request:
+    branches: [ "main" ]
+    paths-ignore:
+      - '*.md'
+      - LICENSE
+      - '.nuget/*'
+      - build/*.cmd
+      - build/*.json
+      - build/*.props
+      - build/*.ps1
+      - build/*.targets
+      - build/*.yml
+  schedule:
+    - cron: '31 2 * * 5'
+
+jobs:
+  analyze:
+    name: Analyze (C/C++)
+    runs-on: windows-latest
+    timeout-minutes: 360
+    permissions:
+      security-events: write
+      packages: read
+
+    steps:
+    - name: Checkout repository
+      uses: actions/checkout@v4
+
+    - name: 'Install Ninja'
+      run: choco install ninja
+
+    - uses: ilammy/msvc-dev-cmd@v1
+
+    - name: Initialize CodeQL
+      uses: github/codeql-action/init@v3
+      with:
+        languages: c-cpp
+        build-mode: manual
+
+    - name: 'Configure CMake'
+      working-directory: ${{env.GITHUB_WORKSPACE}}
+      run: cmake --preset=x64-Debug
+
+    - name: 'Build'
+      working-directory: ${{env.GITHUB_WORKSPACE}}
+      run: cmake --build out\build\x64-Debug
+
+    - name: Perform CodeQL Analysis
+      uses: github/codeql-action/analyze@v3
+      with:
+        category: "/language:c-cpp"
diff --git a/CMakePresets.json b/CMakePresets.json
index b125701f..318d63b7 100644
--- a/CMakePresets.json
+++ b/CMakePresets.json
@@ -293,6 +293,8 @@
     { "name": "x86-Release"  , "configurePreset": "x86-Release" },
     { "name": "arm64-Debug"  , "configurePreset": "arm64-Debug-Win10" },
     { "name": "arm64-Release", "configurePreset": "arm64-Release-Win10" },
+    { "name": "arm64ec-Debug"  , "configurePreset": "arm64ec-Debug-Win10" },
+    { "name": "arm64ec-Release", "configurePreset": "arm64ec-Release-Win10" },
 
     { "name": "x64-Debug-Win7"    , "configurePreset": "x64-Debug-Win7" },
     { "name": "x64-Release-Win7"  , "configurePreset": "x64-Release-Win7" },
diff --git a/build/DirectXTK-GitHub-CMake-Dev17.yml b/build/DirectXTK-GitHub-CMake-Dev17.yml
index 69c14584..85c78078 100644
--- a/build/DirectXTK-GitHub-CMake-Dev17.yml
+++ b/build/DirectXTK-GitHub-CMake-Dev17.yml
@@ -20,6 +20,7 @@ trigger:
     exclude:
     - '*.md'
     - LICENSE
+    - '.github/*'
     - '.nuget/*'
     - build/*.cmd
     - build/*.json
@@ -35,6 +36,7 @@ pr:
     exclude:
     - '*.md'
     - LICENSE
+    - '.github/*'
     - '.nuget/*'
     - build/*.cmd
     - build/*.json
diff --git a/build/DirectXTK-GitHub-CMake.yml b/build/DirectXTK-GitHub-CMake.yml
index 6a895b7f..4cc8934e 100644
--- a/build/DirectXTK-GitHub-CMake.yml
+++ b/build/DirectXTK-GitHub-CMake.yml
@@ -20,6 +20,7 @@ trigger:
     exclude:
     - '*.md'
     - LICENSE
+    - '.github/*'
     - '.nuget/*'
     - build/*.cmd
     - build/*.json
@@ -35,6 +36,7 @@ pr:
     exclude:
     - '*.md'
     - LICENSE
+    - '.github/*'
     - '.nuget/*'
     - build/*.cmd
     - build/*.json
diff --git a/build/DirectXTK-GitHub-Dev17.yml b/build/DirectXTK-GitHub-Dev17.yml
index 43cec160..14499994 100644
--- a/build/DirectXTK-GitHub-Dev17.yml
+++ b/build/DirectXTK-GitHub-Dev17.yml
@@ -21,6 +21,7 @@ trigger:
     - '*.md'
     - LICENSE
     - CMake*
+    - '.github/*'
     - '.nuget/*'
     - build/*.cmake
     - build/*.cmd
@@ -39,6 +40,7 @@ pr:
     - '*.md'
     - LICENSE
     - CMake*
+    - '.github/*'
     - '.nuget/*'
     - build/*.cmake
     - build/*.cmd
diff --git a/build/DirectXTK-GitHub-GDK.yml b/build/DirectXTK-GitHub-GDK.yml
index 76b35bae..b21e1c31 100644
--- a/build/DirectXTK-GitHub-GDK.yml
+++ b/build/DirectXTK-GitHub-GDK.yml
@@ -23,6 +23,7 @@ trigger:
     - '*.md'
     - LICENSE
     - CMake*
+    - '.github/*'
     - '.nuget/*'
     - build/*.cmake
     - build/*.cmd
@@ -39,6 +40,7 @@ pr:
     - '*.md'
     - LICENSE
     - CMake*
+    - '.github/*'
     - '.nuget/*'
     - build/*.cmake
     - build/*.cmd
diff --git a/build/DirectXTK-GitHub-MinGW.yml b/build/DirectXTK-GitHub-MinGW.yml
index dfbd3963..303a688b 100644
--- a/build/DirectXTK-GitHub-MinGW.yml
+++ b/build/DirectXTK-GitHub-MinGW.yml
@@ -20,6 +20,7 @@ trigger:
     exclude:
     - '*.md'
     - LICENSE
+    - '.github/*'
     - '.nuget/*'
     - build/*.cmd
     - build/*.json
@@ -35,6 +36,7 @@ pr:
     exclude:
     - '*.md'
     - LICENSE
+    - '.github/*'
     - '.nuget/*'
     - build/*.cmd
     - build/*.json
diff --git a/build/DirectXTK-GitHub-Test.yml b/build/DirectXTK-GitHub-Test.yml
index 1a83e3d5..e9fef02e 100644
--- a/build/DirectXTK-GitHub-Test.yml
+++ b/build/DirectXTK-GitHub-Test.yml
@@ -21,6 +21,7 @@ trigger:
     - '*.md'
     - LICENSE
     - CMake*
+    - '.github/*'
     - '.nuget/*'
     - build/*.cmake
     - build/*.cmd
@@ -39,6 +40,7 @@ pr:
     - '*.md'
     - LICENSE
     - CMake*
+    - '.github/*'
     - '.nuget/*'
     - build/*.cmake
     - build/*.cmd
diff --git a/build/DirectXTK-GitHub.yml b/build/DirectXTK-GitHub.yml
index 388bf7d6..b4fd504d 100644
--- a/build/DirectXTK-GitHub.yml
+++ b/build/DirectXTK-GitHub.yml
@@ -21,6 +21,7 @@ trigger:
     - '*.md'
     - LICENSE
     - CMake*
+    - '.github/*'
     - '.nuget/*'
     - build/*.cmake
     - build/*.cmd
@@ -39,6 +40,7 @@ pr:
     - '*.md'
     - LICENSE
     - CMake*
+    - '.github/*'
     - '.nuget/*'
     - build/*.cmake
     - build/*.cmd