OpenCL-SDK
OpenCL-SDK copied to clipboard
Update CI, CD
- Updated format enforcing script.
- Minor changes to source files to avoid warnings on all compilers tested in CI.
-
-Werror
//WX
is enabled in CI, however a list of warnings had to be enabled, since their resolution was deemed out-of-scope.
-
- Added
clinfo
as a dependency, that is built with the project. - Refactored the
CMakeLists.txt
to be able to produce binary Debian packages usingcpack
.- CMake minimum version is bumped to 3.16.
- Updated the CI (pre-release) script.
- 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
- CMake versions: 3.26 and 3.16 on Ubuntu 20.04
- CMake generators: Ninja Multi-Config, Unix Makefiles
- Added test execution
- Added the generation of the Debian package and testing the consumption of the package, as well as the installed tree
- 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
- CMake: system installed, currently 3.27
- CMake generators: Ninja Multi-Config, Visual Studio 17 2022
- Added the result checking of the external command invocations in the PowerShell snippets
- Added test execution
- Added build and test steps checking the consumption of the installed tree
- Updated MacOS CI, which runs on MacOS 13
- Compiler: Apple-Clang 14
- Binary target: x86-64
- CMake: system installed, currently 3.27
- CMake generators: Ninja Multi-Config, XCode
- Added test execution
- Added build and test steps checking the consumption of the installed tree
- 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
- Updated Linux CI to use a new container image
- Updated the release workflow
- Added
DebSourcePkg.cmake
which is intended to run in CMake script mode. This script generates thedebian/control
,debian/changelog
anddebian/rules
files which are required to build a Debian source package. - 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.
-
clinfo
is not part of the aforementioned Debian source package, since the Debian package build on Launchpad cannot access the Internet. A potential solution would be forkingclinfo
and referencing it as a submodule, but this was decided to be out-of-scope for now. - Detailed instruction regarding the release procedure is added to RELEASE.md.
- Added
A ToDo item is to revert the referenced submodule commits to the KhronosGroup
repos, once the respective PRs have been merged.
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)
@bashbaug so should we merge?
Merging as discussed in the October 1st teleconference.
We'll check that the install directories are working as we intend after merging. Specifically, with a non-multi-config generator (e.g. Makefiles), does the install go into per-config directories, or into a single lib
or bin
directory?