libvips/cplusplus/meson.build
Kleis Auke Wolthuizen 07edfe37b1
Improve symbol visibility (#2688)
* Improve symbol visibility

* Decorate required internal symbols with VIPS_API

* Remove a couple of stray header decls

* Incorporate review comment

- Ensure symbol visibility is also set on static libraries.
- Prefer to use `cc.has_function_attribute('visibility:hidden')`.

* Don't export internal deprecated symbols

* Move deprecated symbols to vips7compat.h

* `IM_FORMAT_H` -> `VIPS_FORMAT_H`

* Move `vips_window_ref` compat stub to `vips7compat.c`

* Disable deprecation warnings internally

* `vips_image_get_kill` -> `vips_image_iskilled`

* Ensure API compatibility

* Add missing include directives

* Move `vips__init` decl to vips7compat

* Move `vips__get_sizeof_vipsobject` to vips7compat

* Fix introspection build

* Fix 2 introspection warnings

* Ensure compatibility with vipsdisp

/usr/bin/ld: tilesource.o: in function `tile_source_new_from_source':
vipsdisp/tilesource.c:1627: undefined reference to `vips__region_no_ownership'
2022-04-16 10:58:55 +01:00

65 lines
1.7 KiB
Meson

subdir('include/vips')
libvips_cpp_lib = library('vips-cpp',
'VImage.cpp',
'VInterpolate.cpp',
'VRegion.cpp',
'VConnection.cpp',
'VError.cpp',
dependencies: libvips_dep,
include_directories: libvips_cpp_includedir,
version: library_version,
gnu_symbol_visibility: 'hidden',
install: true,
)
libvips_cpp_dep = declare_dependency(
link_with: libvips_cpp_lib,
dependencies: libvips_dep,
include_directories: libvips_cpp_includedir,
)
pkg.generate(
libvips_cpp_lib,
requires: [ libvips_lib, glib_dep, gobject_dep ],
name: 'vips-cpp',
description: 'C++ API for vips8 image processing library',
)
custom_target('vips-operators-header',
command: [ 'gen-operators.py', '-g', 'h'],
capture: true,
output: 'vips-operators.h'
)
custom_target('vips-operators-source',
command: [ 'gen-operators.py', '-g', 'cpp'],
capture: true,
output: 'vips-operators.cc'
)
if get_option('doxygen')
doxygen = find_program('doxygen')
doxygen_data = configuration_data()
doxygen_data.set('VIPS_MAJOR_VERSION', version_major)
doxygen_data.set('VIPS_MINOR_VERSION', version_minor)
doxygen_data.set('DOXY_INPUT_DIRECTORY',
join_paths(meson.source_root(), meson.current_source_dir()))
doxygen_data.set('DOXY_OUTPUT_DIRECTORY', 'cplusplus')
doxyfile = configure_file(
input: 'Doxyfile.in',
output: 'Doxyfile',
configuration: doxygen_data,
install: false
)
html_target = custom_target('vips-cpp-docs',
input: doxyfile,
output: 'html',
command: [doxygen, doxyfile],
install: true,
install_dir: get_option('prefix') / get_option('datadir') / 'doc' / 'libvips-doc'
)
endif