Add docpp.pc file, allowing pkg-config to find docpp.
This commit is contained in:
parent
8ba0aff55c
commit
b44a934d20
|
@ -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()
|
||||||
|
|
|
@ -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
11
cmake/docpp.pc.in
Normal 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}
|
Loading…
Reference in a new issue