# Library version invercargill_major = '1' invercargill_minor = '0' invercargill_patch = '0' invercargill_version = '@0@.@1@.@2@'.format(invercargill_major, invercargill_minor, invercargill_patch) cc = meson.get_compiler('c') m_lib = cc.find_library('m', required: false) dependencies = [ dependency('glib-2.0'), dependency('gobject-2.0'), m_lib, # Math library for fmod ] sources = files('Enumerable.vala') sources += files('Delegates.vala') sources += files('Pair.vala') sources += files('PositionItemPair.vala') sources += files('Tracker.vala') sources += files('Errors.vala') sources += files('SelectionContext.vala') sources += files('Safety.vala') sources += files('Grouping.vala') sources += files('Interfaces.vala') sources += files('KeyValuePair.vala') sources += files('KeyCountPair.vala') sources += files('Attempt.vala') sources += files('Cache.vala') sources += files('Proxy.vala') sources += files('Sticky.vala') sources += files('Promotion.vala') sources += files('StickyProxy.vala') sources += files('StickyProxyPromotion.vala') sources += files('EnumerableInfo.vala') sources += files('Element.vala') sources += files('Debug.vala') sources += files('OrderConfiguration.vala') sources += files('Iterate.vala') sources += files('Wrap.vala') sources += files('Partition.vala') sources += files('Composition.vala') sources += files('ByteComposition.vala') sources += files('Modifiers/Transform.vala') sources += files('Modifiers/Filter.vala') sources += files('Modifiers/Merge.vala') sources += files('Modifiers/Sort.vala') sources += files('Modifiers/Skip.vala') sources += files('Modifiers/Take.vala') sources += files('Modifiers/SkipLast.vala') sources += files('Modifiers/TakeLast.vala') sources += files('Modifiers/Fork.vala') sources += files('Modifiers/ParallelTransform.vala') sources += files('Modifiers/ParallelFilter.vala') sources += files('Modifiers/Unique.vala') sources += files('Modifiers/Position.vala') sources += files('Modifiers/FilterTransform.vala') sources += files('Modifiers/From.vala') sources += files('Modifiers/Until.vala') sources += files('Modifiers/Cache.vala') sources += files('Modifiers/Concat.vala') sources += files('Modifiers/Zip.vala') sources += files('Modifiers/Sealed.vala') sources += files('Modifiers/Interleave.vala') sources += files('Modifiers/Order.vala') sources += files('Modifiers/Union.vala') sources += files('Modifiers/Difference.vala') sources += files('Modifiers/Intersect.vala') sources += files('Modifiers/SymmetricDifference.vala') sources += files('Modifiers/Chunk.vala') sources += files('Modifiers/Cycle.vala') sources += files('Modifiers/GroupSequential.vala') sources += files('Modifiers/Padding.vala') sources += files('Modifiers/Reverse.vala') sources += files('Modifiers/Scanner.vala') sources += files('Modifiers/Window.vala') sources += files('Wrappers/Array.vala') sources += files('Wrappers/GenericArray.vala') sources += files('Generators/Range.vala') sources += files('Generators/Empty.vala') sources += files('Generators/Function.vala') sources += files('Generators/Directory.vala') sources += files('Generators/Deferred.vala') sources += files('Promotions/Numbers/Numbers.vala') sources += files('Promotions/Numbers/Implementations.vala') sources += files('Promotions/Attempts.vala') sources += files('Promotions/PropertyGroups.vala') sources += files('Promotions/BinaryData.vala') sources += files('Promotions/Elements.vala') sources += files('Promotions/Registration.c') # Nullable type support (C implementation + Vala bindings) sources += files('Nullable.c') sources += files('Nullable.vala') sources += files('Interfaces/Lot.vala') sources += files('Interfaces/ImmutableLot.vala') sources += files('Interfaces/ReadOnlyCollection.vala') sources += files('Interfaces/ReadOnlyAssociative.vala') sources += files('Interfaces/ReadOnlyAddressable.vala') sources += files('Interfaces/ReadOnlyAddressableBytes.vala') sources += files('Interfaces/ReadOnlySet.vala') sources += files('Interfaces/ReadOnlyCategoryIndex.vala') sources += files('Interfaces/Collection.vala') sources += files('Interfaces/Associative.vala') sources += files('Interfaces/Addressable.vala') sources += files('Interfaces/Set.vala') sources += files('Interfaces/AddressableCollection.vala') sources += files('Interfaces/AddressableBytes.vala') sources += files('Interfaces/Properties.vala') sources += files('Interfaces/Queue.vala') sources += files('Interfaces/CategoryIndex.vala') sources += files('DataStructures/Series.vala') sources += files('DataStructures/Fifo.vala') sources += files('DataStructures/Lifo.vala') sources += files('DataStructures/PriorityQueue.vala') sources += files('DataStructures/Vector.vala') sources += files('DataStructures/HashSet.vala') sources += files('DataStructures/Dictionary.vala') sources += files('DataStructures/PropertyDictionary.vala') sources += files('DataStructures/SortedVector.vala') sources += files('DataStructures/SortedSeries.vala') sources += files('DataStructures/Buffer.vala') sources += files('DataStructures/RingBuffer.vala') sources += files('DataStructures/ImmutableBuffer.vala') sources += files('DataStructures/ByteBuffer.vala') sources += files('DataStructures/Catalogue.vala') sources += files('DataStructures/SetCatalogue.vala') sources += files('Mapping/Mapper.vala') sources += files('Mapping/PropertyMapper.vala') sources += files('Mapping/ValueMapper.vala') sources += files('Operators/Comparison.vala') sources += files('Operators/Equality.vala') sources += files('Operators/Hash.vala') sources += files('Operators/Stringify.vala') sources += files('Operators/Contain.vala') sources += files('Expressions/Expression.vala') sources += files('Expressions/Convenience.vala') sources += files('Expressions/ExpressionError.vala') sources += files('Expressions/ExpressionType.vala') sources += files('Expressions/ExpressionVisitor.vala') sources += files('Expressions/EvaluationContext.vala') sources += files('Expressions/ExpressionEvaluator.vala') sources += files('Expressions/PropertyAccessor.vala') sources += files('Expressions/PropertiesPropertyAccessor.vala') sources += files('Expressions/ObjectPropertyAccessor.vala') sources += files('Expressions/FunctionAccessor.vala') sources += files('Expressions/BinaryOperator.vala') sources += files('Expressions/UnaryOperator.vala') sources += files('Expressions/EnumerableFunctionAccessor.vala') sources += files('Expressions/IterateFunctionAccessor.vala') sources += files('Expressions/GlobalFunctionAccessor.vala') sources += files('Expressions/ExpressionTokenizer.vala') sources += files('Expressions/ExpressionParser.vala') sources += files('Expressions/AccessorFactory.vala') sources += files('Expressions/TypeAccessorRegistry.vala') sources += files('Expressions/StringPropertyAccessor.vala') sources += files('Expressions/LotPropertyAccessor.vala') sources += files('Expressions/StringFunctionAccessor.vala') sources += files('Expressions/DateTimeFunctionAccessor.vala') sources += files('Expressions/Expressions/LiteralExpression.vala') sources += files('Expressions/Expressions/VariableExpression.vala') sources += files('Expressions/Expressions/ParameterExpression.vala') sources += files('Expressions/Expressions/BinaryExpression.vala') sources += files('Expressions/Expressions/UnaryExpression.vala') sources += files('Expressions/Expressions/TernaryExpression.vala') sources += files('Expressions/Expressions/PropertyExpression.vala') sources += files('Expressions/Expressions/FunctionCallExpression.vala') sources += files('Expressions/Expressions/LambdaExpression.vala') sources += files('Expressions/Expressions/BracketedExpression.vala') sources += files('Expressions/Expressions/LotLiteralExpression.vala') sources += files('Expressions/Expressions/GlobalFunctionCallExpression.vala') sources += files('Expressions/Elements/LambdaElement.vala') sources += files('Expressions/Elements/GlobalFunctionsElement.vala') invercargill = shared_library('invercargill-@0@'.format(invercargill_major), sources, dependencies: dependencies, install: true, vala_gir: 'invercargill-@0@.gir'.format(invercargill_major), install_dir: [true, true, true, true], vala_vapi: 'invercargill-@0@.vapi'.format(invercargill_major), vala_header: 'invercargill-@0@.h'.format(invercargill_major) ) invercargill_dep = declare_dependency(link_with: invercargill, include_directories: include_directories('.')) pkg = import('pkgconfig') pkg.generate(invercargill, version : invercargill_version, name : 'invercargill-@0@'.format(invercargill_major)) g_ir_compiler = find_program('g-ir-compiler') custom_target('invercargill typelib', command: [g_ir_compiler, '--shared-library=libinvercargill-@0@.so'.format(invercargill_major), '--output', '@OUTPUT@', meson.current_build_dir() / 'invercargill-@0@.gir'.format(invercargill_major)], output: 'invercargill-@0@.typelib'.format(invercargill_major), depends: invercargill, install: true, install_dir: get_option('libdir') / 'girepository-1.0')