diff options
Diffstat (limited to 'vcpkg-ports/spdlog')
| -rw-r--r-- | vcpkg-ports/spdlog/portfile.cmake | 70 | ||||
| -rw-r--r-- | vcpkg-ports/spdlog/vcpkg.json | 30 |
2 files changed, 100 insertions, 0 deletions
diff --git a/vcpkg-ports/spdlog/portfile.cmake b/vcpkg-ports/spdlog/portfile.cmake new file mode 100644 index 00000000..e460dc0a --- /dev/null +++ b/vcpkg-ports/spdlog/portfile.cmake @@ -0,0 +1,70 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO gabime/spdlog + REF v1.10.0 + SHA512 e82ec0a0c813ed2f1c8a31a0f21dbb733d0a7bd8d05284feae3bd66040bc53ad47a93b26c3e389c7e5623cfdeba1854d690992c842748e072aab3e6e6ecc5666 + 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) + if("wchar" IN_LIST FEATURES) + message(WARNING "Feature 'wchar' is only supported for Windows and has no effect on other platforms.") + elseif(SPDLOG_WCHAR_FILENAMES) + message(FATAL_ERROR "Build option 'SPDLOG_WCHAR_FILENAMES' is for Windows.") + endif() +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() + +# use vcpkg-provided fmt library (see also option SPDLOG_FMT_EXTERNAL above) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/spdlog/fmt/bundled) + +# 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}/debug/include + ${CURRENT_PACKAGES_DIR}/debug/share) + +# Handle copyright +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/vcpkg-ports/spdlog/vcpkg.json b/vcpkg-ports/spdlog/vcpkg.json new file mode 100644 index 00000000..88c83416 --- /dev/null +++ b/vcpkg-ports/spdlog/vcpkg.json @@ -0,0 +1,30 @@ +{ + "name": "spdlog", + "version-semver": "1.10.0", + "port-version": 1, + "description": "Very fast, header only, 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)" + } + } +} |
