Releases: Sunrisepeak/opencv-m
Release list
opencv-m v0.0.10
What's Changed
- fix(build): migrate per-glob flags to OS-conditional cfg tables (mcpp#258) — zero dead-glob warnings on every platform by @Sunrisepeak in #16
Full Changelog: v0.0.9...v0.0.10
v0.0.9
Patch release — windows/clang consumer fix.
- fix(build): OpenCV's x86_64 baseline is SSE3, and
-msse3was a global cfg cxxflag that also tagged the module-interface units (src/.cppm). clang bakes the target feature into opencv..pcm, so a CONSUMER TU compiled at plain baseline could not load the BMI (-Wmodule-file-config-mismatch → cascading 'use of undeclared identifier cv'). The package's own tests passed (they carry the same -msse3, a superset loads) and gcc does not enforce this, so it was invisible until opencv was consumed as a dependency on windows/clang. -msse3 now applies per-glob to the library TUs only; the module interfaces compile at baseline, so opencv..pcm loads in any importer. - CI: a Module-interface baseline guard fails if any src/*.cppm compile line carries a target-feature flag; CI mcpp pin → 0.0.102 (the per-glob-under-cfg syntax needs #258).
No public C++ API change from v0.0.8. Supersedes v0.0.8, which is not usable as a windows/clang dependency. Requires mcpp >= 0.0.102.
v0.0.8
Patch release.
- fix(template): the
--template opencvscaffold didstd::println(stderr, …)under a bareimport std;; modules do not export the<cstdio>stderrmacro, so the generated project failed to compile. The template now#include <cstdio>(matching examples/gray_pipeline), and CI gained a lint that fails a template TU touching stderr/stdout/stdin underimport std;without .
No library source or ABI change from v0.0.7; the C++ module surface is identical. Verified end-to-end: mcpp new … --template opencv → build → run produces a grayscale PNG, and the dnn/unifont features build from a consumer.
opencv-m v0.0.7
单仓库化:OpenCV 源码内置,compat.opencv 退役
本版本将 OpenCV 5.0.0 的完整源码构建收入本仓库,不再经由包索引侧的 compat.opencv 描述符。
- 源码内置 —
third_party/opencv-5.0.0/,官方 tag tarball 的裁剪导入(8 模块 + 7 第三方组件,1969 文件,48 MB),sha256 锁定,零补丁;tools/vendor/import_opencv.sh可复现。 - 构建期配置以生成物提交 —
gen/:gen/common/为三平台逐字节相同的产物,gen/{linux,macosx,windows}/为平台相关快照。消费端无需执行 CMake。 - 构建描述 —
mcpp.toml(51 组逐 glob 编译选项、平台条件源集合、特性定义)+build.mcpp(仅承担清单语法无法表达的三件事:平台 include 目录、平台 × dnn 源注入、unifont 字体嵌入)。 - 外部依赖仅
compat.ffmpeg(videoio 的 FFmpeg 后端)。
平台 × 工具链矩阵
CI 五条腿全部为必需并全部通过:Linux/gcc 16、Linux/llvm 22、Linux/gcc --target x86_64-linux-musl(静态链接)、macOS/llvm(arm64)、Windows/llvm。
其他变更
src/matx_ops.inc改用整类型推导,规避 clang 20/22 的模块 BMI 前端崩溃(参见 mcpp#256);gcc 语义已回归验证。- Windows 平台差异经
gen/windows/tu/w*/桩命名空间表达(mcpp#258 落地后可整体移除)。 - 新增中英双语 README 与
docs/architecture.{md,en.md}架构设计说明。 templates/占位符改用 mcpp 渲染器实际支持的{{project.name}}/{{self.name}}/{{self.version}},并加 CI 检查。
要求
mcpp ≥ 0.0.101(per-OS 特性语义)。
opencv-m v0.0.6
What's Changed
- feat: v0.0.6 — clang static-inline export forwarding layer (import opencv.cv on macOS/windows) by @Sunrisepeak in #8
Full Changelog: v0.0.5...v0.0.6
opencv-m v0.0.5
What's Changed
- fix: v0.0.5 — prune static-inline exports clang rejects (macOS import opencv.cv) by @Sunrisepeak in #6
Full Changelog: v0.0.4...v0.0.5
opencv-m v0.0.4
What's Changed
- feat: v0.0.4 — 模块级 dnn/unifont feature(mcpp#243 转发) by @Sunrisepeak in #5
Full Changelog: v0.0.3...v0.0.4
opencv-m v0.0.3
What's Changed
- feat: Matx/Vec 算子替换层(R1)+ 混用 TU 确定性解析(R2) by @Sunrisepeak in #3
- feat: v0.0.3 — 切换到统一 compat.opencv(FFmpeg videoio)+ mcpp 0.0.98 by @Sunrisepeak in #4
Full Changelog: v0.0.2...v0.0.3
opencv-m v0.0.2
What's Changed
- fix: replacement surface for upstream static-inline operators (v0.0.2) by @Sunrisepeak in #2
Full Changelog: v0.0.1...v0.0.2
opencv-m v0.0.1
What's Changed
- feat: OpenCV 5 as C++23 modules — thin module layer over compat.opencv5 source build (v0.0.1) by @Sunrisepeak in #1
New Contributors
- @Sunrisepeak made their first contribution in #1
Full Changelog: https://github.com/Sunrisepeak/opencv-m/commits/v0.0.1