meson: use more subdir meson files

Makes the main one smaller.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
main
Rosen Penev 2 years ago
parent db25f13351
commit ec561bb185

@ -0,0 +1,55 @@
headers = files(
'exiv2/basicio.hpp',
'exiv2/bmffimage.hpp',
'exiv2/bmpimage.hpp',
'exiv2/config.h',
'exiv2/convert.hpp',
'exiv2/cr2image.hpp',
'exiv2/crwimage.hpp',
'exiv2/datasets.hpp',
'exiv2/easyaccess.hpp',
'exiv2/epsimage.hpp',
'exiv2/error.hpp',
'exiv2/exif.hpp',
'exiv2/exiv2.hpp',
'exiv2/futils.hpp',
'exiv2/gifimage.hpp',
'exiv2/http.hpp',
'exiv2/image.hpp',
'exiv2/image_types.hpp',
'exiv2/iptc.hpp',
'exiv2/jp2image.hpp',
'exiv2/jpgimage.hpp',
'exiv2/metadatum.hpp',
'exiv2/mrwimage.hpp',
'exiv2/orfimage.hpp',
'exiv2/pgfimage.hpp',
'exiv2/photoshop.hpp',
'exiv2/pngimage.hpp',
'exiv2/preview.hpp',
'exiv2/properties.hpp',
'exiv2/psdimage.hpp',
'exiv2/rafimage.hpp',
'exiv2/rw2image.hpp',
'exiv2/slice.hpp',
'exiv2/tags.hpp',
'exiv2/tgaimage.hpp',
'exiv2/tiffimage.hpp',
'exiv2/types.hpp',
'exiv2/value.hpp',
'exiv2/version.hpp',
'exiv2/webpimage.hpp',
'exiv2/xmp_exiv2.hpp',
'exiv2/xmpsidecar.hpp',
)
headers += exiv_conf
headers += cfile
if zlib_dep.found()
headers += files('exiv2/pngimage.hpp')
endif
install_headers(
headers,
subdir: 'exiv2',
)

