Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 21 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ set(CMAKE_CXX_STANDARD 11)
option(RC_ENABLE_TESTS "Build RapidCheck tests" OFF)
option(RC_ENABLE_EXAMPLES "Build RapidCheck examples" OFF)
option(RC_ENABLE_RTTI "Build RapidCheck with RTTI" ON)
option(RC_ENABLE_INSTALL "Install rapidcheck" ON)

if(MSVC)
# /bigobj - some object files become very large so we need this
Expand Down Expand Up @@ -86,13 +87,16 @@ target_include_directories(rapidcheck PUBLIC
$<INSTALL_INTERFACE:include> # <prefix>/include
)

include(GNUInstallDirs)
install(TARGETS rapidcheck EXPORT rapidcheckConfig
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} # This is for Windows
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if(RC_ENABLE_INSTALL)
include(GNUInstallDirs)
install(TARGETS rapidcheck EXPORT rapidcheckConfig
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} # This is for Windows
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
COMPONENT ${PROJECT_NAME}
)
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT ${PROJECT_NAME})
endif()

# On Windows under MinGW, random_device provides no entropy,
# so it will always return the same value.
Expand Down Expand Up @@ -120,8 +124,10 @@ endif()
add_subdirectory(extras)

# Install the export file specifying all the targets for RapidCheck
install(EXPORT rapidcheckConfig DESTINATION share/rapidcheck/cmake)
export(EXPORT rapidcheckConfig FILE rapidcheckConfig.cmake)
if(RC_ENABLE_INSTALL)
install(EXPORT rapidcheckConfig DESTINATION share/rapidcheck/cmake COMPONENT ${PROJECT_NAME})
export(EXPORT rapidcheckConfig FILE rapidcheckConfig.cmake)
endif()

set(PKG_CONFIG_REQUIRES)
set(PKG_CONFIG_DESCRIPTION_SUMMARY "C++ framework for property based testing inspired by QuickCheck and other similar frameworks")
Expand All @@ -136,6 +142,9 @@ configure_file(
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
)

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
)
if(RC_ENABLE_INSTALL)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
COMPONENT ${PROJECT_NAME}
)
endif()
15 changes: 10 additions & 5 deletions extras/boost/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ target_include_directories(rapidcheck_boost INTERFACE

# An INTERFACE library does not need to install anything but its headers
# and information on its targets.
install(TARGETS rapidcheck_boost EXPORT rapidcheckConfig)
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if(RC_ENABLE_INSTALL)
install(TARGETS rapidcheck_boost EXPORT rapidcheckConfig COMPONENT ${PROJECT_NAME})
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT ${PROJECT_NAME})
endif()

if (RC_ENABLE_TESTS)
add_subdirectory(test)
Expand All @@ -29,6 +31,9 @@ configure_file(
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
)

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
)
if(RC_ENABLE_INSTALL)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
COMPONENT ${PROJECT_NAME}
)
endif()
7 changes: 5 additions & 2 deletions extras/boost_test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ target_include_directories(rapidcheck_boost_test INTERFACE

# An INTERFACE library does not need to install anything but its headers
# and information on its targets.
install(TARGETS rapidcheck_boost_test EXPORT rapidcheckConfig)
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if(RC_ENABLE_INSTALL)
install(TARGETS rapidcheck_boost_test EXPORT rapidcheckConfig COMPONENT ${PROJECT_NAME})
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT ${PROJECT_NAME})
endif()

set(PKG_CONFIG_REQUIRES "rapidcheck")
set(PKG_CONFIG_DESCRIPTION_SUMMARY "boost_test headers for rapidcheck")
Expand All @@ -27,4 +29,5 @@ configure_file(

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
COMPONENT ${PROJECT_NAME}
)
15 changes: 10 additions & 5 deletions extras/catch/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ target_include_directories(rapidcheck_catch INTERFACE

# An INTERFACE library does not need to install anything but its headers
# and information on its targets.
install(TARGETS rapidcheck_catch EXPORT rapidcheckConfig)
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if(RC_ENABLE_INSTALL)
install(TARGETS rapidcheck_catch EXPORT rapidcheckConfig COMPONENT ${PROJECT_NAME})
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT ${PROJECT_NAME})
endif()

set(PKG_CONFIG_REQUIRES "rapidcheck")
set(PKG_CONFIG_DESCRIPTION_SUMMARY "catch headers for rapidcheck")
Expand All @@ -25,6 +27,9 @@ configure_file(
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
)

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
)
if(RC_ENABLE_INSTALL)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
COMPONENT ${PROJECT_NAME}
)
endif()
15 changes: 10 additions & 5 deletions extras/doctest/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ target_include_directories(rapidcheck_doctest INTERFACE

# An INTERFACE library does not need to install anything but its headers
# and information on its targets.
install(TARGETS rapidcheck_doctest EXPORT rapidcheckConfig)
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if(RC_ENABLE_INSTALL)
install(TARGETS rapidcheck_doctest EXPORT rapidcheckConfig COMPONENT ${PROJECT_NAME})
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT ${PROJECT_NAME})
endif()

set(PKG_CONFIG_REQUIRES "rapidcheck")
set(PKG_CONFIG_DESCRIPTION_SUMMARY "doctest headers for rapidcheck")
Expand All @@ -25,6 +27,9 @@ configure_file(
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
)

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
)
if(RC_ENABLE_INSTALL)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
COMPONENT ${PROJECT_NAME}
)
endif()
15 changes: 10 additions & 5 deletions extras/gmock/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ target_include_directories(rapidcheck_gmock INTERFACE

# An INTERFACE library does not need to install anything but its headers
# and information on its targets.
install(TARGETS rapidcheck_gmock EXPORT rapidcheckConfig)
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if(RC_ENABLE_INSTALL)
install(TARGETS rapidcheck_gmock EXPORT rapidcheckConfig COMPONENT ${PROJECT_NAME})
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT ${PROJECT_NAME})
endif()

if (RC_ENABLE_TESTS)
add_subdirectory(test)
Expand All @@ -29,6 +31,9 @@ configure_file(
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
)

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
)
if(RC_ENABLE_INSTALL)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
COMPONENT ${PROJECT_NAME}
)
endif()
15 changes: 10 additions & 5 deletions extras/gtest/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ target_include_directories(rapidcheck_gtest INTERFACE

# An INTERFACE library does not need to install anything but its headers
# and information on its targets.
install(TARGETS rapidcheck_gtest EXPORT rapidcheckConfig)
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
if(RC_ENABLE_INSTALL)
install(TARGETS rapidcheck_gtest EXPORT rapidcheckConfig COMPONENT ${PROJECT_NAME})
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT ${PROJECT_NAME})
endif()

set(PKG_CONFIG_REQUIRES "rapidcheck")
set(PKG_CONFIG_DESCRIPTION_SUMMARY "gtest headers for rapidcheck")
Expand All @@ -25,6 +27,9 @@ configure_file(
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
)

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
)
if(RC_ENABLE_INSTALL)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc"
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
COMPONENT ${PROJECT_NAME}
)
endif()