forked from AuroraMiddleware/gtk
Merge branch 'wip/fanc999/meson.msvc' into 'master'
GTK+ 4: Improve Windows/Visual Studio build experience See merge request GNOME/gtk!185
This commit is contained in:
commit
8d987be673
33
build-aux/meson/post-install.py
Normal file
33
build-aux/meson/post-install.py
Normal file
@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
if 'DESTDIR' not in os.environ:
|
||||
gtk_api_version = sys.argv[1]
|
||||
gtk_abi_version = sys.argv[2]
|
||||
gtk_libdir = sys.argv[3].replace('/', os.sep)
|
||||
gtk_datadir = sys.argv[4].replace('/', os.sep)
|
||||
|
||||
gtk_moduledir = os.path.join(gtk_libdir, 'gtk-' + gtk_api_version, gtk_abi_version)
|
||||
gtk_printmodule_dir = os.path.join(gtk_moduledir, 'printbackends')
|
||||
gtk_immodule_dir = os.path.join(gtk_moduledir, 'immodules')
|
||||
|
||||
print('Compiling GSettings schemas...')
|
||||
subprocess.call(['glib-compile-schemas',
|
||||
os.path.join(gtk_datadir, 'glib-2.0', 'schemas')])
|
||||
|
||||
print('Updating icon cache...')
|
||||
subprocess.call(['gtk-update-icon-cache', '-q', '-t' ,'-f',
|
||||
os.path.join(gtk_datadir, 'icons', 'hicolor')])
|
||||
|
||||
print('Updating module cache for print backends...')
|
||||
if not os.path.isdir(gtk_printmodule_dir):
|
||||
os.mkdir(gtk_printmodule_dir)
|
||||
subprocess.call(['gio-querymodules', gtk_printmodule_dir])
|
||||
|
||||
print('Updating module cache for input methods...')
|
||||
if not os.path.isdir(gtk_immodule_dir):
|
||||
os.mkdir(gtk_immodule_dir)
|
||||
subprocess.call(['gio-querymodules', gtk_immodule_dir])
|
@ -1,26 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
gtk_api_version=$1
|
||||
gtk_abi_version=$2
|
||||
gtk_libdir=$3
|
||||
gtk_datadir=$4
|
||||
|
||||
# Package managers set this so we don't need to run
|
||||
if [ -z "$DESTDIR" ]; then
|
||||
echo Compiling GSettings schemas...
|
||||
glib-compile-schemas ${gtk_datadir}/glib-2.0/schemas
|
||||
|
||||
echo Updating desktop database...
|
||||
update-desktop-database -q ${gtk_datadir}/applications
|
||||
|
||||
echo Updating icon cache...
|
||||
gtk-update-icon-cache -q -t -f ${gtk_datadir}/icons/hicolor
|
||||
|
||||
echo Updating module cache for print backends...
|
||||
mkdir -p ${gtk_libdir}/gtk-4.0/4.0.0/printbackends
|
||||
gio-querymodules ${gtk_libdir}/gtk-4.0/4.0.0/printbackends
|
||||
|
||||
echo Updating module cache for input methods...
|
||||
mkdir -p ${gtk_libdir}/gtk-4.0/4.0.0/immodules
|
||||
gio-querymodules ${gtk_libdir}/gtk-4.0/4.0.0/immodules
|
||||
fi
|
@ -160,6 +160,7 @@ gdkx11_inc = include_directories('x11')
|
||||
gdkwayland_inc = include_directories('wayland')
|
||||
|
||||
wlinc = include_directories('.')
|
||||
win32rcinc = include_directories('win32/rc')
|
||||
|
||||
gdk_gen_headers = [gdkenum_h, gdkmarshal_h, gdkconfig, gdkversionmacros]
|
||||
|
||||
|
@ -1,3 +1,4 @@
|
||||
#include <winuser.h>
|
||||
#include <winver.h>
|
||||
|
||||
GTK_ICON ICON "gtk.ico"
|
||||
@ -18,9 +19,9 @@ VS_VERSION_INFO VERSIONINFO
|
||||
VALUE "CompanyName", "The GTK developer community"
|
||||
VALUE "FileDescription", "GIMP Toolkit"
|
||||
VALUE "FileVersion", "@GTK_VERSION@.0"
|
||||
VALUE "InternalName", "libgtk-win32-@GTK_API_VERSION@-@LT_CURRENT_MINUS_AGE@"
|
||||
VALUE "LegalCopyright", "Copyright © 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald. Modified by the GTK+ Team and others 1997-2011."
|
||||
VALUE "OriginalFilename", "libgtk-win32-@GTK_API_VERSION@-@LT_CURRENT_MINUS_AGE@.dll"
|
||||
VALUE "InternalName", "libgtk-win32-@GTK_API_VERSION@"
|
||||
VALUE "LegalCopyright", "Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald. Modified by the GTK+ Team and others 1997-2011."
|
||||
VALUE "OriginalFilename", "libgtk-win32-@GTK_API_VERSION@.dll"
|
||||
VALUE "ProductName", "GTK+"
|
||||
VALUE "ProductVersion", "@GTK_VERSION@"
|
||||
END
|
||||
@ -30,3 +31,5 @@ VS_VERSION_INFO VERSIONINFO
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
ISOLATIONAWARE_MANIFEST_RESOURCE_ID RT_MANIFEST libgtk4.manifest
|
@ -850,6 +850,12 @@ gtkversion_cdata.set('GTK_MINOR_VERSION', gtk_minor_version)
|
||||
gtkversion_cdata.set('GTK_MICRO_VERSION', gtk_micro_version)
|
||||
gtkversion_cdata.set('GTK_BINARY_AGE', gtk_binary_age)
|
||||
gtkversion_cdata.set('GTK_INTERFACE_AGE', gtk_interface_age)
|
||||
gtkversion_cdata.set('GTK_VERSION', gtk_version)
|
||||
gtkversion_cdata.set('GTK_API_VERSION', gtk_api_version)
|
||||
|
||||
if host_machine.system() == 'windows'
|
||||
gtkversion_cdata.set('EXE_MANIFEST_ARCHITECTURE', '*')
|
||||
endif
|
||||
|
||||
gtkversion = configure_file(input: 'gtkversion.h.in',
|
||||
output: 'gtkversion.h',
|
||||
@ -926,6 +932,17 @@ if win32_enabled
|
||||
cc.find_library('imm32'),
|
||||
cc.find_library('setupapi'),
|
||||
cc.find_library('winmm')]
|
||||
|
||||
gtkwin32rc = configure_file(input: 'gtk-win32.rc.body.in',
|
||||
output: 'gtk-win32.rc.body',
|
||||
configuration: gtkversion_cdata)
|
||||
|
||||
win32_manifest = configure_file(input: 'libgtk4.manifest.in',
|
||||
output: 'libgtk4.manifest',
|
||||
configuration: gtkversion_cdata)
|
||||
|
||||
win32res = import('windows').compile_resources(gtkwin32rc, include_directories : win32rcinc)
|
||||
gtk_sources += win32res
|
||||
else
|
||||
gtk_deps += [ atkbridge_dep, ]
|
||||
endif
|
||||
|
@ -901,7 +901,7 @@ if get_option('documentation')
|
||||
endif
|
||||
|
||||
# Keep this in sync with post-install.sh expected arguments
|
||||
meson.add_install_script('build-aux/meson/post-install.sh',
|
||||
meson.add_install_script('build-aux/meson/post-install.py',
|
||||
gtk_api_version,
|
||||
gtk_binary_version,
|
||||
gtk_libdir,
|
||||
|
@ -23,6 +23,13 @@ endif
|
||||
media_subdir = 'gtk-4.0/@0@/media'.format(gtk_binary_version)
|
||||
media_install_dir = join_paths(get_option('libdir'), media_subdir)
|
||||
|
||||
extra_c_args = ['-DGTK_COMPILATION']
|
||||
|
||||
# Detect and set symbol visibility
|
||||
if cc.get_id() == 'msvc'
|
||||
extra_c_args += ['-D_GLIB_EXTERN=__declspec (dllexport) extern']
|
||||
endif
|
||||
|
||||
if media_backends.contains('ffmpeg')
|
||||
libavfilter_dep = dependency('libavfilter', version: '>= 6.47.100', required: true)
|
||||
libavformat_dep = dependency('libavformat', version: '>= 57.41.100', required: true)
|
||||
@ -34,9 +41,7 @@ if media_backends.contains('ffmpeg')
|
||||
|
||||
shared_module('media-ffmpeg',
|
||||
'gtkffmediafile.c',
|
||||
c_args: [
|
||||
'-DGTK_COMPILATION'
|
||||
],
|
||||
c_args: extra_c_args,
|
||||
dependencies: [ libgtk_dep, ffmpeg_deps ],
|
||||
install_dir: media_install_dir,
|
||||
install : true)
|
||||
@ -50,9 +55,7 @@ if media_backends.contains('gstreamer')
|
||||
'gtkgstmediafile.c',
|
||||
'gtkgstpaintable.c',
|
||||
'gtkgstsink.c',
|
||||
c_args: [
|
||||
'-DGTK_COMPILATION'
|
||||
],
|
||||
c_args: extra_c_args,
|
||||
dependencies: [ libgtk_dep, gstplayer_dep ],
|
||||
install_dir: media_install_dir,
|
||||
install : true)
|
||||
|
Loading…
Reference in New Issue
Block a user