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')
|
gdkwayland_inc = include_directories('wayland')
|
||||||
|
|
||||||
wlinc = include_directories('.')
|
wlinc = include_directories('.')
|
||||||
|
win32rcinc = include_directories('win32/rc')
|
||||||
|
|
||||||
gdk_gen_headers = [gdkenum_h, gdkmarshal_h, gdkconfig, gdkversionmacros]
|
gdk_gen_headers = [gdkenum_h, gdkmarshal_h, gdkconfig, gdkversionmacros]
|
||||||
|
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
#include <winuser.h>
|
||||||
#include <winver.h>
|
#include <winver.h>
|
||||||
|
|
||||||
GTK_ICON ICON "gtk.ico"
|
GTK_ICON ICON "gtk.ico"
|
||||||
@ -18,9 +19,9 @@ VS_VERSION_INFO VERSIONINFO
|
|||||||
VALUE "CompanyName", "The GTK developer community"
|
VALUE "CompanyName", "The GTK developer community"
|
||||||
VALUE "FileDescription", "GIMP Toolkit"
|
VALUE "FileDescription", "GIMP Toolkit"
|
||||||
VALUE "FileVersion", "@GTK_VERSION@.0"
|
VALUE "FileVersion", "@GTK_VERSION@.0"
|
||||||
VALUE "InternalName", "libgtk-win32-@GTK_API_VERSION@-@LT_CURRENT_MINUS_AGE@"
|
VALUE "InternalName", "libgtk-win32-@GTK_API_VERSION@"
|
||||||
VALUE "LegalCopyright", "Copyright © 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald. Modified by the GTK+ Team and others 1997-2011."
|
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@-@LT_CURRENT_MINUS_AGE@.dll"
|
VALUE "OriginalFilename", "libgtk-win32-@GTK_API_VERSION@.dll"
|
||||||
VALUE "ProductName", "GTK+"
|
VALUE "ProductName", "GTK+"
|
||||||
VALUE "ProductVersion", "@GTK_VERSION@"
|
VALUE "ProductVersion", "@GTK_VERSION@"
|
||||||
END
|
END
|
||||||
@ -30,3 +31,5 @@ VS_VERSION_INFO VERSIONINFO
|
|||||||
VALUE "Translation", 0x409, 1200
|
VALUE "Translation", 0x409, 1200
|
||||||
END
|
END
|
||||||
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_MICRO_VERSION', gtk_micro_version)
|
||||||
gtkversion_cdata.set('GTK_BINARY_AGE', gtk_binary_age)
|
gtkversion_cdata.set('GTK_BINARY_AGE', gtk_binary_age)
|
||||||
gtkversion_cdata.set('GTK_INTERFACE_AGE', gtk_interface_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',
|
gtkversion = configure_file(input: 'gtkversion.h.in',
|
||||||
output: 'gtkversion.h',
|
output: 'gtkversion.h',
|
||||||
@ -926,6 +932,17 @@ if win32_enabled
|
|||||||
cc.find_library('imm32'),
|
cc.find_library('imm32'),
|
||||||
cc.find_library('setupapi'),
|
cc.find_library('setupapi'),
|
||||||
cc.find_library('winmm')]
|
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
|
else
|
||||||
gtk_deps += [ atkbridge_dep, ]
|
gtk_deps += [ atkbridge_dep, ]
|
||||||
endif
|
endif
|
||||||
|
@ -901,7 +901,7 @@ if get_option('documentation')
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
# Keep this in sync with post-install.sh expected arguments
|
# 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_api_version,
|
||||||
gtk_binary_version,
|
gtk_binary_version,
|
||||||
gtk_libdir,
|
gtk_libdir,
|
||||||
|
@ -23,6 +23,13 @@ endif
|
|||||||
media_subdir = 'gtk-4.0/@0@/media'.format(gtk_binary_version)
|
media_subdir = 'gtk-4.0/@0@/media'.format(gtk_binary_version)
|
||||||
media_install_dir = join_paths(get_option('libdir'), media_subdir)
|
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')
|
if media_backends.contains('ffmpeg')
|
||||||
libavfilter_dep = dependency('libavfilter', version: '>= 6.47.100', required: true)
|
libavfilter_dep = dependency('libavfilter', version: '>= 6.47.100', required: true)
|
||||||
libavformat_dep = dependency('libavformat', version: '>= 57.41.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',
|
shared_module('media-ffmpeg',
|
||||||
'gtkffmediafile.c',
|
'gtkffmediafile.c',
|
||||||
c_args: [
|
c_args: extra_c_args,
|
||||||
'-DGTK_COMPILATION'
|
|
||||||
],
|
|
||||||
dependencies: [ libgtk_dep, ffmpeg_deps ],
|
dependencies: [ libgtk_dep, ffmpeg_deps ],
|
||||||
install_dir: media_install_dir,
|
install_dir: media_install_dir,
|
||||||
install : true)
|
install : true)
|
||||||
@ -50,9 +55,7 @@ if media_backends.contains('gstreamer')
|
|||||||
'gtkgstmediafile.c',
|
'gtkgstmediafile.c',
|
||||||
'gtkgstpaintable.c',
|
'gtkgstpaintable.c',
|
||||||
'gtkgstsink.c',
|
'gtkgstsink.c',
|
||||||
c_args: [
|
c_args: extra_c_args,
|
||||||
'-DGTK_COMPILATION'
|
|
||||||
],
|
|
||||||
dependencies: [ libgtk_dep, gstplayer_dep ],
|
dependencies: [ libgtk_dep, gstplayer_dep ],
|
||||||
install_dir: media_install_dir,
|
install_dir: media_install_dir,
|
||||||
install : true)
|
install : true)
|
||||||
|
Loading…
Reference in New Issue
Block a user