@ -124,235 +124,23 @@ cfile = configure_file(
configuration: cdata,
)
base_lib = files(
'src/asfvideo.cpp',
'src/basicio.cpp',
'src/bmffimage.cpp',
'src/bmpimage.cpp',
'src/cr2image.cpp',
'src/crwimage.cpp',
'src/datasets.cpp',
'src/easyaccess.cpp',
'src/epsimage.cpp',
'src/error.cpp',
'src/exif.cpp',
'src/futils.cpp',
'src/gifimage.cpp',
'src/http.cpp',
'src/image.cpp',
'src/iptc.cpp',
'src/jp2image.cpp',
'src/jpgimage.cpp',
'src/matroskavideo.cpp',
'src/metadatum.cpp',
'src/mrwimage.cpp',
'src/orfimage.cpp',
'src/pgfimage.cpp',
'src/photoshop.cpp',
'src/pngimage.cpp',
'src/preview.cpp',
'src/properties.cpp',
'src/psdimage.cpp',
'src/quicktimevideo.cpp',
'src/rafimage.cpp',
'src/riffvideo.cpp',
'src/rw2image.cpp',
'src/tags.cpp',
'src/tgaimage.cpp',
'src/tiffimage.cpp',
'src/types.cpp',
'src/value.cpp',
'src/version.cpp',
'src/webpimage.cpp',
'src/xmp.cpp',
'src/xmpsidecar.cpp',
)
int_lib = files(
'src/canonmn_int.cpp',
'src/casiomn_int.cpp',
'src/cr2header_int.cpp',
'src/crwimage_int.cpp',
'src/fujimn_int.cpp',
'src/helper_functions.cpp',
'src/image_int.cpp',
'src/jp2image_int.cpp',
'src/makernote_int.cpp',
'src/minoltamn_int.cpp',
'src/nikonmn_int.cpp',
'src/olympusmn_int.cpp',
'src/orfimage_int.cpp',
'src/panasonicmn_int.cpp',
'src/pentaxmn_int.cpp',
'src/pngchunk_int.cpp',
'src/rw2image_int.cpp',
'src/samsungmn_int.cpp',
'src/sigmamn_int.cpp',
'src/sonymn_int.cpp',
'src/tags_int.cpp',
'src/tiffcomposite_int.cpp',
'src/tiffimage_int.cpp',
'src/tiffvisitor_int.cpp',
'src/utils.cpp',
)
headers = files(
'include/exiv2/basicio.hpp',
'include/exiv2/bmffimage.hpp',
'include/exiv2/bmpimage.hpp',
'include/exiv2/config.h',
'include/exiv2/convert.hpp',
'include/exiv2/cr2image.hpp',
'include/exiv2/crwimage.hpp',
'include/exiv2/datasets.hpp',
'include/exiv2/easyaccess.hpp',
'include/exiv2/epsimage.hpp',
'include/exiv2/error.hpp',
'include/exiv2/exif.hpp',
'include/exiv2/exiv2.hpp',
'include/exiv2/futils.hpp',
'include/exiv2/gifimage.hpp',
'include/exiv2/http.hpp',
'include/exiv2/image.hpp',
'include/exiv2/image_types.hpp',
'include/exiv2/iptc.hpp',
'include/exiv2/jp2image.hpp',
'include/exiv2/jpgimage.hpp',
'include/exiv2/metadatum.hpp',
'include/exiv2/mrwimage.hpp',
'include/exiv2/orfimage.hpp',
'include/exiv2/pgfimage.hpp',
'include/exiv2/photoshop.hpp',
'include/exiv2/pngimage.hpp',
'include/exiv2/preview.hpp',
'include/exiv2/properties.hpp',
'include/exiv2/psdimage.hpp',
'include/exiv2/rafimage.hpp',
'include/exiv2/rw2image.hpp',
'include/exiv2/slice.hpp',
'include/exiv2/tags.hpp',
'include/exiv2/tgaimage.hpp',
'include/exiv2/tiffimage.hpp',
'include/exiv2/types.hpp',
'include/exiv2/value.hpp',
'include/exiv2/version.hpp',
'include/exiv2/webpimage.hpp',
'include/exiv2/xmp_exiv2.hpp',
'include/exiv2/xmpsidecar.hpp',
)
headers += exiv_conf
headers += cfile
libinc = include_directories('include/exiv2')
xmp_lib = files()
if expat_dep.found()
libinc = include_directories('include/exiv2', 'xmpsdk/include')
xmp_lib = files(
'xmpsdk/src/ExpatAdapter.cpp',
'xmpsdk/src/MD5.cpp',
'xmpsdk/src/ParseRDF.cpp',
'xmpsdk/src/UnicodeConversions.cpp',
'xmpsdk/src/WXMPIterator.cpp',
'xmpsdk/src/WXMPMeta.cpp',
'xmpsdk/src/WXMPUtils.cpp',
'xmpsdk/src/XML_Node.cpp',
'xmpsdk/src/XMPCore_Impl.cpp',
'xmpsdk/src/XMPIterator.cpp',
'xmpsdk/src/XMPMeta-GetSet.cpp',
'xmpsdk/src/XMPMeta-Parse.cpp',
'xmpsdk/src/XMPMeta-Serialize.cpp',
'xmpsdk/src/XMPMeta.cpp',
'xmpsdk/src/XMPUtils-FileInfo.cpp',
'xmpsdk/src/XMPUtils.cpp',
)
endif
if zlib_dep.found()
headers += files('include/exiv2/pngimage.hpp')
endif
install_man('man/man1/exiv2.1')
install_headers(
headers,
subdir: 'exiv2',
)
exiv2int = static_library(
'exiv2int',
int_lib,
cpp_args: '-DEXIV2API=',
dependencies: deps,
include_directories: libinc,
)
libinc = include_directories('.', 'include/exiv2')
depinc = include_directories('.', 'include')
exiv2int_dep = declare_dependency(
include_directories: depinc,
link_with: exiv2int,
)
# This is compiled separately, because there are multiple sources for iconv
# (methods "builtin" and "system") and it's possible to have the include
# directory from one dependency leak over and force the system iconv to be used
# instead of the builtin one. This causes miscompilation.
convertlib = static_library(
'_convert',
'src/convert.cpp',
cpp_args: cargs,
gnu_symbol_visibility: 'hidden',
dependencies: iconv_dep,
include_directories: [depinc, libinc],
build_by_default: false,
)
exiv2 = library(
'exiv2',
base_lib,
xmp_lib,
cpp_args: cargs,
version: meson.project_version(),
soversion: sover,
gnu_symbol_visibility: 'hidden',
link_with: convertlib,
dependencies: [deps, exiv2int_dep],
include_directories: libinc,
install: true,
)
dllapi = '-DEXIV2API='
if host_machine.system() == 'windows' and get_option('default_library') != 'static'
dllapi = '-DEXIV2API=__declspec(dllimport)'
endif
exiv2_dep = declare_dependency(
compile_args: dllapi,
dependencies: intl_dep,
include_directories: depinc,
link_with: exiv2,
)
pkg = import('pkgconfig')
pkg.generate(
exiv2,
description: 'Exif/IPTC/Xmp C++ metadata library and tools plus ICC Profiles, Previews and more.',
url: 'https://exiv2.org',
)
subdir('xmpsdk')
subdir('src')
subdir('include')
exiv2inc = include_directories('include/exiv2', 'src')
install_man('man/man1/exiv2.1')
exiv2_sources = files(
'app/actions.cpp',
'app/app_utils.cpp',
'app/exiv2.cpp',
'app/getopt.cpp',
host_machine.system() == 'windows' ? 'app/wmain.cpp' : [],
)
if host_machine.system() == 'windows'
exiv2_sources += files('app/wmain.cpp')
endif
exiv2inc = include_directories('src', 'include/exiv2')
executable(
'exiv2',
exiv2_sources,

@ -0,0 +1,130 @@
base_lib = files(
'asfvideo.cpp',
'basicio.cpp',
'bmffimage.cpp',
'bmpimage.cpp',
'cr2image.cpp',
'crwimage.cpp',
'datasets.cpp',
'easyaccess.cpp',
'epsimage.cpp',
'error.cpp',
'exif.cpp',
'futils.cpp',
'gifimage.cpp',
'http.cpp',
'image.cpp',
'iptc.cpp',
'jp2image.cpp',
'jpgimage.cpp',
'matroskavideo.cpp',
'metadatum.cpp',
'mrwimage.cpp',
'orfimage.cpp',
'pgfimage.cpp',
'photoshop.cpp',
'pngimage.cpp',
'preview.cpp',
'properties.cpp',
'psdimage.cpp',
'quicktimevideo.cpp',
'rafimage.cpp',
'riffvideo.cpp',
'rw2image.cpp',
'tags.cpp',
'tgaimage.cpp',
'tiffimage.cpp',
'types.cpp',
'value.cpp',
'version.cpp',
'webpimage.cpp',
'xmp.cpp',
'xmpsidecar.cpp',
)
int_lib = files(
'canonmn_int.cpp',
'casiomn_int.cpp',
'cr2header_int.cpp',
'crwimage_int.cpp',
'fujimn_int.cpp',
'helper_functions.cpp',
'image_int.cpp',
'jp2image_int.cpp',
'makernote_int.cpp',
'minoltamn_int.cpp',
'nikonmn_int.cpp',
'olympusmn_int.cpp',
'orfimage_int.cpp',
'panasonicmn_int.cpp',
'pentaxmn_int.cpp',
'pngchunk_int.cpp',
'rw2image_int.cpp',
'samsungmn_int.cpp',
'sigmamn_int.cpp',
'sonymn_int.cpp',
'tags_int.cpp',
'tiffcomposite_int.cpp',
'tiffimage_int.cpp',
'tiffvisitor_int.cpp',
'utils.cpp',
)
exiv2int = static_library(
'exiv2int',
int_lib,
cpp_args: '-DEXIV2API=',
dependencies: deps,
include_directories: libinc,
)
exiv2int_dep = declare_dependency(
include_directories: libinc,
link_with: exiv2int,
)
# This is compiled separately, because there are multiple sources for iconv
# (methods "builtin" and "system") and it's possible to have the include
# directory from one dependency leak over and force the system iconv to be used
# instead of the builtin one. This causes miscompilation.
convertlib = static_library(
'_convert',
'convert.cpp',
cpp_args: cargs,
gnu_symbol_visibility: 'hidden',
dependencies: iconv_dep,
include_directories: libinc,
build_by_default: false,
)
exiv2 = library(
'exiv2',
base_lib,
xmp_lib,
cpp_args: cargs,
version: meson.project_version(),
soversion: sover,
gnu_symbol_visibility: 'hidden',
link_with: convertlib,
dependencies: [deps, exiv2int_dep],
install: true,
)
dllapi = '-DEXIV2API='
if host_machine.system() == 'windows' and get_option('default_library') != 'static'
dllapi = '-DEXIV2API=__declspec(dllimport)'
endif
pkg = import('pkgconfig')
pkg.generate(
exiv2,
description: 'Exif/IPTC/Xmp C++ metadata library and tools plus ICC Profiles, Previews and more.',
url: 'https://exiv2.org',
)
exiv2_dep = declare_dependency(
compile_args: dllapi,
dependencies: intl_dep,
include_directories: depinc,
link_with: exiv2,
)

@ -50,13 +50,12 @@ endif
t_args = ['-UEXIV2API', '-DEXIV2API=', '-DTESTDATA_PATH="@0@"'.format('..' / 'test' / 'data')]
privinc = include_directories('../src', '../include/exiv2')
unit_tests = executable(
'unit_tests',
test_sources,
cpp_args: t_args,
dependencies: [deps, exiv2_dep, gtest_dep],
include_directories: privinc,
include_directories: exiv2inc,
)
test('Unit Tests', unit_tests)

@ -0,0 +1,24 @@
if not expat_dep.found()
xmp_lib = files()
subdir_done()
endif
libinc = [libinc, include_directories('include')]
xmp_lib = files(
'src/ExpatAdapter.cpp',
'src/MD5.cpp',
'src/ParseRDF.cpp',
'src/UnicodeConversions.cpp',
'src/WXMPIterator.cpp',
'src/WXMPMeta.cpp',
'src/WXMPUtils.cpp',
'src/XML_Node.cpp',
'src/XMPCore_Impl.cpp',
'src/XMPIterator.cpp',
'src/XMPMeta-GetSet.cpp',
'src/XMPMeta-Parse.cpp',
'src/XMPMeta-Serialize.cpp',
'src/XMPMeta.cpp',
'src/XMPUtils-FileInfo.cpp',
'src/XMPUtils.cpp',
)
Loading…
Cancel
Save