1project('libzim', ['c', 'cpp'], 2 version : '6.3.2', 3 license : 'GPL2', 4 default_options : ['c_std=c11', 'cpp_std=c++11']) 5 6if build_machine.system() != 'windows' 7 add_project_arguments('-D_LARGEFILE64_SOURCE=1', '-D_FILE_OFFSET_BITS=64', language: 'cpp') 8endif 9 10cpp = meson.get_compiler('cpp') 11sizeof_off_t = cpp.sizeof('off_t') 12sizeof_size_t = cpp.sizeof('size_t') 13 14conf = configuration_data() 15conf.set('VERSION', '"@0@"'.format(meson.project_version())) 16conf.set('DIRENT_CACHE_SIZE', get_option('DIRENT_CACHE_SIZE')) 17conf.set('DIRENT_LOOKUP_CACHE_SIZE', get_option('DIRENT_LOOKUP_CACHE_SIZE')) 18conf.set('CLUSTER_CACHE_SIZE', get_option('CLUSTER_CACHE_SIZE')) 19conf.set('LZMA_MEMORY_SIZE', get_option('LZMA_MEMORY_SIZE')) 20conf.set10('MMAP_SUPPORT_64', sizeof_off_t==8) 21conf.set10('ENV64BIT', sizeof_size_t==8) 22conf.set10('ENV32BIT', sizeof_size_t==4) 23if target_machine.system() == 'windows' 24 conf.set('ENABLE_USE_MMAP', false) 25else 26 conf.set('ENABLE_USE_MMAP', get_option('USE_MMAP')) 27endif 28conf.set('ENABLE_USE_BUFFER_HEADER', get_option('USE_BUFFER_HEADER')) 29 30static_linkage = get_option('static-linkage') 31static_linkage = static_linkage or get_option('default_library')=='static' 32 33lzma_dep = cpp.find_library('lzma') 34 35zstd_dep = dependency('libzstd', static:static_linkage) 36 37if target_machine.system() == 'dragonfly' 38 execinfo_dep = cpp.find_library('execinfo') 39endif 40 41xapian_dep = dependency('xapian-core', 42 required:false, 43 static:static_linkage) 44conf.set('ENABLE_XAPIAN', xapian_dep.found()) 45 46pkg_requires = ['liblzma', 'libzstd'] 47if build_machine.system() == 'windows' 48 thread_dep = dependency('libpthreadVC2') 49 pkg_requires += ['libpthreadVC2'] 50 extra_link_args = ['-lRpcrt4', '-lWs2_32', '-lwinmm', '-licuuc', '-licuin'] 51 extra_cpp_args = ['-DSORTPP_PASS'] 52else 53 thread_dep = dependency('threads') 54 extra_link_args = [] 55 extra_cpp_args = [] 56endif 57 58if xapian_dep.found() 59 pkg_requires += ['xapian-core'] 60 icu_dep = dependency('icu-i18n', static:static_linkage) 61 pkg_requires += ['icu-i18n'] 62else 63 icu_dep = dependency('icu-i18n', required:false, static:static_linkage) 64endif 65 66gtest_dep = dependency('gtest', main:true, fallback:['gtest', 'gtest_main_dep'], required:false) 67 68inc = include_directories('include') 69 70subdir('include') 71subdir('scripts') 72subdir('static') 73subdir('src') 74subdir('examples') 75subdir('test') 76if get_option('doc') 77 subdir('docs') 78endif 79 80pkg_mod = import('pkgconfig') 81pkg_mod.generate(libraries : libzim, 82 version : meson.project_version(), 83 name : 'libzim', 84 filebase : 'libzim', 85 description : 'A Library to zim.', 86 requires : pkg_requires) 87