Skip to content

Commit f5893a8

Browse files
committed
Fixes from review: now packaging the install tree; Debian package name and installation prefix fixed
1 parent 5130a09 commit f5893a8

4 files changed

Lines changed: 49 additions & 49 deletions

File tree

.github/workflows/linux.yml

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,8 @@ jobs:
167167

168168
- name: Configure
169169
shell: bash
170-
run: $CMAKE_EXE
170+
run: mkdir $GITHUB_WORKSPACE/build && cd $GITHUB_WORKSPACE/build &&
171+
$CMAKE_EXE
171172
-G "${{matrix.GEN}}"
172173
-D BUILD_TESTING=ON
173174
`if [[ "${{matrix.GEN}}" == "Unix Makefiles" ]]; then echo -D CMAKE_BUILD_TYPE=${{matrix.CONFIG}}; fi;`
@@ -178,8 +179,8 @@ jobs:
178179
-D CMAKE_CXX_COMPILER=${{matrix.CXX_COMPILER}}
179180
-D CMAKE_CXX_EXTENSIONS=OFF
180181
-D CMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/install
181-
-B$GITHUB_WORKSPACE/build
182-
-H$GITHUB_WORKSPACE
182+
-D CPACK_PACKAGING_INSTALL_PREFIX=/usr
183+
$GITHUB_WORKSPACE
183184

184185
- name: Build
185186
shell: bash
@@ -191,47 +192,46 @@ jobs:
191192
$CMAKE_EXE --build $GITHUB_WORKSPACE/build --config Release -- -j`nproc`;
192193
fi;
193194

195+
- name: Test
196+
shell: bash
197+
working-directory: ${{runner.workspace}}/OpenCL-Headers/build
198+
run: if [[ "${{matrix.GEN}}" == "Unix Makefiles" ]];
199+
then
200+
$CTEST_EXE --output-on-failure --parallel `nproc`;
201+
else
202+
$CTEST_EXE --output-on-failure -C Debug --parallel `nproc`;
203+
$CTEST_EXE --output-on-failure -C Release --parallel `nproc`;
204+
fi;
205+
194206
- name: Package DEB
195207
shell: bash
196208
run: $CPACK_EXE
197-
--config "$GITHUB_WORKSPACE/build/CPackSourceConfig.cmake"
209+
--config "$GITHUB_WORKSPACE/build/CPackConfig.cmake"
198210
-G DEB
199211
-C Release
200212
-B "$GITHUB_WORKSPACE/package-deb"
201213

202214
- name: Consume (Package DEB)
203215
shell: bash
204-
run: |
205-
dpkg -i $GITHUB_WORKSPACE/package-deb/*.deb
206-
rm -rf $GITHUB_WORKSPACE/build
207-
$CMAKE_EXE \
208-
-G "${{matrix.GEN}}" \
209-
-D BUILD_TESTING=ON \
210-
`if [[ "${{matrix.GEN}}" == "Unix Makefiles" ]]; then echo -D CMAKE_BUILD_TYPE=${{matrix.CONFIG}}; fi;` \
211-
-D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -Werror -m${{matrix.BIN}}" \
212-
-D CMAKE_C_COMPILER=${{matrix.C_COMPILER}} \
213-
-D CMAKE_C_EXTENSIONS=OFF \
214-
-D CMAKE_CXX_FLAGS="-Wall -Wextra -pedantic -Werror -m${{matrix.BIN}}" \
215-
-D CMAKE_CXX_COMPILER=${{matrix.CXX_COMPILER}} \
216-
-D CMAKE_CXX_EXTENSIONS=OFF \
217-
-B$GITHUB_WORKSPACE/build \
218-
-H$GITHUB_WORKSPACE
219-
if [[ "${{matrix.GEN}}" == "Unix Makefiles" ]]; then
220-
$CMAKE_EXE --build $GITHUB_WORKSPACE/build -- -j`nproc`
221-
else
222-
$CMAKE_EXE --build $GITHUB_WORKSPACE/build --config Debug -- -j`nproc`
223-
$CMAKE_EXE --build $GITHUB_WORKSPACE/build --config Release -- -j`nproc`
224-
fi
225-
226-
- name: Test
227-
shell: bash
228-
working-directory: ${{runner.workspace}}/OpenCL-Headers/build
229-
run: if [[ "${{matrix.GEN}}" == "Unix Makefiles" ]];
216+
run: dpkg -i $GITHUB_WORKSPACE/package-deb/*.deb &&
217+
mkdir $GITHUB_WORKSPACE/build_package && cd $GITHUB_WORKSPACE/build_package &&
218+
$CMAKE_EXE
219+
-G "${{matrix.GEN}}"
220+
-D BUILD_TESTING=ON
221+
`if [[ "${{matrix.GEN}}" == "Unix Makefiles" ]]; then echo -D CMAKE_BUILD_TYPE=${{matrix.CONFIG}}; fi;`
222+
-D CMAKE_C_FLAGS="-Wall -Wextra -pedantic -Werror -m${{matrix.BIN}}"
223+
-D CMAKE_C_COMPILER=${{matrix.C_COMPILER}}
224+
-D CMAKE_C_EXTENSIONS=OFF
225+
-D CMAKE_CXX_FLAGS="-Wall -Wextra -pedantic -Werror -m${{matrix.BIN}}"
226+
-D CMAKE_CXX_COMPILER=${{matrix.CXX_COMPILER}}
227+
-D CMAKE_CXX_EXTENSIONS=OFF
228+
$GITHUB_WORKSPACE/tests/pkgconfig/bare &&
229+
if [[ "${{matrix.GEN}}" == "Unix Makefiles" ]];
230230
then
231-
$CTEST_EXE --output-on-failure --parallel `nproc`;
231+
$CMAKE_EXE --build $GITHUB_WORKSPACE/build -- -j`nproc`;
232232
else
233-
$CTEST_EXE --output-on-failure -C Debug --parallel `nproc`;
234-
$CTEST_EXE --output-on-failure -C Release --parallel `nproc`;
233+
$CMAKE_EXE --build $GITHUB_WORKSPACE/build --config Debug -- -j`nproc`;
234+
$CMAKE_EXE --build $GITHUB_WORKSPACE/build --config Release -- -j`nproc`;
235235
fi;
236236

237237
- name: Test install
@@ -245,4 +245,4 @@ jobs:
245245

246246
- name: Test pkg-config
247247
shell: bash
248-
run: pkg-config OpenCL-Headers --cflags | grep -q "\-I/usr/local/include"
248+
run: PKG_CONFIG_PATH="$GITHUB_WORKSPACE/install/share/pkgconfig" pkg-config OpenCL-Headers --cflags | grep -q "\-I$GITHUB_WORKSPACE/install/include"

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
# Build dir
22
[Bb]uild/
33

4+
# Install dir
5+
[Ii]nstall/
6+
47
# Package dir
58
[Pp]ackage[-_\s\d]*/
69

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ if(TARGET Headers)
77
endif()
88

