Skip to content

Commit 52f31ca

Browse files
committed
Add pkg-config support
1 parent 6654244 commit 52f31ca

File tree

2 files changed

+38
-15
lines changed

2 files changed

+38
-15
lines changed

CMakeLists.txt

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,32 @@ add_executable(${PROJECT_NAME}-example example/main.cpp)
2121
target_link_libraries(${PROJECT_NAME}-example ${PROJECT_NAME})
2222
target_compile_options(${PROJECT_NAME}-example PRIVATE -Wall -Wextra -Werror)
2323

24+
set(CPACK_PACKAGE_NAME "pprintpp")
25+
set(CPACK_PACKAGE_VENDOR "galowicz.de")
26+
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Typesafe Python Style Printf Formatting for C++")
27+
set(CPACK_PACKAGE_VERSION "1.0.0")
28+
set(CPACK_PACKAGE_VERSION_MAJOR "1")
29+
set(CPACK_PACKAGE_VERSION_MINOR "0")
30+
set(CPACK_PACKAGE_VERSION_PATCH "0")
31+
set(CPACK_PACKAGE_INSTALL_DIRECTORY "pprintpp")
32+
set(CPACK_PACKAGE_CONTACT "Jacek Galowicz <[email protected]>")
33+
34+
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
35+
set(CPACK_SET_DESTDIR true)
36+
37+
set(PKG_CONFIG_REQUIRES)
38+
set(PKG_CONFIG_LIBDIR "\${prefix}/lib")
39+
set(PKG_CONFIG_INCLUDEDIR "\${prefix}/include")
40+
set(PKG_CONFIG_LIBS)
41+
set(PKG_CONFIG_CFLAGS "-I\${includedir}")
42+
43+
configure_file(
44+
"${CMAKE_CURRENT_SOURCE_DIR}/pkg-config.pc.cmake"
45+
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
46+
)
47+
48+
include(CPack)
49+
2450
include(GNUInstallDirs)
2551

2652
install(
@@ -38,18 +64,6 @@ install(
3864
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/
3965
)
4066

41-
set(CPACK_PACKAGE_NAME "pprintpp")
42-
set(CPACK_PACKAGE_VENDOR "galowicz.de")
43-
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "pprintpp - Typesafe Python Style Printf Formatting for C++")
44-
set(CPACK_PACKAGE_VERSION "1.0.0")
45-
set(CPACK_PACKAGE_VERSION_MAJOR "1")
46-
set(CPACK_PACKAGE_VERSION_MINOR "0")
47-
set(CPACK_PACKAGE_VERSION_PATCH "0")
48-
set(CPACK_PACKAGE_INSTALL_DIRECTORY "pprintpp")
49-
set(CPACK_PACKAGE_CONTACT "Jacek Galowicz <[email protected]>")
50-
51-
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64")
52-
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST /usr/lib64/)
53-
54-
include(CPack)
55-
67+
INSTALL(FILES "${CMAKE_BINARY_DIR}/${PROJECT_NAME}.pc"
68+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
69+
)

pkg-config.pc.cmake

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Name: ${PROJECT_NAME}
2+
Description: ${CPACK_PACKAGE_DESCRIPTION_SUMMARY}
3+
Version: ${CPACK_PACKAGE_VERSION}
4+
Requires: ${PKG_CONFIG_REQUIRES}
5+
prefix=${CMAKE_INSTALL_PREFIX}
6+
includedir=${PKG_CONFIG_INCLUDEDIR}
7+
libdir=${PKG_CONFIG_LIBDIR}
8+
Libs: ${PKG_CONFIG_LIBS}
9+
Cflags: ${PKG_CONFIG_CFLAGS}

0 commit comments

Comments
 (0)