Skip to content

feat: add CMake build system and CI/CD workflows (#2)#6

Merged
xcrtp merged 15 commits intodevfrom
fix/issue-2-cmake-ci
Mar 16, 2026
Merged

feat: add CMake build system and CI/CD workflows (#2)#6
xcrtp merged 15 commits intodevfrom
fix/issue-2-cmake-ci

Conversation

@xcrtp
Copy link
Copy Markdown
Owner

@xcrtp xcrtp commented Mar 16, 2026

Summary

This PR adds a complete CMake build system and CI/CD workflows for xcmath, addressing issue #2.

CMake Files Added

  • cmake/get_version.cmake - Version extraction from git tags
  • cmake/install.cmake - Installation configuration
  • cmake/install_deps.cmake - Empty for header-only library
  • cmake/install_test_deps.cmake - Google Test installation
  • cmake/xc_utils.cmake - Common CMake utilities
  • cmake/xcmathConfig.cmake.in - CMake config template

GitHub Actions Workflows Added

  • .github/workflows/ci.yml - Continuous Integration on Ubuntu/macOS/Windows with clang/gcc
  • .github/workflows/release.yml - Release workflow with artifacts for all platforms
  • .github/workflows/code-quality.yml - Clang format check

Other Changes

  • Updated .gitignore to include .github/ folder

Test Plan

  • CMake configuration builds successfully
  • Tests build and pass
  • Examples build correctly

xcrtp and others added 15 commits February 20, 2026 11:49
- Remove unnecessary vcruntime_typeinfo.h include
- Format move() method implementation
- Add build configuration variables to CMakePresets.json
- Add project overview and core features
- Document vector types, methods, and operations
- Document matrix types, methods, and transformations
- Include interpolation and serialization examples
- Add build instructions and compatibility table
- Reference xcmixin README style for consistency
- Change C++23 to C++20
- Update build commands without vcpkg
- Update requirements to reference xcmixin submodule
- Add GitHub badges (license, release, tag, language)
- Add Chinese README (README.zh-CN.md)
- Add MIT LICENSE file
- Update .gitignore to include new files
- Rename README.zh-CN.md to README-zh.md (matching xcmixin)
- Add bidirectional links between English and Chinese README
- Update .gitignore
- Add License section with link to LICENSE file
- Add Roadmap section with link to TODO folder
Update copyright to include author name (Tian Li)
- Add cmake files from cmake-project-template:
  - get_version.cmake: Version extraction from git tags
  - install.cmake: Installation configuration
  - install_deps.cmake: Empty for header-only library
  - install_test_deps.cmake: Google Test installation
  - xc_utils.cmake: Common CMake utilities
  - xcmathConfig.cmake.in: CMake config template

- Add GitHub Actions workflows from xcmixin:
  - ci.yml: CI on Ubuntu/macOS/Windows with clang/gcc
  - release.yml: Release workflow with artifacts
  - code-quality.yml: Clang format check

- Update .gitignore to include .github folder

Closes #2
@xcrtp xcrtp merged commit 04b6753 into dev Mar 16, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant