Skip to content

Commit 41749e8

Browse files
committed
Add pkg-config support
1 parent 1c91f40 commit 41749e8

File tree

8 files changed

+141
-1
lines changed

8 files changed

+141
-1
lines changed

CMakeLists.txt

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.0)
1+
cmake_minimum_required(VERSION 3.16)
22
project(rapidcheck CXX)
33

44
# Don't warn about symbol visibility for static libraries with CMake 3.3 and later.
@@ -122,3 +122,20 @@ add_subdirectory(extras)
122122
# Install the export file specifying all the targets for RapidCheck
123123
install(EXPORT rapidcheckConfig DESTINATION share/rapidcheck/cmake)
124124
export(EXPORT rapidcheckConfig FILE rapidcheckConfig.cmake)
125+
126+
set(PKG_CONFIG_REQUIRES)
127+
set(PKG_CONFIG_DESCRIPTION_SUMMARY "C++ framework for property based testing inspired by QuickCheck and other similar frameworks")
128+
set(PKG_CONFIG_VERSION)
129+
set(PKG_CONFIG_LIBDIR "\${prefix}/lib")
130+
set(PKG_CONFIG_INCLUDEDIR "\${prefix}/include")
131+
set(PKG_CONFIG_LIBS)
132+
set(PKG_CONFIG_CFLAGS "-I\${includedir}")
133+
134+
configure_file(
135+
"${CMAKE_CURRENT_SOURCE_DIR}/pkg-config.pc.cmake"
136+
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
137+
)
138+
139+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
140+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
141+
)

extras/boost/CMakeLists.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
project(rapidcheck_boost CXX)
2+
13
add_library(rapidcheck_boost INTERFACE)
24
target_link_libraries(rapidcheck_boost INTERFACE rapidcheck)
35
target_include_directories(rapidcheck_boost INTERFACE
@@ -13,3 +15,20 @@ install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
1315
if (RC_ENABLE_TESTS)
1416
add_subdirectory(test)
1517
endif()
18+
19+
set(PKG_CONFIG_REQUIRES "rapidcheck")
20+
set(PKG_CONFIG_DESCRIPTION_SUMMARY "boost headers for rapidcheck")
21+
set(PKG_CONFIG_VERSION)
22+
set(PKG_CONFIG_LIBDIR "\${prefix}/lib")
23+
set(PKG_CONFIG_INCLUDEDIR "\${prefix}/include")
24+
set(PKG_CONFIG_LIBS)
25+
set(PKG_CONFIG_CFLAGS "-I\${includedir}")
26+
27+
configure_file(
28+
"${CMAKE_CURRENT_SOURCE_DIR}/../../pkg-config.pc.cmake"
29+
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
30+
)
31+
32+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
33+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
34+
)

extras/boost_test/CMakeLists.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
project(rapidcheck_boost_test CXX)
2+
13
add_library(rapidcheck_boost_test INTERFACE)
24
target_link_libraries(rapidcheck_boost_test INTERFACE rapidcheck)
35
target_include_directories(rapidcheck_boost_test INTERFACE
@@ -9,3 +11,20 @@ target_include_directories(rapidcheck_boost_test INTERFACE
911
# and information on its targets.
1012
install(TARGETS rapidcheck_boost_test EXPORT rapidcheckConfig)
1113
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
14+
15+
set(PKG_CONFIG_REQUIRES "rapidcheck")
16+
set(PKG_CONFIG_DESCRIPTION_SUMMARY "boost_test headers for rapidcheck")
17+
set(PKG_CONFIG_VERSION)
18+
set(PKG_CONFIG_LIBDIR "\${prefix}/lib")
19+
set(PKG_CONFIG_INCLUDEDIR "\${prefix}/include")
20+
set(PKG_CONFIG_LIBS)
21+
set(PKG_CONFIG_CFLAGS "-I\${includedir}")
22+
23+
configure_file(
24+
"${CMAKE_CURRENT_SOURCE_DIR}/../../pkg-config.pc.cmake"
25+
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
26+
)
27+
28+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
29+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
30+
)

extras/catch/CMakeLists.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
project(rapidcheck_catch CXX)
2+
13
add_library(rapidcheck_catch INTERFACE)
24
target_link_libraries(rapidcheck_catch INTERFACE rapidcheck)
35
target_include_directories(rapidcheck_catch INTERFACE
@@ -9,3 +11,20 @@ target_include_directories(rapidcheck_catch INTERFACE
911
# and information on its targets.
1012
install(TARGETS rapidcheck_catch EXPORT rapidcheckConfig)
1113
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
14+
15+
set(PKG_CONFIG_REQUIRES "rapidcheck")
16+
set(PKG_CONFIG_DESCRIPTION_SUMMARY "catch headers for rapidcheck")
17+
set(PKG_CONFIG_VERSION)
18+
set(PKG_CONFIG_LIBDIR "\${prefix}/lib")
19+
set(PKG_CONFIG_INCLUDEDIR "\${prefix}/include")
20+
set(PKG_CONFIG_LIBS)
21+
set(PKG_CONFIG_CFLAGS "-I\${includedir}")
22+
23+
configure_file(
24+
"${CMAKE_CURRENT_SOURCE_DIR}/../../pkg-config.pc.cmake"
25+
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
26+
)
27+
28+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
29+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
30+
)

extras/doctest/CMakeLists.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
project(rapidcheck_doctest CXX)
2+
13
add_library(rapidcheck_doctest INTERFACE)
24
target_link_libraries(rapidcheck_doctest INTERFACE rapidcheck)
35
target_include_directories(rapidcheck_doctest INTERFACE
@@ -9,3 +11,20 @@ target_include_directories(rapidcheck_doctest INTERFACE
911
# and information on its targets.
1012
install(TARGETS rapidcheck_doctest EXPORT rapidcheckConfig)
1113
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
14+
15+
set(PKG_CONFIG_REQUIRES "rapidcheck")
16+
set(PKG_CONFIG_DESCRIPTION_SUMMARY "doctest headers for rapidcheck")
17+
set(PKG_CONFIG_VERSION)
18+
set(PKG_CONFIG_LIBDIR "\${prefix}/lib")
19+
set(PKG_CONFIG_INCLUDEDIR "\${prefix}/include")
20+
set(PKG_CONFIG_LIBS)
21+
set(PKG_CONFIG_CFLAGS "-I\${includedir}")
22+
23+
configure_file(
24+
"${CMAKE_CURRENT_SOURCE_DIR}/../../pkg-config.pc.cmake"
25+
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
26+
)
27+
28+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
29+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
30+
)

extras/gmock/CMakeLists.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
project(rapidcheck_gtest CXX)
2+
13
add_library(rapidcheck_gmock INTERFACE)
24
target_link_libraries(rapidcheck_gmock INTERFACE rapidcheck)
35
target_include_directories(rapidcheck_gmock INTERFACE
@@ -13,3 +15,20 @@ install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
1315
if (RC_ENABLE_TESTS)
1416
add_subdirectory(test)
1517
endif()
18+
19+
set(PKG_CONFIG_REQUIRES "rapidcheck")
20+
set(PKG_CONFIG_DESCRIPTION_SUMMARY "gmock headers for rapidcheck")
21+
set(PKG_CONFIG_VERSION)
22+
set(PKG_CONFIG_LIBDIR "\${prefix}/lib")
23+
set(PKG_CONFIG_INCLUDEDIR "\${prefix}/include")
24+
set(PKG_CONFIG_LIBS)
25+
set(PKG_CONFIG_CFLAGS "-I\${includedir}")
26+
27+
configure_file(
28+
"${CMAKE_CURRENT_SOURCE_DIR}/../../pkg-config.pc.cmake"
29+
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
30+
)
31+
32+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
33+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
34+
)

extras/gtest/CMakeLists.txt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
project(rapidcheck_gtest CXX)
2+
13
add_library(rapidcheck_gtest INTERFACE)
24
target_link_libraries(rapidcheck_gtest INTERFACE rapidcheck)
35
target_include_directories(rapidcheck_gtest INTERFACE
@@ -9,3 +11,20 @@ target_include_directories(rapidcheck_gtest INTERFACE
911
# and information on its targets.
1012
install(TARGETS rapidcheck_gtest EXPORT rapidcheckConfig)
1113
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
14+
15+
set(PKG_CONFIG_REQUIRES "rapidcheck")
16+
set(PKG_CONFIG_DESCRIPTION_SUMMARY "gtest headers for rapidcheck")
17+
set(PKG_CONFIG_VERSION)
18+
set(PKG_CONFIG_LIBDIR "\${prefix}/lib")
19+
set(PKG_CONFIG_INCLUDEDIR "\${prefix}/include")
20+
set(PKG_CONFIG_LIBS)
21+
set(PKG_CONFIG_CFLAGS "-I\${includedir}")
22+
23+
configure_file(
24+
"${CMAKE_CURRENT_SOURCE_DIR}/../../pkg-config.pc.cmake"
25+
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
26+
)
27+
28+
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
29+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
30+
)

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: ${PKG_CONFIG_DESCRIPTION_SUMMARY}
3+
Version: ${PKG_CONFIG_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)