aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/libharu
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/libharu')
-rw-r--r--vcpkg/ports/libharu/export-targets.patch32
-rw-r--r--vcpkg/ports/libharu/fix-include-path.patch13
-rw-r--r--vcpkg/ports/libharu/portfile.cmake65
-rw-r--r--vcpkg/ports/libharu/usage4
-rw-r--r--vcpkg/ports/libharu/vcpkg.json20
5 files changed, 134 insertions, 0 deletions
diff --git a/vcpkg/ports/libharu/export-targets.patch b/vcpkg/ports/libharu/export-targets.patch
new file mode 100644
index 0000000..fab3e5b
--- /dev/null
+++ b/vcpkg/ports/libharu/export-targets.patch
@@ -0,0 +1,32 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index b87af66..10ec58f 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -87,9 +87,26 @@ if(UNIX AND NOT APPLE)
+ target_link_libraries (hpdf ${M_LIB})
+ endif()
+
++if(LIBHPDF_SHARED)
++ if(WIN32 AND NOT CYGWIN)
++ set_target_properties(hpdf PROPERTIES DEFINE_SYMBOL HPDF_DLL_MAKE)
++ endif()
++endif()
++
++target_include_directories(hpdf PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>)
++
++add_library(haru INTERFACE)
++set_property(TARGET haru APPEND PROPERTY INTERFACE_LINK_LIBRARIES hpdf)
++
+ install(
+- TARGETS hpdf
++ TARGETS hpdf haru
++ EXPORT unofficial-libharu-config
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ )
++
++install(EXPORT unofficial-libharu-config
++ NAMESPACE unofficial::libharu::
++ DESTINATION share/unofficial-libharu
++)
diff --git a/vcpkg/ports/libharu/fix-include-path.patch b/vcpkg/ports/libharu/fix-include-path.patch
new file mode 100644
index 0000000..8565594
--- /dev/null
+++ b/vcpkg/ports/libharu/fix-include-path.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1c75e5a..9a6c575 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -148,7 +148,7 @@ set(
+ )
+
+ # install header files
+-install(FILES ${haru_HDRS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
++install(FILES ${haru_HDRS} DESTINATION include/)
+
+ # install various files
+ install(FILES README.md CHANGES INSTALL DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/libharu)
diff --git a/vcpkg/ports/libharu/portfile.cmake b/vcpkg/ports/libharu/portfile.cmake
new file mode 100644
index 0000000..1286df4
--- /dev/null
+++ b/vcpkg/ports/libharu/portfile.cmake
@@ -0,0 +1,65 @@
+vcpkg_minimum_required(VERSION 2022-10-12) # for ${VERSION}
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO libharu/libharu
+ REF v${VERSION}
+ SHA512 422210b09f89643cb25808559aeea109db5cce8a71c779d51f87222cdd50434f4f0f92322ebe429fca8f85ad73592bcabb14c3e36cd0bea19b6ec4c729220522
+ HEAD_REF master
+ PATCHES
+ fix-include-path.patch
+ export-targets.patch
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ set(VCPKG_BUILD_SHARED_LIBS ON)
+ set(VCPKG_BUILD_STATIC_LIBS OFF)
+else()
+ set(VCPKG_BUILD_SHARED_LIBS OFF)
+ set(VCPKG_BUILD_STATIC_LIBS ON)
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ -DLIBHPDF_STATIC=${VCPKG_BUILD_STATIC_LIBS}
+ -DLIBHPDF_SHARED=${VCPKG_BUILD_SHARED_LIBS}
+)
+
+vcpkg_cmake_install()
+
+vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-libharu)
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/README.md"
+ "${CURRENT_PACKAGES_DIR}/debug/CHANGES"
+ "${CURRENT_PACKAGES_DIR}/debug/INSTALL"
+ "${CURRENT_PACKAGES_DIR}/README.md"
+ "${CURRENT_PACKAGES_DIR}/CHANGES"
+ "${CURRENT_PACKAGES_DIR}/INSTALL"
+)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
+
+if(VCPKG_TARGET_IS_WINDOWS)
+ file(READ "${CURRENT_PACKAGES_DIR}/include/hpdf.h" _contents)
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ string(REPLACE "#ifdef HPDF_DLL\n" "#if 1\n" _contents "${_contents}")
+ else()
+ string(REPLACE "#ifdef HPDF_DLL\n" "#if 0\n" _contents "${_contents}")
+ endif()
+ file(WRITE "${CURRENT_PACKAGES_DIR}/include/hpdf.h" "${_contents}")
+
+ file(READ "${CURRENT_PACKAGES_DIR}/include/hpdf_types.h" _contents)
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ string(REPLACE "#ifdef HPDF_DLL\n" "#if 1\n" _contents "${_contents}")
+ else()
+ string(REPLACE "#ifdef HPDF_DLL\n" "#if 0\n" _contents "${_contents}")
+ endif()
+ file(WRITE "${CURRENT_PACKAGES_DIR}/include/hpdf_types.h" "${_contents}")
+endif()
+
+vcpkg_copy_pdbs()
+file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
diff --git a/vcpkg/ports/libharu/usage b/vcpkg/ports/libharu/usage
new file mode 100644
index 0000000..b018352
--- /dev/null
+++ b/vcpkg/ports/libharu/usage
@@ -0,0 +1,4 @@
+libharu provides CMake targets:
+
+ find_package(unofficial-libharu CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE unofficial::libharu::hpdf)
diff --git a/vcpkg/ports/libharu/vcpkg.json b/vcpkg/ports/libharu/vcpkg.json
new file mode 100644
index 0000000..de62c89
--- /dev/null
+++ b/vcpkg/ports/libharu/vcpkg.json
@@ -0,0 +1,20 @@
+{
+ "name": "libharu",
+ "version": "2.4.4",
+ "port-version": 1,
+ "description": "libharu - free PDF library",
+ "homepage": "https://github.com/libharu/libharu",
+ "license": "Zlib",
+ "dependencies": [
+ "libpng",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ },
+ "zlib"
+ ]
+}