Skip to content

Commit 702baff

Browse files
committed
CMake minimum 3.16
1 parent 736cb47 commit 702baff

File tree

3 files changed

+66
-71
lines changed

3 files changed

+66
-71
lines changed

.github/workflows/presubmit.yml

+41-39
Original file line numberDiff line numberDiff line change
@@ -55,47 +55,47 @@ jobs:
5555
IMAGE:
5656
- streamhpc/opencl-sdk-intelcpu:ubuntu-22.04-20230717
5757
include:
58-
- CMAKE: 3.0.2
58+
- CMAKE: system
5959
C_COMPILER: gcc-9
6060
BIN: 64
6161
STD: 99
6262
CONF:
6363
GEN: Unix Makefiles
6464
CONFIG: Debug
6565
IMAGE: streamhpc/opencl-sdk-intelcpu:ubuntu-20.04-20230717
66-
- CMAKE: 3.0.2
66+
- CMAKE: system
6767
C_COMPILER: gcc-9
6868
BIN: 64
6969
STD: 99
7070
CONF:
7171
GEN: Unix Makefiles
7272
CONFIG: Release
7373
IMAGE: streamhpc/opencl-sdk-intelcpu:ubuntu-20.04-20230717
74-
- CMAKE: 3.0.2
74+
- CMAKE: system
7575
C_COMPILER: gcc-9
7676
BIN: 32
7777
STD: 99
7878
CONF:
7979
GEN: Unix Makefiles
8080
CONFIG: Debug
8181
IMAGE: streamhpc/opencl-sdk-intelcpu:ubuntu-20.04-20230717
82-
- CMAKE: 3.0.2
82+
- CMAKE: system
8383
C_COMPILER: gcc-9
8484
BIN: 32
8585
STD: 99
8686
CONF:
8787
GEN: Unix Makefiles
8888
CONFIG: Release
8989
IMAGE: streamhpc/opencl-sdk-intelcpu:ubuntu-20.04-20230717
90-
- CMAKE: 3.0.2
90+
- CMAKE: system
9191
C_COMPILER: gcc-11
9292
BIN: 64
9393
STD: 99
9494
CONF:
9595
GEN: Unix Makefiles
9696
CONFIG: Debug
9797
IMAGE: streamhpc/opencl-sdk-intelcpu:ubuntu-22.04-20230717
98-
- CMAKE: 3.0.2
98+
- CMAKE: system
9999
C_COMPILER: gcc-11
100100
BIN: 64
101101
STD: 99
@@ -109,33 +109,41 @@ jobs:
109109
CPACK_EXE: /opt/Kitware/CMake/${{ matrix.CMAKE }}/bin/cpack
110110
CTEST_EXE: /opt/Kitware/CMake/${{ matrix.CMAKE }}/bin/ctest
111111
CC: ${{matrix.C_COMPILER}}
112+
CFLAGS: -Wall -Wextra -pedantic -Werror -m${{matrix.BIN}}
112113

113114
steps:
115+
- name: Install system CMake
116+
shell: bash
117+
if: ${{matrix.CMAKE}} == 'system'
118+
run: apt-get update -qq && apt-get install -y cmake &&
119+
echo "CMAKE_EXE=cmake" >> "$GITHUB_ENV" &&
120+
echo "CPACK_EXE=cpack" >> "$GITHUB_ENV" &&
121+
echo "CTEST_EXE=ctest" >> "$GITHUB_ENV"
122+
114123
- name: Checkout OpenCL-Headers
115124
uses: actions/checkout@v3
116125

117126
- name: Configure
118127
shell: bash
119-
run: mkdir $GITHUB_WORKSPACE/build && cd $GITHUB_WORKSPACE/build &&
120-
$CMAKE_EXE
128+
run: $CMAKE_EXE
121129
-G "${{matrix.CONF.GEN}}"
122130
-D BUILD_TESTING=ON
123-
-D CMAKE_BUILD_TYPE=${{matrix.CONF.CONFIG}}
131+
`if [[ "${{matrix.CONF.GEN}}" == "Unix Makefiles" ]]; then echo "-D CMAKE_BUILD_TYPE=${{matrix.CONF.CONFIG}}"; fi`
124132
-D CMAKE_C_STANDARD=${{matrix.STD}}
125-
-D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -Werror -m${{matrix.BIN}}"
126133
-D CMAKE_C_EXTENSIONS=OFF
127-
-D CMAKE_INSTALL_PREFIX=`if [[ "${{matrix.CMAKE}}" != "3.0.2" ]]; then echo "$GITHUB_WORKSPACE/install"; else echo "/usr"; fi`
128-
`if [[ "${{matrix.CMAKE}}" != "3.0.2" ]]; then echo "-D CPACK_PACKAGING_INSTALL_PREFIX=/usr"; fi`
129-
$GITHUB_WORKSPACE
134+
-D CMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/install
135+
-D CPACK_PACKAGING_INSTALL_PREFIX=/usr
136+
-S $GITHUB_WORKSPACE
137+
-B $GITHUB_WORKSPACE/build
130138

