Skip to content

Commit 029a8fc

Browse files
committed
Add DEB packaging
1 parent 9c8a37c commit 029a8fc

File tree

3 files changed

+60
-2
lines changed

3 files changed

+60
-2
lines changed

CMakeLists.txt

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ if(RIFFCPP_INSTALL_LIB)
4646
install(
4747
TARGETS riffcpp
4848
EXPORT riffcpp-targets
49+
COMPONENT runtime
4950
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
5051
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
5152
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
@@ -57,11 +58,13 @@ if(RIFFCPP_INSTALL_HEADERS)
5758
install(
5859
DIRECTORY ${CMAKE_SOURCE_DIR}/include/
5960
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
61+
COMPONENT devel
6062
)
6163

6264
install(
6365
FILES ${PROJECT_BINARY_DIR}/riffcpp_export.h
6466
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
67+
COMPONENT devel
6568
)
6669

6770
# installs the *cmake files in share directory
@@ -70,6 +73,7 @@ if(RIFFCPP_INSTALL_HEADERS)
7073
FILE riffcpp-targets.cmake
7174
NAMESPACE riffcpp::
7275
DESTINATION share/riffcpp
76+
COMPONENT devel
7377
)
7478

7579
include(CMakePackageConfigHelpers)
@@ -91,13 +95,15 @@ if(RIFFCPP_INSTALL_HEADERS)
9195
${CMAKE_BINARY_DIR}/cmake/riffcpp-config.cmake
9296
${CMAKE_BINARY_DIR}/cmake/riffcpp-config-version.cmake
9397
DESTINATION share/riffcpp
98+
COMPONENT devel
9499
)
95100
endif()
96101

97102
if(RIFFCPP_INSTALL_EXAMPLE)
98103
install(
99104
TARGETS riff_dump
100105
RUNTIME DESTINATION ${RIFFCPP_EXAMPLE_INSTALL_DIR}
106+
COMPONENT example
101107
)
102108
endif()
103109

@@ -111,10 +117,46 @@ set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Simple library for reading RIFF files")
111117
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
112118
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
113119
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
120+
set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
121+
set(CPACK_DEBIAN_RUNTIME_PACKAGE_NAME "riffcpp")
122+
set(CPACK_DEBIAN_DEVEL_PACKAGE_NAME "riffcpp-dev")
123+
set(CPACK_DEBIAN_EXAMPLE_PACKAGE_NAME "riffcpp-utils")
124+
set(CPACK_DEBIAN_RUNTIME_FILE_NAME riffcpp_${CPACK_PACKAGE_VERSION}.deb)
125+
set(CPACK_DEBIAN_DEVEL_FILE_NAME riffcpp-dev_${CPACK_PACKAGE_VERSION}.deb)
126+
set(CPACK_DEBIAN_EXAMPLE_FILE_NAME riffcpp-utils_${CPACK_PACKAGE_VERSION}.deb)
127+
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.14), libstdc++6 (>= 5.2), libgcc1 (>= 1:3.0)")
128+
set(CPACK_DEBIAN_DEVEL_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}, riffcpp (>= ${CPACK_PACKAGE_VERSION}), riffcpp (<< 2.3)")
129+
set(CPACK_DEBIAN_EXAMPLE_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}, riffcpp (>= ${CPACK_PACKAGE_VERSION}), riffcpp (<< 2.3)")
130+
set(CPACK_DEB_COMPONENT_INSTALL ON)
114131
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
115132
set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
116133

117134
include(CPack)
118135

136+
if(RIFFCPP_INSTALL_HEADERS)
137+
cpack_add_component(
138+
devel
139+
DISPLAY_NAME "Header files"
140+
DESCRIPTION "Required if you need to compile programs that depend on this library"
141+
DEPENDS runtime
142+
)
143+
endif()
144+
145+
if(RIFFCPP_INSTALL_LIB)
146+
cpack_add_component(
147+
runtime
148+
DISPLAY_NAME "Runtime library"
149+
REQUIRED
150+
)
151+
endif()
152+
153+
if(RIFFCPP_INSTALL_EXAMPLE)
154+
cpack_add_component(
155+
example
156+
DISPLAY_NAME "Example program"
157+
DEPENDS runtime
158+
)
159+
endif()
160+
119161
include(CTest)
120162
add_subdirectory(tests)

appveyor.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ configuration:
1313
- RelWithDebInfo
1414

1515
environment:
16+
GEMFURY_TOKEN:
17+
secure: rfQytGUfI+L49sRMSrxk7jhn9EcZZLUYXSCFrI0Asfva7Uxv3W9ORGj0SLhhTYLV
1618
matrix:
1719
- LINKING: static
1820
- LINKING: shared
@@ -40,7 +42,7 @@ for:
4042
- ctest -C $CONFIGURATION
4143

4244
after_test:
43-
- cpack -G ZIP -C $CONFIGURATION -D CPACK_PACKAGE_FILE_NAME=riffcpp-2.2.0-$CONFIGURATION-$LINKING
45+
- if [ "$LINKING" == "shared" ] && [ "$CONFIGURATION" == "Release" ]; then ../packaging/make-deb.sh ; fi
4446
-
4547
matrix:
4648
only:
@@ -60,7 +62,7 @@ for:
6062
- if %LINKING%==static (ctest -C %CONFIGURATION%)
6163

6264
after_test:
63-
- cpack -G ZIP -C %CONFIGURATION% -D CPACK_PACKAGE_FILE_NAME=riffcpp-2.2.0-%PLATFORM%-%CONFIGURATION%-%LINKING%
65+
- cpack -G ZIP -C %CONFIGURATION% -D CPACK_PACKAGE_FILE_NAME=riffcpp-2.2.2-%PLATFORM%-%CONFIGURATION%-%LINKING%
6466

6567

6668
artifacts:

packaging/make-deb.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/bin/sh
2+
3+
#
4+
# Generates DEB packages and uploads them to GemFury
5+
#
6+
7+
cpack -G DEB || exit $?
8+
9+
if [ "$APPVEYOR_REPO_TAG" = "true" ]; then
10+
for pkg in ./*.deb; do
11+
filename="$(basename "$pkg")"
12+
curl -F package=@$filename https://$GEMFURY_TOKEN@push.fury.io/frabert/ || exit $?
13+
done
14+
fi

0 commit comments

Comments
 (0)