meson.build 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. # Library version
  2. invercargill_major = '1'
  3. invercargill_minor = '0'
  4. invercargill_patch = '0'
  5. invercargill_version = '@0@.@1@.@2@'.format(invercargill_major, invercargill_minor, invercargill_patch)
  6. cc = meson.get_compiler('c')
  7. m_lib = cc.find_library('m', required: false)
  8. dependencies = [
  9. dependency('glib-2.0'),
  10. dependency('gobject-2.0'),
  11. m_lib, # Math library for fmod
  12. ]
  13. sources = files('Enumerable.vala')
  14. sources += files('Delegates.vala')
  15. sources += files('Pair.vala')
  16. sources += files('PositionItemPair.vala')
  17. sources += files('Tracker.vala')
  18. sources += files('Errors.vala')
  19. sources += files('SelectionContext.vala')
  20. sources += files('Safety.vala')
  21. sources += files('Grouping.vala')
  22. sources += files('Interfaces.vala')
  23. sources += files('KeyValuePair.vala')
  24. sources += files('KeyCountPair.vala')
  25. sources += files('Attempt.vala')
  26. sources += files('Cache.vala')
  27. sources += files('Proxy.vala')
  28. sources += files('Sticky.vala')
  29. sources += files('Promotion.vala')
  30. sources += files('StickyProxy.vala')
  31. sources += files('StickyProxyPromotion.vala')
  32. sources += files('EnumerableInfo.vala')
  33. sources += files('Element.vala')
  34. sources += files('Debug.vala')
  35. sources += files('OrderConfiguration.vala')
  36. sources += files('Iterate.vala')
  37. sources += files('Wrap.vala')
  38. sources += files('Partition.vala')
  39. sources += files('Composition.vala')
  40. sources += files('ByteComposition.vala')
  41. sources += files('Modifiers/Transform.vala')
  42. sources += files('Modifiers/Filter.vala')
  43. sources += files('Modifiers/Merge.vala')
  44. sources += files('Modifiers/Sort.vala')
  45. sources += files('Modifiers/Skip.vala')
  46. sources += files('Modifiers/Take.vala')
  47. sources += files('Modifiers/SkipLast.vala')
  48. sources += files('Modifiers/TakeLast.vala')
  49. sources += files('Modifiers/Fork.vala')
  50. sources += files('Modifiers/ParallelTransform.vala')
  51. sources += files('Modifiers/ParallelFilter.vala')
  52. sources += files('Modifiers/Unique.vala')
  53. sources += files('Modifiers/Position.vala')
  54. sources += files('Modifiers/FilterTransform.vala')
  55. sources += files('Modifiers/From.vala')
  56. sources += files('Modifiers/Until.vala')
  57. sources += files('Modifiers/Cache.vala')
  58. sources += files('Modifiers/Concat.vala')
  59. sources += files('Modifiers/Zip.vala')
  60. sources += files('Modifiers/Sealed.vala')
  61. sources += files('Modifiers/Interleave.vala')
  62. sources += files('Modifiers/Order.vala')
  63. sources += files('Modifiers/Union.vala')
  64. sources += files('Modifiers/Difference.vala')
  65. sources += files('Modifiers/Intersect.vala')
  66. sources += files('Modifiers/SymmetricDifference.vala')
  67. sources += files('Modifiers/Chunk.vala')
  68. sources += files('Modifiers/Cycle.vala')
  69. sources += files('Modifiers/GroupSequential.vala')
  70. sources += files('Modifiers/Padding.vala')
  71. sources += files('Modifiers/Reverse.vala')
  72. sources += files('Modifiers/Scanner.vala')
  73. sources += files('Modifiers/Window.vala')
  74. sources += files('Wrappers/Array.vala')
  75. sources += files('Wrappers/GenericArray.vala')
  76. sources += files('Generators/Range.vala')
  77. sources += files('Generators/Empty.vala')
  78. sources += files('Generators/Function.vala')
  79. sources += files('Generators/Directory.vala')
  80. sources += files('Generators/Deferred.vala')
  81. sources += files('Promotions/Numbers/Numbers.vala')
  82. sources += files('Promotions/Numbers/Implementations.vala')
  83. sources += files('Promotions/Attempts.vala')
  84. sources += files('Promotions/PropertyGroups.vala')
  85. sources += files('Promotions/BinaryData.vala')
  86. sources += files('Promotions/Elements.vala')
  87. sources += files('Promotions/Registration.c')
  88. # Nullable type support (C implementation + Vala bindings)
  89. sources += files('Nullable.c')
  90. sources += files('Nullable.vala')
  91. sources += files('Interfaces/Lot.vala')
  92. sources += files('Interfaces/ImmutableLot.vala')
  93. sources += files('Interfaces/ReadOnlyCollection.vala')
  94. sources += files('Interfaces/ReadOnlyAssociative.vala')
  95. sources += files('Interfaces/ReadOnlyAddressable.vala')
  96. sources += files('Interfaces/ReadOnlyAddressableBytes.vala')
  97. sources += files('Interfaces/ReadOnlySet.vala')
  98. sources += files('Interfaces/ReadOnlyCategoryIndex.vala')
  99. sources += files('Interfaces/Collection.vala')
  100. sources += files('Interfaces/Associative.vala')
  101. sources += files('Interfaces/Addressable.vala')
  102. sources += files('Interfaces/Set.vala')
  103. sources += files('Interfaces/AddressableCollection.vala')
  104. sources += files('Interfaces/AddressableBytes.vala')
  105. sources += files('Interfaces/Properties.vala')
  106. sources += files('Interfaces/Queue.vala')
  107. sources += files('Interfaces/CategoryIndex.vala')
  108. sources += files('DataStructures/Series.vala')
  109. sources += files('DataStructures/Fifo.vala')
  110. sources += files('DataStructures/Lifo.vala')
  111. sources += files('DataStructures/PriorityQueue.vala')
  112. sources += files('DataStructures/Vector.vala')
  113. sources += files('DataStructures/HashSet.vala')
  114. sources += files('DataStructures/Dictionary.vala')
  115. sources += files('DataStructures/PropertyDictionary.vala')
  116. sources += files('DataStructures/SortedVector.vala')
  117. sources += files('DataStructures/SortedSeries.vala')
  118. sources += files('DataStructures/Buffer.vala')
  119. sources += files('DataStructures/RingBuffer.vala')
  120. sources += files('DataStructures/ImmutableBuffer.vala')
  121. sources += files('DataStructures/ByteBuffer.vala')
  122. sources += files('DataStructures/Catalogue.vala')
  123. sources += files('DataStructures/SetCatalogue.vala')
  124. sources += files('Mapping/Mapper.vala')
  125. sources += files('Mapping/PropertyMapper.vala')
  126. sources += files('Mapping/ValueMapper.vala')
  127. sources += files('Operators/Comparison.vala')
  128. sources += files('Operators/Equality.vala')
  129. sources += files('Operators/Hash.vala')
  130. sources += files('Operators/Stringify.vala')
  131. sources += files('Operators/Contain.vala')
  132. sources += files('Expressions/Expression.vala')
  133. sources += files('Expressions/Convenience.vala')
  134. sources += files('Expressions/ExpressionError.vala')
  135. sources += files('Expressions/ExpressionType.vala')
  136. sources += files('Expressions/ExpressionVisitor.vala')
  137. sources += files('Expressions/EvaluationContext.vala')
  138. sources += files('Expressions/ExpressionEvaluator.vala')
  139. sources += files('Expressions/PropertyAccessor.vala')
  140. sources += files('Expressions/PropertiesPropertyAccessor.vala')
  141. sources += files('Expressions/ObjectPropertyAccessor.vala')
  142. sources += files('Expressions/FunctionAccessor.vala')
  143. sources += files('Expressions/BinaryOperator.vala')
  144. sources += files('Expressions/UnaryOperator.vala')
  145. sources += files('Expressions/EnumerableFunctionAccessor.vala')
  146. sources += files('Expressions/IterateFunctionAccessor.vala')
  147. sources += files('Expressions/GlobalFunctionAccessor.vala')
  148. sources += files('Expressions/ExpressionTokenizer.vala')
  149. sources += files('Expressions/ExpressionParser.vala')
  150. sources += files('Expressions/AccessorFactory.vala')
  151. sources += files('Expressions/TypeAccessorRegistry.vala')
  152. sources += files('Expressions/StringPropertyAccessor.vala')
  153. sources += files('Expressions/LotPropertyAccessor.vala')
  154. sources += files('Expressions/StringFunctionAccessor.vala')
  155. sources += files('Expressions/DateTimeFunctionAccessor.vala')
  156. sources += files('Expressions/Expressions/LiteralExpression.vala')
  157. sources += files('Expressions/Expressions/VariableExpression.vala')
  158. sources += files('Expressions/Expressions/ParameterExpression.vala')
  159. sources += files('Expressions/Expressions/BinaryExpression.vala')
  160. sources += files('Expressions/Expressions/UnaryExpression.vala')
  161. sources += files('Expressions/Expressions/TernaryExpression.vala')
  162. sources += files('Expressions/Expressions/PropertyExpression.vala')
  163. sources += files('Expressions/Expressions/FunctionCallExpression.vala')
  164. sources += files('Expressions/Expressions/LambdaExpression.vala')
  165. sources += files('Expressions/Expressions/BracketedExpression.vala')
  166. sources += files('Expressions/Expressions/LotLiteralExpression.vala')
  167. sources += files('Expressions/Expressions/GlobalFunctionCallExpression.vala')
  168. sources += files('Expressions/Elements/LambdaElement.vala')
  169. sources += files('Expressions/Elements/GlobalFunctionsElement.vala')
  170. invercargill = shared_library('invercargill-@0@'.format(invercargill_major), sources,
  171. dependencies: dependencies,
  172. install: true,
  173. vala_gir: 'invercargill-@0@.gir'.format(invercargill_major),
  174. install_dir: [true, true, true, true],
  175. vala_vapi: 'invercargill-@0@.vapi'.format(invercargill_major),
  176. vala_header: 'invercargill-@0@.h'.format(invercargill_major)
  177. )
  178. invercargill_dep = declare_dependency(link_with: invercargill, include_directories: include_directories('.'))
  179. pkg = import('pkgconfig')
  180. pkg.generate(invercargill,
  181. version : invercargill_version,
  182. name : 'invercargill-@0@'.format(invercargill_major))
  183. g_ir_compiler = find_program('g-ir-compiler')
  184. 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)],
  185. output: 'invercargill-@0@.typelib'.format(invercargill_major),
  186. depends: invercargill,
  187. install: true,
  188. install_dir: get_option('libdir') / 'girepository-1.0')