Add docpp.pc file, allowing pkg-config to find docpp.

This commit is contained in:
Jacob 2024-05-13 02:00:40 +02:00
parent 8ba0aff55c
commit b44a934d20
3 changed files with 58 additions and 27 deletions

View file

@ -1,8 +1,19 @@
# docpp CMakeLists.txt
cmake_minimum_required(VERSION 3.1...3.29) cmake_minimum_required(VERSION 3.1...3.29)
project(docpp LANGUAGES CXX VERSION 0.0.1) project(
docpp
VERSION 0.0.1
DESCRIPTION "Simple C++ library for generating XML, HTML and CSS."
HOMEPAGE_URL "https://speedie.site/docpp"
LANGUAGES CXX
)
if (MSVC) if (NOT DEFINED CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug)
endif()
if (MSVC AND CMAKE_BUILD_TYPE STREQUAL "Debug")
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif() endif()
@ -51,35 +62,44 @@ install(FILES "${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
DESTINATION lib/cmake/${PROJECT_NAME}) DESTINATION lib/cmake/${PROJECT_NAME})
if (NOT ENABLE_TESTS) if (NOT WIN32 AND NOT APPLE)
return() configure_file(${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAME}.pc.in
${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc @ONLY
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
DESTINATION lib/pkgconfig)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
DESTINATION lib64/pkgconfig)
endif() endif()
enable_testing() if (CMAKE_BUILD_TYPE STREQUAL "Debug")
enable_testing()
find_package(Catch2 3 REQUIRED) find_package(Catch2 3 REQUIRED)
add_executable(${PROJECT_NAME}_test add_executable(${PROJECT_NAME}_test
tests/test.cpp tests/test.cpp
) )
target_include_directories(${PROJECT_NAME}_test PRIVATE target_include_directories(${PROJECT_NAME}_test PRIVATE
"${PROJECT_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}"
) )
target_link_libraries(${PROJECT_NAME}_test PRIVATE target_link_libraries(${PROJECT_NAME}_test PRIVATE
Catch2::Catch2WithMain Catch2::Catch2WithMain
) )
include(CTest) include(CTest)
include(Catch) include(Catch)
catch_discover_tests(${PROJECT_NAME}_test) catch_discover_tests(${PROJECT_NAME}_test)
add_custom_command( add_custom_command(
TARGET ${PROJECT_NAME}_test TARGET ${PROJECT_NAME}_test
COMMENT "Run tests" COMMENT "Run tests"
POST_BUILD POST_BUILD
WORKING_DIRECTORY ${CMAKE_BINARY_DIR} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure --rerun-failed -C COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure --rerun-failed -C
$<CONFIGURATION> -R "^${PROJECT_NAME}_test$" $<CONFIGURATION> -R "^${PROJECT_NAME}_test$"
) )
endif()

View file

@ -24,7 +24,7 @@ To install the library, you can utilize the provided CMakeLists.txt file:
```sh ```sh
mkdir build mkdir build
cd build cd build
cmake .. cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
cmake --build . cmake --build .
cmake --install . --prefix /usr cmake --install . --prefix /usr
``` ```

11
cmake/docpp.pc.in Normal file
View file

@ -0,0 +1,11 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: @PROJECT_NAME@
Description: @PROJECT_DESCRIPTION@
Version: @PROJECT_VERSION@
Requires:
Libs: -L${libdir} -l@PROJECT_NAME@
Cflags: -I${includedir}