diff options
Diffstat (limited to 'vcpkg-ports/spdlog/portfile.cmake')
| -rw-r--r-- | vcpkg-ports/spdlog/portfile.cmake | 70 |
1 files changed, 70 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) |
