Files
gimp/app/meson.build
Jehan 9c226d5e77 app*, docs, tools: -Denable-default-bin=enabled will also install a gimp-major binary.
On Windows, it will basically be a copy of the main binaries. On other
OSes, it will be symlinks.
This will help for Windows installers where we want to use major version
only in registry and we need a binary named appropriately for this
apparently.

As for the "major" version, I will in fact use the next major when minor
is 99 (also called API major version), not that it will matter much very
soon!
2024-11-03 22:55:39 +01:00

266 lines
6.6 KiB
Meson

rootAppInclude = include_directories('.')
subdir('actions')
subdir('core')
subdir('dialogs')
subdir('display')
subdir('file')
subdir('file-data')
subdir('gegl')
subdir('gui')
subdir('menus')
subdir('operations')
subdir('paint')
subdir('pdb')
subdir('plug-in')
subdir('propgui')
subdir('text')
subdir('tools')
subdir('vectors')
subdir('widgets')
subdir('xcf')
# For app/config
app_debug_files = files(
'gimp-debug.c',
'gimp-log.c',
)
# Top-level library
libapp_sources = [
'app.c',
'errors.c',
'gimpcoreapp.c',
'gimpconsoleapp.c',
'gimp-debug.c',
'gimp-log.c',
'gimp-update.c',
'gimp-version.c',
'language.c',
'sanity.c',
'signals.c',
'unique.c',
gitversion_h,
gimpdbusservice_gen,
]
if platform_windows
# for GimpDashboard and GimpBacktrace
psapi_cflags = [ '-DPSAPI_VERSION=1' ]
link_args = [ '-lpsapi' ]
else
psapi_cflags = [ ]
link_args = []
endif
if platform_osx
link_args += osx_ldflags
endif
libapp_c_args = [
'-DG_LOG_DOMAIN="Gimp"',
'-DGIMP_APP_GLUE_COMPILATION',
psapi_cflags,
]
# Put GIMP core in a lib so we can conveniently link against that in test cases
# and main GIMP executable. Note that we should not use this static library for
# the console executable as it uses different macro flags.
libapp = static_library('app',
libapp_sources,
include_directories: [ rootInclude, rootAppInclude, configInclude, ],
c_args: libapp_c_args,
dependencies: [ gdk_pixbuf, gegl, gexiv2, gtk3, ],
)
gimpconsole_deps = [
cairo,
dbghelp,
drmingw,
gdk_pixbuf,
gegl,
gexiv2,
gio,
gio_specific,
lcms,
libbacktrace,
pangocairo,
pangoft2,
rpc,
]
console_libapps = [
libappcore,
libappfile,
libappfiledata,
libappgegl,
libappinternalprocs,
libapplayermodes,
libapplayermodeslegacy,
libappoperations,
libapppaint,
libapppdb,
libappplugin,
libapptext,
libappvectors,
libappxcf,
]
libapp_dep = declare_dependency(
dependencies: [
gimpconsole_deps,
gtk3,
],
link_with: [
libapp,
console_libapps,
],
include_directories: [
rootInclude,
rootAppInclude,
],
compile_args: psapi_cflags,
link_args: link_args,
)
# Those subdirs need to link against the first ones
subdir('config')
subdir('tests')
console_libapps += [ libappconfig ]
app_libgimps = [
libgimpbase,
libgimpcolor,
libgimpconfig,
libgimpmath,
libgimpmodule,
libgimpthumb,
]
gui_libapps = [
console_libapps,
libappactions,
libappdialogs,
libappdisplay,
libappgui,
libappmenus,
libapppropgui,
libapptools,
libappwidgets,
libgimpwidgets,
]
# Executables
if platform_windows
console_rc_name = 'gimp-console-'+ gimp_app_version
gimp_app_console_rc = configure_file(
input : gimp_plugins_rc.full_path(),
output: console_rc_name + '.rc',
copy: true,
)
console_rc_file = windows.compile_resources(
gimp_app_console_rc,
args: [
'--define', 'ORIGINALFILENAME_STR="@0@"'.format(console_rc_name+'.exe'),
'--define', 'INTERNALNAME_STR="@0@"' .format(console_rc_name),
'--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()),
],
include_directories: [
rootInclude, appInclude,
],
)
gui_rc_name = 'gimp-'+ gimp_app_version
gimp_app_gui_rc = configure_file(
input : gimp_plugins_rc.full_path(),
output: gui_rc_name + '.rc',
copy: true,
)
gui_rc_file = windows.compile_resources(
gimp_app_rc,
args: [
'--define', 'ORIGINALFILENAME_STR="@0@"'.format(gui_rc_name+'.exe'),
'--define', 'INTERNALNAME_STR="@0@"' .format(gui_rc_name),
'--define', 'TOP_SRCDIR="@0@"' .format(meson.project_source_root()),
],
include_directories: [
rootInclude, appInclude,
],
)
else
console_rc_file = []
gui_rc_file = []
endif
if enable_console_bin
gimpconsole_exe = executable(gimpconsole_exe_name,
'main.c',
libapp_sources,
console_rc_file,
c_args: [ libapp_c_args, '-DGIMP_CONSOLE_COMPILATION', ],
dependencies: gimpconsole_deps,
link_with: [
app_libgimps,
console_libapps
],
include_directories: [
rootInclude,
rootAppInclude,
],
link_args: link_args,
install: true,
)
endif
gimpmain_exe = executable(gimpmain_exe_name,
'main.c',
gui_rc_file,
c_args: libapp_c_args,
dependencies: libapp_dep,
link_with: [
app_libgimps,
gui_libapps,
],
install: true,
)
if enable_default_bin
if not platform_windows
install_symlink(fs.name(gimpmain_exe.full_path()).replace(exec_ver, ''),
pointing_to: fs.name(gimpmain_exe.full_path()),
install_dir: get_option('bindir'))
install_symlink(fs.name(gimpmain_exe.full_path()).replace(exec_ver, '-@0@'.format(api_version_major)),
pointing_to: fs.name(gimpmain_exe.full_path()),
install_dir: get_option('bindir'))
else
meson.add_install_script('sh', '-c',
'cp -f "@0@" "$MESON_INSTALL_DESTDIR_PREFIX/bin/@1@"'.format(gimpmain_exe.full_path(),
fs.name(gimpmain_exe.name()).replace(exec_ver, '.exe')))
meson.add_install_script('sh', '-c',
'cp -f "@0@" "$MESON_INSTALL_DESTDIR_PREFIX/bin/@1@"'.format(gimpmain_exe.full_path(),
fs.name(gimpmain_exe.name()).replace(exec_ver, '-@0@.exe'.format(api_version_major))))
endif
if enable_console_bin
if not platform_windows
install_symlink(fs.name(gimpconsole_exe.full_path()).replace(exec_ver, ''),
pointing_to: fs.name(gimpconsole_exe.full_path()),
install_dir: get_option('bindir'))
install_symlink(fs.name(gimpconsole_exe.full_path()).replace(exec_ver, '-@0@'.format(api_version_major)),
pointing_to: fs.name(gimpconsole_exe.full_path()),
install_dir: get_option('bindir'))
else
meson.add_install_script('sh', '-c',
'cp -f "@0@" "$MESON_INSTALL_DESTDIR_PREFIX/bin/@1@"'.format(gimpconsole_exe.full_path(),
fs.name(gimpconsole_exe.name()).replace(exec_ver, '.exe')))
meson.add_install_script('sh', '-c',
'cp -f "@0@" "$MESON_INSTALL_DESTDIR_PREFIX/bin/@1@"'.format(gimpconsole_exe.full_path(),
fs.name(gimpconsole_exe.name()).replace(exec_ver, '-@0@.exe'.format(api_version_major))))
endif
endif
endif