aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/cmark/CONTROL3
-rw-r--r--ports/cmark/portfile.cmake40
2 files changed, 43 insertions, 0 deletions
diff --git a/ports/cmark/CONTROL b/ports/cmark/CONTROL
new file mode 100644
index 000000000..4211c9bbc
--- /dev/null
+++ b/ports/cmark/CONTROL
@@ -0,0 +1,3 @@
+Source: cmark
+Version: 0.28.3-1
+Description: CommonMark parsing and rendering library
diff --git a/ports/cmark/portfile.cmake b/ports/cmark/portfile.cmake
new file mode 100644
index 000000000..b452a4488
--- /dev/null
+++ b/ports/cmark/portfile.cmake
@@ -0,0 +1,40 @@
+include(vcpkg_common_functions)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ # Note: fails due to missing cmark_export.h -- fix should be to always generate the correct export header.
+ message(FATAL_ERROR "cmark does not currently support static library linkage")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO commonmark/cmark
+ REF 0.28.3
+ SHA512 409105a3228a8ae22ba6acf95cd99bc9a2c20f8603aa0e803a33172eb6ef53f80f8f0262d2258b77f9fd6e1f2e9017a6c906b88f761e053c09ef88c9ffab7d29
+ HEAD_REF master
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" CMARK_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" CMARK_SHARED)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DCMARK_TESTS=OFF
+ -DCMARK_SHARED=${CMARK_SHARED}
+ -DCMARK_STATIC=${CMARK_STATIC}
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake)
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/cmark RENAME copyright)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+else()
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/cmark.exe ${CURRENT_PACKAGES_DIR}/debug/bin/cmark.exe)
+endif()