diff options
Diffstat (limited to 'vcpkg/ports/spdlog')
| -rw-r--r-- | vcpkg/ports/spdlog/portfile.cmake | 70 | ||||
| -rw-r--r-- | vcpkg/ports/spdlog/usage | 8 | ||||
| -rw-r--r-- | vcpkg/ports/spdlog/vcpkg.json | 30 |
3 files changed, 108 insertions, 0 deletions
diff --git a/vcpkg/ports/spdlog/portfile.cmake b/vcpkg/ports/spdlog/portfile.cmake new file mode 100644 index 0000000..da35c32 --- /dev/null +++ b/vcpkg/ports/spdlog/portfile.cmake @@ -0,0 +1,70 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO gabime/spdlog + REF "v${VERSION}" + SHA512 3c330162201fb405a08040327e08bc3f90336f431b8865d250e1cf171e48eb8a07a0245a8f60118022869de1ee38209b14da76bf6bcc2ec3da60f1853adaf958 + HEAD_REF v1.x +) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + benchmark SPDLOG_BUILD_BENCH + wchar SPDLOG_WCHAR_SUPPORT +) + +# SPDLOG_WCHAR_FILENAMES can only be configured in triplet file since it is an alternative (not additive) +if(NOT DEFINED SPDLOG_WCHAR_FILENAMES) + set(SPDLOG_WCHAR_FILENAMES OFF) +endif() +if(NOT VCPKG_TARGET_IS_WINDOWS AND SPDLOG_WCHAR_FILENAMES) + message(FATAL_ERROR "Build option 'SPDLOG_WCHAR_FILENAMES' is for Windows.") +endif() + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SPDLOG_BUILD_SHARED) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + ${FEATURE_OPTIONS} + -DSPDLOG_FMT_EXTERNAL=ON + -DSPDLOG_INSTALL=ON + -DSPDLOG_BUILD_SHARED=${SPDLOG_BUILD_SHARED} + -DSPDLOG_WCHAR_FILENAMES=${SPDLOG_WCHAR_FILENAMES} + -DSPDLOG_BUILD_EXAMPLE=OFF +) + +vcpkg_cmake_install() +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/spdlog) +vcpkg_fixup_pkgconfig() +vcpkg_copy_pdbs() + +if(NOT VCPKG_BUILD_TYPE) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/spdlog.pc" " -lspdlog" " -lspdlogd") +endif() + +# add support for integration other than cmake +vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/spdlog/tweakme.h + "// #define SPDLOG_FMT_EXTERNAL" + "#ifndef SPDLOG_FMT_EXTERNAL\n#define SPDLOG_FMT_EXTERNAL\n#endif" +) +if(SPDLOG_WCHAR_SUPPORT) + vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/spdlog/tweakme.h + "// #define SPDLOG_WCHAR_TO_UTF8_SUPPORT" + "#ifndef SPDLOG_WCHAR_TO_UTF8_SUPPORT\n#define SPDLOG_WCHAR_TO_UTF8_SUPPORT\n#endif" + ) +endif() +if(SPDLOG_WCHAR_FILENAMES) + vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/spdlog/tweakme.h + "// #define SPDLOG_WCHAR_FILENAMES" + "#ifndef SPDLOG_WCHAR_FILENAMES\n#define SPDLOG_WCHAR_FILENAMES\n#endif" + ) +endif() + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/include/spdlog/fmt/bundled" + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/debug/share" +) + +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/vcpkg/ports/spdlog/usage b/vcpkg/ports/spdlog/usage new file mode 100644 index 0000000..d0ce655 --- /dev/null +++ b/vcpkg/ports/spdlog/usage @@ -0,0 +1,8 @@ +The package spdlog provides CMake targets: + + find_package(spdlog CONFIG REQUIRED) + target_link_libraries(main PRIVATE spdlog::spdlog) + + # Or use the header-only version + find_package(spdlog CONFIG REQUIRED) + target_link_libraries(main PRIVATE spdlog::spdlog_header_only) diff --git a/vcpkg/ports/spdlog/vcpkg.json b/vcpkg/ports/spdlog/vcpkg.json new file mode 100644 index 0000000..1e9c56d --- /dev/null +++ b/vcpkg/ports/spdlog/vcpkg.json @@ -0,0 +1,30 @@ +{ + "name": "spdlog", + "version-semver": "1.16.0", + "description": "Very fast, header-only/compiled, C++ logging library.", + "homepage": "https://github.com/gabime/spdlog", + "license": "MIT", + "dependencies": [ + "fmt", + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "benchmark": { + "description": "Use google benchmark", + "dependencies": [ + "benchmark" + ] + }, + "wchar": { + "description": "Build with wchar_t (Windows only)", + "supports": "windows" + } + } +} |