99
project(OpenCLHeaders
10-
VERSION 2.2
10+
VERSION 3.0
1111
LANGUAGES C # Ideally should be NONE, but GNUInstallDirs detects platform arch using try_compile
1212
# https://stackoverflow.com/questions/43379311/why-does-project-affect-cmakes-opinion-on-cmake-sizeof-void-p
1313
)

cmake/Package.cmake

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
set(CPACK_PACKAGE_VENDOR "khronos")
22

3-
set(CPACK_PACKAGE_DESCRIPTION "OpenCL API C headers")
3+
set(CPACK_PACKAGE_DESCRIPTION "OpenCL (Open Computing Language) C header files")
44

55
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
66

@@ -10,34 +10,31 @@ if(NOT CPACK_PACKAGING_INSTALL_PREFIX)
1010
set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
1111
endif()
1212

13-
if(NOT CPACK_SOURCE_IGNORE_FILES)
14-
set(CPACK_SOURCE_IGNORE_FILES="/.github/;/build/")
15-
endif()
16-
1713
# DEB packaging configuration
1814
set(CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_VENDOR})
1915

2016
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE
2117
"https://github.com/KhronosGroup/OpenCL-Headers")
2218

23-
# Get Debian package name from project name
24-
string(TOLOWER ${PROJECT_NAME} DEBIAN_PACKAGE_NAME)
25-
string(REPLACE "opencl" "opencl-" DEBIAN_PACKAGE_NAME ${DEBIAN_PACKAGE_NAME})
26-
2719
# Version number [epoch:]upstream_version[-debian_revision]
28-
set(CPACK_DEBIAN_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}) # upstream_version
29-
set(CPACK_DEBIAN_PACKAGE_RELEASE "1") # devian_revision (because this is a
20+
set(LATEST_RELEASE_VERSION "2023.04.17")
21+
set(CPACK_DEBIAN_PACKAGE_VERSION "${PROJECT_VERSION}~${LATEST_RELEASE_VERSION}") # upstream_version
22+
set(CPACK_DEBIAN_PACKAGE_RELEASE "1") # debian_revision (because this is a
3023
# non-native pkg)
24+
set(PACKAGE_VERSION_REVISION "${CPACK_DEBIAN_PACKAGE_VERSION}-${CPACK_DEBIAN_PACKAGE_RELEASE}")
3125

26+
set(DEBIAN_PACKAGE_NAME "opencl-c-headers")
3227
set(CPACK_DEBIAN_PACKAGE_NAME
33-
"${CPACK_PACKAGE_VENDOR}-${DEBIAN_PACKAGE_NAME}"
28+
"${DEBIAN_PACKAGE_NAME}"
3429
CACHE STRING "Package name" FORCE)
3530

36-
set(CPACK_DEBIAN_PACKAGE_FILE_NAME "${CPACK_DEBIAN_PACKAGE_NAME}-${CPACK_DEBIAN_PACKAGE_VERSION}")
31+
# Get architecture
32+
execute_process(COMMAND dpkg "--print-architecture" OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
33+
string(STRIP "${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}" CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
3734

3835
# Package file name in deb format:
3936
# <PackageName>_<VersionNumber>-<DebianRevisionNumber>_<DebianArchitecture>.deb
40-
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
37+
set(CPACK_DEBIAN_FILE_NAME "${CPACK_PACKAGE_VENDOR}-${DEBIAN_PACKAGE_NAME}_${PACKAGE_VERSION_REVISION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}.deb")
4138

4239
set(CPACK_DEBIAN_PACKAGE_DEBUG ON)
4340

0 commit comments

Comments
 (0)