aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/maintainers/vcpkg_configure_cmake.md5
-rw-r--r--ports/jbig2dec/CMakeLists.txt25
-rw-r--r--ports/jbig2dec/CONTROL4
-rw-r--r--ports/jbig2dec/portfile.cmake23
-rw-r--r--ports/libmupdf/CMakeLists.txt32
-rw-r--r--ports/libmupdf/CONTROL4
-rw-r--r--ports/libmupdf/portfile.cmake21
-rw-r--r--scripts/cmake/vcpkg_configure_cmake.cmake9
8 files changed, 96 insertions, 27 deletions
diff --git a/docs/maintainers/vcpkg_configure_cmake.md b/docs/maintainers/vcpkg_configure_cmake.md
index 93f661767..200d358ae 100644
--- a/docs/maintainers/vcpkg_configure_cmake.md
+++ b/docs/maintainers/vcpkg_configure_cmake.md
@@ -21,6 +21,11 @@ Specifies the directory containing the `CMakeLists.txt`. By convention, this is
### PREFER_NINJA
Indicates that, when available, Vcpkg should use Ninja to perform the build. This should be specified unless the port is known to not work under Ninja.
+### DISABLE_PARALLEL_CONFIGURE
+Disables running the CMake configure step in parallel.
+
+This is needed for libraries which write back into their source directory during configure.
+
### GENERATOR
Specifies the precise generator to use.
diff --git a/ports/jbig2dec/CMakeLists.txt b/ports/jbig2dec/CMakeLists.txt
new file mode 100644
index 000000000..a2a8376de
--- /dev/null
+++ b/ports/jbig2dec/CMakeLists.txt
@@ -0,0 +1,25 @@
+cmake_minimum_required(VERSION 3.9)
+project(jbig2dec C)
+
+set(CMAKE_DEBUG_POSTFIX d)
+
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
+file(GLOB SOURCES jbig2*.c)
+list(REMOVE_ITEM SOURCES
+ "${CMAKE_CURRENT_SOURCE_DIR}/jbig2dec.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/jbig2_image_png.c"
+ "${CMAKE_CURRENT_SOURCE_DIR}/jbig2_image_pbm.c"
+)
+
+add_library(jbig2dec ${SOURCES})
+
+install(TARGETS jbig2dec
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+)
+
+if(NOT DISABLE_INSTALL_HEADERS)
+ install(FILES jbig2.h DESTINATION include)
+endif()
diff --git a/ports/jbig2dec/CONTROL b/ports/jbig2dec/CONTROL
new file mode 100644
index 000000000..0ff000f44
--- /dev/null
+++ b/ports/jbig2dec/CONTROL
@@ -0,0 +1,4 @@
+Source: jbig2dec
+Version: 0.13
+Description: a decoder library and example utility implementing the JBIG2 bi-level image compression spec. Also known as ITU T.88 and ISO IEC 14492, and included by reference in Adobe's PDF version 1.4 and later.
+
diff --git a/ports/jbig2dec/portfile.cmake b/ports/jbig2dec/portfile.cmake
new file mode 100644
index 000000000..90e56bd9b
--- /dev/null
+++ b/ports/jbig2dec/portfile.cmake
@@ -0,0 +1,23 @@
+include(vcpkg_common_functions)
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ArtifexSoftware/jbig2dec
+ REF 0.13
+ SHA512 11d1209810d6c80a095ec59d6af44010d4664f4ba744c0c14bdad9564359cf31dd0095b072fa63de381f2de57116e523883aa8843cc8d9baa2c3a8b9b1fc3527
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS_DEBUG
+ -DDISABLE_INSTALL_HEADERS=1
+)
+
+vcpkg_install_cmake()
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/jbig2dec RENAME copyright)
diff --git a/ports/libmupdf/CMakeLists.txt b/ports/libmupdf/CMakeLists.txt
index 827f2de5d..76ed52c5a 100644
--- a/ports/libmupdf/CMakeLists.txt
+++ b/ports/libmupdf/CMakeLists.txt
@@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.9)
project(libmupdf C)
set(CMAKE_DEBUG_POSTFIX d)
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/include/mupdf/pdf/name-table.h")
execute_process(
@@ -14,26 +15,30 @@ find_package(freetype NO_MODULE REQUIRED)
find_package(JPEG REQUIRED)
find_path(HARFBUZZ_INCLUDE hb.h PATH_SUFFIXES harfbuzz)
find_library(HARFBUZZ_LIBRARIES harfbuzz)
+find_package(ZLIB REQUIRED)
+find_package(openjpeg REQUIRED)
+find_library(JBIG2DEC_LIB NAMES jbig2decd jbig2dec)
-file(GLOB_RECURSE SOURCES "source/*.c")
+file(GLOB_RECURSE SOURCES "source/*.c" "generated/*.c")
list(FILTER SOURCES EXCLUDE REGEX "source/tools/[a-z]*\\.c$")
add_library(libmupdf ${SOURCES})
-target_compile_definitions(libmupdf PRIVATE -DZ_SOLO)
-target_include_directories(libmupdf PRIVATE
- include
- generated
- thirdparty/jbig2dec
- thirdparty/libjpeg
- thirdparty/mujs
- thirdparty/openjpeg/src/lib/openjp2
- ${JPEG_INCLUDE_DIR}
- ${HARFBUZZ_INCLUDE}
+target_compile_definitions(libmupdf PRIVATE -DSHARE_JPEG -DFZ_ENABLE_JS=0 -DNO_ICC)
+target_include_directories(libmupdf
+ PUBLIC
+ include
+ PRIVATE
+ generated
+ ${JPEG_INCLUDE_DIR}
+ ${HARFBUZZ_INCLUDE}
)
target_link_libraries(libmupdf PRIVATE
+ openjp2
freetype
${JPEG_LIBRARIES}
${HARFBUZZ_LIBRARIES}
+ ${JBIG2DEC_LIB}
+ ZLIB::ZLIB
)
install(TARGETS libmupdf
@@ -41,3 +46,8 @@ install(TARGETS libmupdf
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
+
+if(BUILD_EXAMPLES)
+ add_executable(mu-office-test source/tests/mu-office-test.c)
+ target_link_libraries(mu-office-test PRIVATE libmupdf)
+endif() \ No newline at end of file
diff --git a/ports/libmupdf/CONTROL b/ports/libmupdf/CONTROL
index ed61402d7..36ae69488 100644
--- a/ports/libmupdf/CONTROL
+++ b/ports/libmupdf/CONTROL
@@ -1,4 +1,4 @@
Source: libmupdf
-Version: 1.11-1
-Build-Depends: freetype, libjpeg-turbo, harfbuzz, zlib, curl, glfw3
+Version: 1.12.0
+Build-Depends: freetype, libjpeg-turbo, harfbuzz, zlib, curl, glfw3, openjpeg, jbig2dec
Description: a lightweight PDF, XPS, and E-book library
diff --git a/ports/libmupdf/portfile.cmake b/ports/libmupdf/portfile.cmake
index df4997a70..b3618ea80 100644
--- a/ports/libmupdf/portfile.cmake
+++ b/ports/libmupdf/portfile.cmake
@@ -1,21 +1,18 @@
-if (VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
- message(STATUS "Warning: Dynamic building not supported. Building static.")
- set(VCPKG_LIBRARY_LINKAGE static)
-endif()
-
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mupdf-1.11-source)
-vcpkg_download_distfile(ARCHIVE
- URLS "https://mupdf.com/downloads/mupdf-1.11-source.tar.gz"
- FILENAME "mupdf.tar.gz"
- SHA512 501670f540e298a8126806ebbd9db8b29866f663b7bbf26c9ade1933e42f0c00ad410b9d93f3ddbfb3e45c38722869095de28d832fe3fb3703c55cc9a01dbf63
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO ArtifexSoftware/mupdf
+ REF 1.12.0
+ SHA512 893a1958e34355acf73624e9c47f4a97adf13d5fe33604ac384df9ac22a56ef7c18e02143eaffc3c2a08f460e4c71fee00c094b6d6696f8446977bb18f65e3da
+ HEAD_REF master
)
-vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH "${SOURCE_PATH}"
+ DISABLE_PARALLEL_CONFIGURE
PREFER_NINJA
)
@@ -27,4 +24,4 @@ vcpkg_copy_pdbs()
#copyright
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/COPYRIGHT)
+file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright)
diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake
index bc1d73f07..726aab2ec 100644
--- a/scripts/cmake/vcpkg_configure_cmake.cmake
+++ b/scripts/cmake/vcpkg_configure_cmake.cmake
@@ -21,6 +21,11 @@
## ### PREFER_NINJA
## Indicates that, when available, Vcpkg should use Ninja to perform the build. This should be specified unless the port is known to not work under Ninja.
##
+## ### DISABLE_PARALLEL_CONFIGURE
+## Disables running the CMake configure step in parallel.
+##
+## This is needed for libraries which write back into their source directory during configure.
+##
## ### GENERATOR
## Specifies the precise generator to use.
##
@@ -45,7 +50,7 @@
## * [poco](https://github.com/Microsoft/vcpkg/blob/master/ports/poco/portfile.cmake)
## * [opencv](https://github.com/Microsoft/vcpkg/blob/master/ports/opencv/portfile.cmake)
function(vcpkg_configure_cmake)
- cmake_parse_arguments(_csc "PREFER_NINJA" "SOURCE_PATH;GENERATOR" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE" ${ARGN})
+ cmake_parse_arguments(_csc "PREFER_NINJA;DISABLE_PARALLEL_CONFIGURE" "SOURCE_PATH;GENERATOR" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE" ${ARGN})
if(NOT VCPKG_PLATFORM_TOOLSET)
message(FATAL_ERROR "Vcpkg has been updated with VS2017 support, however you need to rebuild vcpkg.exe by re-running bootstrap-vcpkg.bat\n")
@@ -209,7 +214,7 @@ function(vcpkg_configure_cmake)
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_INSTALL_PREFIX=${CURRENT_PACKAGES_DIR}/debug)
- if(NINJA_CAN_BE_USED AND CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
+ if(NINJA_CAN_BE_USED AND CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows" AND NOT _csc_DISABLE_PARALLEL_CONFIGURE)
vcpkg_find_acquire_program(NINJA)
get_filename_component(NINJA_PATH ${NINJA} DIRECTORY)