vcpkg/ports/cairo/portfile.cmake
Alexander Neumann 546813ae7b
[glib up to gtk] update and make it work with meson (#13100)
* update glib to meson

* update ci baseline

* update glib to 2.66.3
remove cmakelists

* fix some minor meson issue but meson is still a mess

* add_bin_to_path to vcpkg_install_meson

* regen docs

* try fixing/touching all glib dependent ports

* fix libsigcpp-3 version

* fix glibmm

* fix gmime

* fix libcroco

* update libnice

* fix atk build

* update harfbuzz

* fix few builds

* update libxmlpp

* fix gdk-pixbuf

* fix gts

* gts add patch

* remove old libsigcpp

* add missing comma

* fix supports logic

* fix name mismatch

* restore original ci baseline.

* fix a lot of small details.
increment controls.

* fix harfbuzz & glib

* bump port version

* update port_versions

* fix version field

* update versions

* fix glib in harfbuzz

* update port versions

* silly uppercase type

* update port-versions

* fix cairo build

* update version

* fix atk

* update atk port-verisons

* fix gts public includes

* update versions

* fix cairomm

* fix pango

* fix ignition

* update versions.

* fix gtk

* fix librsvg

* update versions

* fix atk linux

* fix libgpod

* update versions

* fix lcm

* fix librsvg

* update pango and pangomm

* update pango to meson

* more updates

* update pixman

* fix cairo

* fix cairo

* some fixes

* reorder meson a bit

* add none.txt for meson

* fix x86_x64 to x86 "cross" builds

* add tiff pkgconfig

* update gdk-pixbuf

* fix tiff and jpeg

* add graphene

* fix gdk-pixbuf

* add sassc

* update gtk

* fix cairo complete build

* add harfbuzz inlcude in pango since meson does not add it into pkgconfig.

* fix gtk build. Remaining issue fix install script.

* fix gtk build

* fix io2d

* add supports field

* fix cartographer?

* fix librsvg build

* fix gtk build

* fix cartographer

* fix sassc on linux

* fix tiff and libjpeg pc files

* fix pixman x86

* _isnanf is undefined on arm-

* merge fix for make on arm64

* fix gdk-pixbuf on arm64-windows

* pixman remove test/demos.
should fix it on osx.

* [vcpkg_install_meson] add bin to path to run code generators

* [vcpkg_configure_meson]
deactivate native compiler in cross builds
make x86 on x86_x64 a native instead of a cross build
(as long as we are not building for UWP)

* pixman reenable UWP support.

* pixman reenable arm support

* add pixman:arm-uwp=fail to baseline

* update gtkmm

* remove double whitespaces

* gtk baseline
gtk dependency on cairo x11
remove double spaces in flags

* fix linux build

* native none again

* cairo fix cairo-script.pc

* comment out patch since the cairo changes should have fixed it.

* disable wayland backend in GTK since CI is missing system packages

* silly typo in cairo pc file correction
install lzo pc on windows

* remove double spaces in _FLAGS
remove unnecessary comments

* actually disabling wayland backend

* fix glib codegen issue having the wrong path

* try to fix paths in glib codegen

* integrate changes form #12860

* add the uwp patch back in

* deactivate extra harfbuzz shapers.

* vcpkg x-add-version --all --overwrite-version

* remove patches in tesseract.

* fix version

* rerun add-version

* add libgpod:x64-linux=fail to baseline due to missing system tools/libraries

* change regex to take double - into account.

* run x-add-version

* run format-manifest

* add missing removal of multiple spaces back into the regex

* remove ws diff change

* fix gtkmm the upstream way

* remove ws to reduce diff

* make glib build on osx

* format manifest

* run x-add-version

* add pthread dependency

* update baseline due to glib compiling on osx now.

* add meson as a dep to glib

* - add glib host dependencies
- switch to manifest of touched ports

* switch to manifest.

* [libxml2] add gnuinstalldirs

* [libxml2] add missing include of GNUInstallDirs

* add version info

* add include dir to pc files ....

* update version

* add UWP as crosscompiling target

* Apply suggestions from code review

* trying to fix cairo pthread detection on osx.

* fix libmicrohttpd by adding the required system frameworks on osx

* fix poppler by not removing the CXX standard

* fix missing coretext header from harfbuzz in pano

* fix formating issues

* fix librsvg on osx

* revert version changes

* bump version

* version stuff.

* fix graphene version stuff

* fix version stuff

* removing ports from ci baseline to cause me pain

* move cairomm:x64-linux=fail
to gtkmm:x64-linx=fail
remove pangomm:x64-osx=fail

* fix typo

* revert ws changes to vcpkg_install_meson

* update port version after merge

* version stuff

* fix fluidsynth by adding vcpkg_check_features

* move cairo to ci baseline on osx

* version stuff

* fluidsynth corrections

* more version stuff

* apply code review changes

* clean version stuff.

* update version stuff

* code review cleanup

* version stuff

* formating

* update version stuff again

* remove gdi again

* version stuff

* version stuff

* version baseline

* Apply strega-nil suggestions from code review

* run x-add-version

* reset versions to upstream/master

* v8 CONTROL -> json

* reset fluidsynth to upstream/master

* first batch of version-string -> version conversion

* second and last batch of version-string -> version conversions

* update version stuff

* disable gdi feature in harfbuzz (missing user32 linkage in qt5-base)

* version stuff

* Apply suggestions from code review

Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>

* more CR stuff

* update versions

* back out provision changes so that pr can be merged.

Co-authored-by: nicole mazzuca <mazzucan@outlook.com>
Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com>
2021-04-26 10:28:21 -07:00

101 lines
3.5 KiB
CMake

set(CAIRO_VERSION 1.16.0)
vcpkg_download_distfile(ARCHIVE
URLS "https://www.cairographics.org/releases/cairo-${CAIRO_VERSION}.tar.xz"
FILENAME "cairo-${CAIRO_VERSION}.tar.xz"
SHA512 9eb27c4cf01c0b8b56f2e15e651f6d4e52c99d0005875546405b64f1132aed12fbf84727273f493d84056a13105e065009d89e94a8bfaf2be2649e232b82377f
)
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
REF ${CAIRO_VERSION}
PATCHES
export-only-in-shared-build.patch
0001_fix_osx_defined.patch
build2.patch
remove_test_perf.patch
)
#TODO the autoconf script has a lot of additional option which use auto detection and should be disabled!
if("fontconfig" IN_LIST FEATURES)
list(APPEND OPTIONS --enable-fc=yes)
else()
list(APPEND OPTIONS --enable-fc=no)
endif()
if("freetype" IN_LIST FEATURES)
list(APPEND OPTIONS --enable-ft=yes)
else()
list(APPEND OPTIONS --enable-ft=no)
endif()
if ("x11" IN_LIST FEATURES)
if (VCPKG_TARGET_IS_WINDOWS)
message(FATAL_ERROR "Feature x11 only support UNIX.")
endif()
message(WARNING "You will need to install Xorg dependencies to use feature x11:\napt install libx11-dev libxft-dev\n")
list(APPEND OPTIONS --with-x --enable-xlib=yes)
else()
list(APPEND OPTIONS --enable-xlib=no)
endif()
if("gobject" IN_LIST FEATURES)
if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static")
message(FATAL_ERROR "Feature gobject currently only supports dynamic build.")
endif()
list(APPEND OPTIONS --enable-gobject=yes)
else()
list(APPEND OPTIONS --enable-gobject=no)
endif()
if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
set(ENV{CPP} "cl_cpp_wrapper")
endif()
vcpkg_configure_make(
SOURCE_PATH ${SOURCE_PATH}
AUTOCONFIG
OPTIONS ${OPTIONS}
ax_cv_c_float_words_bigendian=no
ac_cv_lib_z_compress=yes
ac_cv_lib_lzo2_lzo2a_decompress=yes
lt_cv_deplibs_check_method=pass_all
)
vcpkg_install_make()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
set(_file "${CURRENT_PACKAGES_DIR}/include/cairo/cairo.h")
file(READ ${_file} CAIRO_H)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
string(REPLACE "defined (CAIRO_WIN32_STATIC_BUILD)" "1" CAIRO_H "${CAIRO_H}")
else()
string(REPLACE "defined (CAIRO_WIN32_STATIC_BUILD)" "0" CAIRO_H "${CAIRO_H}")
endif()
file(WRITE ${_file} "${CAIRO_H}")
# Handle copyright
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
vcpkg_copy_pdbs()
if(VCPKG_TARGET_IS_WINDOWS)
set(ZLINK "-lzlibd")
else()
set(ZLINK "-lz")
endif()
set(_file "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/cairo-script.pc")
if(EXISTS "${_file}")
vcpkg_replace_string("${_file}" "Libs: ${ZLINK}" "Requires.private: lzo2 zlib\nLibs: -L\${libdir} -lcairo-script-interpreter")
file(INSTALL "${_file}" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/" RENAME cairo-script-interpreter.pc) #normally the *.pc file is named like the library
endif()
if(VCPKG_TARGET_IS_WINDOWS)
set(ZLINK "-lzlib")
endif()
set(_file "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/cairo-script.pc")
if(EXISTS "${_file}")
vcpkg_replace_string("${_file}" "Libs: ${ZLINK}" "Requires.private: lzo2 zlib\nLibs: -L\${libdir} -lcairo-script-interpreter")
file(INSTALL "${_file}" DESTINATION "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/" RENAME cairo-script-interpreter.pc) #normally the *.pc file is named like the library
endif()
vcpkg_fixup_pkgconfig()