vcpkg/ports/glib/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

127 lines
5.0 KiB
CMake

# Glib uses winapi functions not available in WindowsStore
vcpkg_fail_port_install(ON_TARGET "UWP")
# Glib relies on DllMain on Windows
if (VCPKG_TARGET_IS_WINDOWS)
vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
#remove if merged: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1655
endif()
set(GLIB_MAJOR_MINOR 2.66)
set(GLIB_PATCH 4)
vcpkg_download_distfile(ARCHIVE
URLS "https://ftp.gnome.org/pub/gnome/sources/glib/${GLIB_MAJOR_MINOR}/glib-${GLIB_MAJOR_MINOR}.${GLIB_PATCH}.tar.xz"
FILENAME "glib-${GLIB_MAJOR_MINOR}.${GLIB_PATCH}.tar.xz"
SHA512 b3bc3e6e5cca793139848940e5c0894f1c7e3bd3a770b213a1ea548ac54a2432aebb140ed54518712fb8af36382b3b13d5f7ffd3d87ff63cba9e2f55434f7260)
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
REF ${GLIB_VERSION}
PATCHES
use-libiconv-on-windows.patch
fix-libintl-detection.patch
)
if (selinux IN_LIST FEATURES)
if(NOT VCPKG_TARGET_IS_WINDOWS AND NOT EXISTS "/usr/include/selinux")
message("Selinux was not found in its typical system location. Your build may fail. You can install Selinux with \"apt-get install selinux\".")
endif()
list(APPEND OPTIONS -Dselinux=enabled)
else()
list(APPEND OPTIONS -Dselinux=disabled)
endif()
if(VCPKG_TARGET_IS_WINDOWS)
list(APPEND OPTIONS -Diconv=external)
else()
#list(APPEND OPTIONS -Diconv=libc) ?
endif()
vcpkg_configure_meson(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS
-Dbuild_tests=false
-Dinstalled_tests=false
${OPTIONS}
-Dinternal_pcre=false
)
#-Dnls=true
#-Dlibelf=false
#-Dlibmount=false
#-Dxattr=true?
vcpkg_install_meson(ADD_BIN_TO_PATH)
vcpkg_copy_pdbs()
set(GLIB_TOOLS gdbus
gio
gio-querymodules
glib-compile-resources
glib-compile-schemas
gobject-query
gresource
gsettings
)
if(NOT VCPKG_TARGET_IS_WINDOWS)
if(NOT VCPKG_TARGET_IS_OSX)
list(APPEND GLIB_TOOLS gapplication)
endif()
list(APPEND GLIB_TOOLS glib-gettextize gtester)
endif()
set(GLIB_SCRIPTS gdbus-codegen glib-genmarshal glib-mkenums gtester-report)
if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE MATCHES "x64|arm64")
list(APPEND GLIB_TOOLS gspawn-win64-helper${VCPKG_EXECUTABLE_SUFFIX}
gspawn-win64-helper-console${VCPKG_EXECUTABLE_SUFFIX})
elseif(VCPKG_TARGET_IS_WINDOWS AND VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
list(APPEND GLIB_TOOLS gspawn-win32-helper${VCPKG_EXECUTABLE_SUFFIX}
gspawn-win32-helper-console${VCPKG_EXECUTABLE_SUFFIX})
endif()
vcpkg_copy_tools(TOOL_NAMES ${GLIB_TOOLS} AUTO_CLEAN)
foreach(script IN LISTS GLIB_SCRIPTS)
file(RENAME "${CURRENT_PACKAGES_DIR}/bin/${script}" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/${script}")
file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${script}")
endforeach()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
endif()
IF(VCPKG_TARGET_IS_WINDOWS)
set(SYSTEM_LIBRARIES dnsapi iphlpapi winmm lshlwapi)
else()
set(SYSTEM_LIBRARIES resolv mount blkid selinux)
endif()
if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gio-2.0.pc")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/gio-2.0.pc" "\${bindir}" "\${bindir}/../tools/${PORT}")
endif()
if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gio-2.0.pc")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/gio-2.0.pc" "\${bindir}" "\${bindir}/../../tools/${PORT}")
endif()
if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/glib-2.0.pc")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/glib-2.0.pc" "\${bindir}" "\${bindir}/../tools/${PORT}")
endif()
if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/glib-2.0.pc")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/glib-2.0.pc" "\${bindir}" "\${bindir}/../../tools/${PORT}")
endif()
vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES ${SYSTEM_LIBRARIES})
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
# Fix python scripts
set(_file "${CURRENT_PACKAGES_DIR}/tools/${PORT}/gdbus-codegen")
file(READ "${_file}" _contents)
string(REPLACE "elif os.path.basename(filedir) == 'bin':" "elif os.path.basename(filedir) == 'tools':" _contents "${_contents}")
string(REPLACE "path = os.path.join(filedir, '..', 'share', 'glib-2.0')" "path = os.path.join(filedir, '../..', 'share', 'glib-2.0')" _contents "${_contents}")
string(REPLACE "path = os.path.join(filedir, '..')" "path = os.path.join(filedir, '../../share/glib-2.0')" _contents "${_contents}")
string(REPLACE "path = os.path.join('${CURRENT_PACKAGES_DIR}/share', 'glib-2.0')" "path = os.path.join('unuseable/share', 'glib-2.0')" _contents "${_contents}")
file(WRITE "${_file}" "${_contents}")