diff --git a/CMakeLists.txt b/CMakeLists.txt index 608a644..53d444f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,19 @@ +# docpp CMakeLists.txt 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) endif() @@ -51,35 +62,44 @@ install(FILES "${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" DESTINATION lib/cmake/${PROJECT_NAME}) -if (NOT ENABLE_TESTS) - return() +if (NOT WIN32 AND NOT APPLE) + 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() -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 - tests/test.cpp -) + add_executable(${PROJECT_NAME}_test + tests/test.cpp + ) -target_include_directories(${PROJECT_NAME}_test PRIVATE - "${PROJECT_SOURCE_DIR}" -) + target_include_directories(${PROJECT_NAME}_test PRIVATE + "${PROJECT_SOURCE_DIR}" + ) -target_link_libraries(${PROJECT_NAME}_test PRIVATE - Catch2::Catch2WithMain -) + target_link_libraries(${PROJECT_NAME}_test PRIVATE + Catch2::Catch2WithMain + ) -include(CTest) -include(Catch) -catch_discover_tests(${PROJECT_NAME}_test) + include(CTest) + include(Catch) + catch_discover_tests(${PROJECT_NAME}_test) -add_custom_command( - TARGET ${PROJECT_NAME}_test - COMMENT "Run tests" - POST_BUILD - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure --rerun-failed -C - $ -R "^${PROJECT_NAME}_test$" -) + add_custom_command( + TARGET ${PROJECT_NAME}_test + COMMENT "Run tests" + POST_BUILD + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure --rerun-failed -C + $ -R "^${PROJECT_NAME}_test$" + ) +endif() diff --git a/README.md b/README.md index 1b9a41a..8168489 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ To install the library, you can utilize the provided CMakeLists.txt file: ```sh mkdir build cd build -cmake .. +cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr cmake --build . cmake --install . --prefix /usr ``` diff --git a/cmake/docpp.pc.in b/cmake/docpp.pc.in new file mode 100644 index 0000000..c8e1167 --- /dev/null +++ b/cmake/docpp.pc.in @@ -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}