diff options
| author | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-10-16 00:53:28 +0200 |
|---|---|---|
| committer | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-10-16 01:22:12 +0200 |
| commit | 280d400877c8c4c3d14a68f3ffe28b6d7a1b99bf (patch) | |
| tree | 6a26dcaa29e759f387c520ee65b0ceb885700339 | |
| parent | 584de479cb87e3c63f00e6148aa4c623c3c4b0fd (diff) | |
CMake: Use in-tree dynstr if not availablev0.1.0-rc4
| -rw-r--r-- | CMakeLists.txt | 9 | ||||
| -rw-r--r-- | cmake/Finddynstr.cmake | 15 |
2 files changed, 23 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a8bf44..c89fa03 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,14 @@ add_library(${PROJECT_NAME} http.c server.c wildcard_cmp.c) -add_subdirectory(dynstr) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_LIST_DIR}/cmake) +find_package(dynstr 0.1.0) + +if(NOT DYNSTR_FOUND) + message(STATUS "Using in-tree dynstr") + add_subdirectory(dynstr) +endif() + target_include_directories(${PROJECT_NAME} PUBLIC include) target_link_libraries(${PROJECT_NAME} PUBLIC dynstr) install(TARGETS ${PROJECT_NAME}) diff --git a/cmake/Finddynstr.cmake b/cmake/Finddynstr.cmake new file mode 100644 index 0000000..8d785b2 --- /dev/null +++ b/cmake/Finddynstr.cmake @@ -0,0 +1,15 @@ +mark_as_advanced(DYNSTR_LIBRARY DYNSTR_INCLUDE_DIR) +find_library(DYNSTR_LIBRARY NAMES dynstr) +find_path(DYNSTR_INCLUDE_DIR NAMES dynstr PATH_SUFFIXES include) +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(dynstr + DEFAULT_MSG DYNSTR_LIBRARY DYNSTR_INCLUDE_DIR) + +if(DYNSTR_FOUND) + if(NOT TARGET dynstr) + add_library(dynstr UNKNOWN IMPORTED) + set_target_properties(dynstr PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${DYNSTR_INCLUDE_DIR}" + IMPORTED_LOCATION "${DYNSTR_LIBRARY}") + endif() +endif() |
