OpenCL-CLHPP
OpenCL-CLHPP copied to clipboard
Updated CI, added CD
- Added .gitignore file,
- Added .clang-format (based on OpenCL-SDK's corresponding file) and format enforcing script.
- Minor changes to source files to avoid warnings on all compilers tested in CI.
-
-Werror
//WX
is enabled in CI
-
- Refactored the
CMakeLists.txt
to be able to produce a binary Debian package usingcpack
.- CMake minimum version is bumped to 3.16.
- Updated the CI (pre-release) script.
- Removed the previous separate workflows for Windows, MacOS and Linux. All CI scripts reside in the
presubmit
workflow now. - Added a job that checks the changed code for formatting conformance via
git-clang-format
. - Updated Linux CI to use a new container image
- Most jobs in the matrix are based on Ubuntu 22.04
- Compilers gcc-11, gcc-13, clang-14, clang-16 and gcc-9 on Ubuntu 20.04
- Binary targets: x86-64 and x86 on Ubuntu 20.04
- C++ standards: 11, 17
- CMake versions: 3.26 and 3.16 on Ubuntu 20.04
- CMake generators: Ninja Multi-Config, Unix Makefiles
- Added the generation of the Debian package, testing the package, and testing the install tree to the workflow
- Updated Windows CI, which runs on Windows Server 2022
- MSVC toolsets: v141, v142, v143, clang-cl (this latter with msbuild only)
- Binary targets: x86-64, x86
- C++ standards: 11, 17
- CMake: system installed, currently 3.27
- CMake generators: Ninja Multi-Config, Visual Studio 17 2022
- Updated MacOS CI, which runs on MacOS 13
- Compilers: Apple-Clang 14, gcc-11, gcc-13 (gcc with Ninja Multi-Config only)
- Binary target: x86-64
- C++ standards: 11, 17
- CMake: system installed, currently 3.27
- CMake generators: Ninja Multi-Config, XCode
- Added Android CI, which is build only (virtualization is not available with the default GitHub runners)
- Binary targets: x86-64, arm64
- Android API levels: 19, 33
- Removed the previous separate workflows for Windows, MacOS and Linux. All CI scripts reside in the
- Added a release workflow which triggers on the push of a
v*
tag- Added
DebSourcePkg.cmake
which is intended to run in CMake script mode. This script generates thedebian/control
,debian/changelog
and ``debian/rules` files which are required to build a Debian source package. - The generated source package produces 2 binary packages: one containing the CLHPP headers (opencl-clhpp-headers), and another that contains the Doxygen-generated documentation (opencl-clhpp-headers-doc).
- The release workflow generates the Debian source package and pushes it to a prescribed Launchpad PPA. The details of the release (e.g. maintainer, signing key) has to be set up as repository variables.
- Detailed instruction regarding the release procedure is going to be added to the OpenCL SDK repository.
- Added
This PR is considered to be complete, albeit review remarks and/or changes to related PRs might warrant minor updates.
Latest commits:
-
update Docker images so that the ones from the
khronosgroup
Docker Hub are used -
fix MSVC compiler toolset version due to breaking change in the MSVC versioning (see cppblog)
We have incremented the minor version number of the MSVC toolset from 19.39 (VS 2022 v17.9) to 19.40 (VS 2022 v17.10)
Merging as discussed in the June 25th teleconference.