aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSunTY <scarsty@gmail.com>2019-01-31 05:41:51 +0800
committerCodiferous <44823842+Codiferous@users.noreply.github.com>2019-01-30 13:41:51 -0800
commit397e1a5d6c7d6a694650e3455969060005b9a6f7 (patch)
tree5974382670e9c3a0adb986308be053d0a2fc484a
parent05b31030cee412118a9710daf5b4652a684b7f50 (diff)
downloadvcpkg-397e1a5d6c7d6a694650e3455969060005b9a6f7.tar.gz
vcpkg-397e1a5d6c7d6a694650e3455969060005b9a6f7.zip
libass dynamic library (#5244)
* libass dynamic library it relies on fribidi, harfbuzz, fontconfig, libiconv * Remove references to iconv and fontconfig Because this port is currently Windows-only (Fribidi doesn't build on Linux with vcpkg because of an issue with Meson), we don't want to worry about FontConfig; DirectWrite should be enough. * Freetype is important! * Remove unnecessary fontconfig -- for real * Remove unnecessary comment
-rw-r--r--ports/libass/CMakeLists.txt19
-rw-r--r--ports/libass/libass.def46
-rw-r--r--ports/libass/portfile.cmake4
3 files changed, 64 insertions, 5 deletions
diff --git a/ports/libass/CMakeLists.txt b/ports/libass/CMakeLists.txt
index 12e32f902..5570f3440 100644
--- a/ports/libass/CMakeLists.txt
+++ b/ports/libass/CMakeLists.txt
@@ -9,6 +9,9 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
# macOS - CONFIG_CORETEXT
# linux - CONFIG_FONTCONFIG
add_compile_definitions(CONFIG_DIRECTWRITE)
+add_compile_definitions(CONFIG_FREETYPE)
+add_compile_definitions(CONFIG_FRIBIDI)
+add_compile_definitions(CONFIG_HARFBUZZ)
file (GLOB_RECURSE SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/libass/*.c)
@@ -21,13 +24,23 @@ find_path(FRIBIDI_INCLUDE_DIR
NAMES fribidi.h
PATH_SUFFIXES fribidi)
+find_path(HARFBUZZ_INCLUDE_DIR
+ NAMES hb.h
+ PATH_SUFFIXES harfbuzz)
+
find_library(FRIBIDI_LIBRARY NAMES fribidi)
+find_library(HARFBUZZ_LIBRARY NAMES harfbuzz)
-add_library(ass STATIC ${SOURCES})
+add_library(ass ${SOURCES} ${CMAKE_CURRENT_SOURCE_DIR}/libass.def)
-target_include_directories(ass PRIVATE ${FRIBIDI_INCLUDE_DIR})
+target_include_directories(ass PRIVATE
+ ${FRIBIDI_INCLUDE_DIR}
+ ${HARFBUZZ_INCLUDE_DIR})
-target_link_libraries(ass PRIVATE Freetype::Freetype)
+target_link_libraries(ass PRIVATE
+ Freetype::Freetype
+ ${FRIBIDI_LIBRARY}
+ ${HARFBUZZ_LIBRARY})
install(TARGETS ass
RUNTIME DESTINATION bin
diff --git a/ports/libass/libass.def b/ports/libass/libass.def
new file mode 100644
index 000000000..58bfad3d6
--- /dev/null
+++ b/ports/libass/libass.def
@@ -0,0 +1,46 @@
+EXPORTS
+ass_library_init
+ass_library_done
+ass_library_version
+ass_set_fonts_dir
+ass_set_extract_fonts
+ass_set_style_overrides
+ass_renderer_init
+ass_renderer_done
+ass_set_frame_size
+ass_set_storage_size
+ass_set_margins
+ass_set_use_margins
+ass_set_aspect_ratio
+ass_set_font_scale
+ass_set_hinting
+ass_set_line_spacing
+ass_get_available_font_providers
+ass_set_fonts
+ass_render_frame
+ass_new_track
+ass_free_track
+ass_alloc_style
+ass_alloc_event
+ass_free_style
+ass_free_event
+ass_process_data
+ass_process_codec_private
+ass_process_chunk
+ass_read_file
+ass_read_memory
+ass_read_styles
+ass_add_font
+ass_clear_fonts
+ass_step_sub
+ass_process_force_style
+ass_set_message_cb
+ass_fonts_update
+ass_set_cache_limits
+ass_flush_events
+ass_set_shaper
+ass_set_line_position
+ass_set_pixel_aspect
+ass_set_selective_style_override_enabled
+ass_set_selective_style_override
+ass_set_check_readorder
diff --git a/ports/libass/portfile.cmake b/ports/libass/portfile.cmake
index 64d49c985..040cadc66 100644
--- a/ports/libass/portfile.cmake
+++ b/ports/libass/portfile.cmake
@@ -1,8 +1,6 @@
include(vcpkg_common_functions)
-vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO libass/libass
@@ -14,6 +12,8 @@ vcpkg_from_github(
file(COPY ${CMAKE_CURRENT_LIST_DIR}/config.h.in DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/libass.def DESTINATION ${SOURCE_PATH})
+
# Handle copyright
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libass RENAME copyright)