131139
- name: Build
132140
shell: bash
133141
run: if [[ "${{matrix.CONF.GEN}}" == "Unix Makefiles" ]];
134142
then
135-
$CMAKE_EXE --build $GITHUB_WORKSPACE/build -- -j`nproc`;
143+
$CMAKE_EXE --build $GITHUB_WORKSPACE/build --parallel `nproc`;
136144
else
137-
$CMAKE_EXE --build $GITHUB_WORKSPACE/build --config Debug -- -j`nproc`;
138-
$CMAKE_EXE --build $GITHUB_WORKSPACE/build --config Release -- -j`nproc`;
145+
$CMAKE_EXE --build $GITHUB_WORKSPACE/build --config Debug --parallel `nproc`;
146+
$CMAKE_EXE --build $GITHUB_WORKSPACE/build --config Release --parallel `nproc`;
139147
fi;
140148

141149
- name: Test
@@ -160,27 +168,28 @@ jobs:
160168
- name: Consume (DEB)
161169
shell: bash
162170
run: dpkg -i $GITHUB_WORKSPACE/package-deb/*.deb &&
163-
mkdir $GITHUB_WORKSPACE/build_package && cd $GITHUB_WORKSPACE/build_package &&
164171
$CMAKE_EXE
165172
-G "${{matrix.CONF.GEN}}"
166-
-D CMAKE_BUILD_TYPE=${{matrix.CONF.CONFIG}}
173+
`if [[ "${{matrix.CONF.GEN}}" == "Unix Makefiles" ]]; then echo "-D CMAKE_BUILD_TYPE=${{matrix.CONF.CONFIG}}"; fi`
167174
-D CMAKE_C_STANDARD=${{matrix.STD}}
168-
-D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -Werror -m${{matrix.BIN}}"
169175
-D CMAKE_C_EXTENSIONS=OFF
170-
$GITHUB_WORKSPACE/tests/pkgconfig/bare &&
176+
-S $GITHUB_WORKSPACE/tests/pkgconfig/bare
177+
-B $GITHUB_WORKSPACE/build_package &&
171178
if [[ "${{matrix.CONF.GEN}}" == "Unix Makefiles" ]];
172179
then
173-
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_package -- -j`nproc`;
180+
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_package --parallel `nproc`;
174181
else
175-
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_package --config Debug -- -j`nproc`;
176-
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_package --config Release -- -j`nproc`;
182+
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_package --config Debug --parallel `nproc`;
183+
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_package --config Release --parallel `nproc`;
177184
fi;
178185

179186
- name: Test pkg-config (DEB)
180187
shell: bash
181188
# /usr/include is already on the include search path,
182189
# we don't expect any output
183-
run: if [[ $(pkg-config OpenCL --cflags) ]];
190+
run: |
191+
pkg-config OpenCL-Headers --cflags
192+
if [[ "$(pkg-config OpenCL-Headers --cflags)" ]];
184193
then
185194
exit 1;
186195
fi;
@@ -189,33 +198,26 @@ jobs:
189198
shell: bash
190199
run: apt-get remove -y opencl-c-headers
191200

192-
- name: Re-configure for install
193-
if: matrix.CMAKE == '3.0.2'
194-
shell: bash
195-
run: cd $GITHUB_WORKSPACE/build &&
196-
$CMAKE_EXE -D CMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/install $GITHUB_WORKSPACE
197-
198201
- name: Test install
199202
shell: bash
200-
run: $CMAKE_EXE --build $GITHUB_WORKSPACE/build --target install --config ${{matrix.CONF.CONFIG}} -- -j`nproc`;
203+
run: $CMAKE_EXE --build $GITHUB_WORKSPACE/build --target install --config ${{matrix.CONF.CONFIG}} --parallel `nproc`
201204

202205
- name: Consume (install)
203206
shell: bash
204-
run: mkdir $GITHUB_WORKSPACE/build_install && cd $GITHUB_WORKSPACE/build_install &&
205-
$CMAKE_EXE
207+
run: $CMAKE_EXE
206208
-G "${{matrix.CONF.GEN}}"
207-
-D CMAKE_BUILD_TYPE=${{matrix.CONF.CONFIG}}
209+
`if [[ "${{matrix.CONF.GEN}}" == "Unix Makefiles" ]]; then echo "-D CMAKE_BUILD_TYPE=${{matrix.CONF.CONFIG}}"; fi`
208210
-D CMAKE_C_STANDARD=${{matrix.STD}}
209-
-D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -Werror -m${{matrix.BIN}}"
210211
-D CMAKE_C_EXTENSIONS=OFF
211212
-D CMAKE_PREFIX_PATH=$GITHUB_WORKSPACE/install
212-
$GITHUB_WORKSPACE/tests/pkgconfig/bare &&
213+
-S $GITHUB_WORKSPACE/tests/pkgconfig/bare
214+
-B $GITHUB_WORKSPACE/build_install &&
213215
if [[ "${{matrix.CONF.GEN}}" == "Unix Makefiles" ]];
214216
then
215-
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_install -- -j`nproc`;
217+
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_install --parallel `nproc`;
216218
else
217-
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_install --config Debug -- -j`nproc`;
218-
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_install --config Release -- -j`nproc`;
219+
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_install --config Debug --parallel `nproc`;
220+
$CMAKE_EXE --build $GITHUB_WORKSPACE/build_install --config Release --parallel `nproc`;
219221
fi;
220222

221223
- name: Test pkg-config (install)

CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
cmake_minimum_required(VERSION 3.0)
2-
cmake_policy(VERSION 3.0...3.22)
1+
cmake_minimum_required(VERSION 3.16)
2+
cmake_policy(VERSION 3.16...3.26)
33

44
# Include guard for including this project multiple times
55
if(TARGET Headers)

cmake/Package.cmake

+23-30
Original file line numberDiff line numberDiff line change
@@ -29,33 +29,28 @@ install(
2929
DESTINATION ${pkg_config_location}
3030
COMPONENT pkgconfig_install)
3131

32-
if(NOT (CMAKE_VERSION VERSION_LESS "3.5"))
33-
set(PKGCONFIG_PREFIX "${CPACK_PACKAGING_INSTALL_PREFIX}")
34-
configure_file(
35-
OpenCL-Headers.pc.in
36-
${CMAKE_CURRENT_BINARY_DIR}/pkgconfig_package/OpenCL-Headers.pc
37-
@ONLY)
38-
# This install component is only needed in the Debian package
39-
install(
40-
FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig_package/OpenCL-Headers.pc
41-
DESTINATION ${pkg_config_location}
42-
COMPONENT pkgconfig_package
43-
EXCLUDE_FROM_ALL)
44-
45-
# By using component based packaging, component pkgconfig_install
46-
# can be excluded from the package, and component pkgconfig_package
47-
# can be included.
48-
set(CPACK_DEB_COMPONENT_INSTALL ON)
49-
set(CPACK_COMPONENTS_GROUPING "ALL_COMPONENTS_IN_ONE")
50-
51-
include(CPackComponent)
52-
cpack_add_component(pkgconfig_install)
53-
cpack_add_component(pkgconfig_package)
54-
set(CPACK_COMPONENTS_ALL "Unspecified;pkgconfig_package")
55-
elseif(NOT (CMAKE_INSTALL_PREFIX STREQUAL CPACK_PACKAGING_INSTALL_PREFIX))
56-
message(FATAL_ERROR "When using CMake version < 3.5, CPACK_PACKAGING_INSTALL_PREFIX should not be set,"
57-
" or should be the same as CMAKE_INSTALL_PREFIX")
58-
endif()
32+
set(PKGCONFIG_PREFIX "${CPACK_PACKAGING_INSTALL_PREFIX}")
33+
configure_file(
34+
OpenCL-Headers.pc.in
35+
${CMAKE_CURRENT_BINARY_DIR}/pkgconfig_package/OpenCL-Headers.pc
36+
@ONLY)
37+
# This install component is only needed in the Debian package
38+
install(
39+
FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgconfig_package/OpenCL-Headers.pc
40+
DESTINATION ${pkg_config_location}
41+
COMPONENT pkgconfig_package
42+
EXCLUDE_FROM_ALL)
43+
44+
# By using component based packaging, component pkgconfig_install
45+
# can be excluded from the package, and component pkgconfig_package
46+
# can be included.
47+
set(CPACK_DEB_COMPONENT_INSTALL ON)
48+
set(CPACK_COMPONENTS_GROUPING "ALL_COMPONENTS_IN_ONE")
49+
50+
include(CPackComponent)
51+
cpack_add_component(pkgconfig_install)
52+
cpack_add_component(pkgconfig_package)
53+
set(CPACK_COMPONENTS_ALL "Unspecified;pkgconfig_package")
5954

6055
# DEB packaging configuration
6156
set(CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_VENDOR})
@@ -75,9 +70,7 @@ set(CPACK_DEBIAN_PACKAGE_NAME
7570
"${DEBIAN_PACKAGE_NAME}"
7671
CACHE STRING "Package name" FORCE)
7772

78-
# Get architecture
79-
execute_process(COMMAND dpkg "--print-architecture" OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
80-
string(STRIP "${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}" CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
73+
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "all")
8174

8275
# Package file name in deb format:
8376
# <PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb

0 commit comments

Comments
 (0)