meson.build 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. common_sources = [
  2. 'async-launcher.vala',
  3. 'box-config.vala',
  4. 'collection-source.vala',
  5. 'util.vala',
  6. ]
  7. vala_args = [
  8. '--enable-experimental',
  9. '--vapidir', vapi_dir,
  10. '--vapidir', join_paths (vapi_dir, 'upstream'),
  11. '--target-glib=2.38',
  12. ]
  13. common_dependencies = [
  14. config_h,
  15. config_dep,
  16. libarchive_dep,
  17. dependency ('gio-2.0', version: '>= 2.44.0'),
  18. dependency ('glib-2.0', version: '>= 2.44.0')
  19. ]
  20. c_args = [
  21. '-DDATADIR="' + data_dir + '"',
  22. '-DGNOMELOCALEDIR="' + locale_dir + '"',
  23. '-DGETTEXT_PACKAGE="gnome-boxes"',
  24. '-DCACHEDIR="/var/cache/"',
  25. '-DG_LOG_DOMAIN="Boxes"',
  26. ]
  27. if get_option ('buildtype').contains ('debug')
  28. c_args += ['-O0', '-ggdb3']
  29. endif
  30. libcommon = static_library(
  31. 'common',
  32. sources: common_sources,
  33. include_directories: config_h_dir,
  34. dependencies: common_dependencies,
  35. vala_args: vala_args,
  36. c_args: c_args
  37. )
  38. vala_sources = [
  39. 'app.vala',
  40. 'app-window.vala',
  41. 'actions-popover.vala',
  42. 'archive-reader.vala',
  43. 'archive-writer.vala',
  44. 'collection.vala',
  45. 'collection-toolbar.vala',
  46. 'display-page.vala',
  47. 'display-toolbar.vala',
  48. 'display.vala',
  49. 'downloads-hub.vala',
  50. 'editable-entry.vala',
  51. 'i-properties-provider.vala',
  52. 'i-collection-view.vala',
  53. 'icon-view.vala',
  54. 'installer-media.vala',
  55. 'installed-media.vala',
  56. 'keys-input-popover.vala',
  57. 'libvirt-cloned-media.vala',
  58. 'libvirt-media.vala',
  59. 'iso-extractor.vala',
  60. 'icon-view-child.vala',
  61. 'libvirt-broker.vala',
  62. 'libvirt-machine.vala',
  63. 'libvirt-machine-properties.vala',
  64. 'list-view.vala',
  65. 'list-view-row.vala',
  66. 'machine.vala',
  67. 'machine-thumbnailer.vala',
  68. 'main.vala',
  69. 'media-manager.vala',
  70. 'resource-graph.vala',
  71. 'notification.vala',
  72. 'notificationbar.vala',
  73. 'os-database.vala',
  74. 'portals.vala',
  75. 'properties.vala',
  76. 'properties-window.vala',
  77. 'properties-page-widget.vala',
  78. 'properties-toolbar.vala',
  79. 'remote-machine.vala',
  80. 'search.vala',
  81. 'searchbar.vala',
  82. 'selectionbar.vala',
  83. 'selection-toolbar.vala',
  84. 'shared-folders.vala',
  85. 'config-editor.vala',
  86. 'transfer-info-row.vala',
  87. 'troubleshoot-view.vala',
  88. 'topbar.vala',
  89. 'ui.vala',
  90. 'unattended-installer.vala',
  91. 'unattended-file.vala',
  92. 'unattended-setup-box.vala',
  93. 'util-app.vala',
  94. 'vm-configurator.vala',
  95. 'vm-creator.vala',
  96. 'vm-importer.vala',
  97. 'vnc-display.vala',
  98. 'libvirt-vm-cloner.vala',
  99. 'libvirt-vm-importer.vala',
  100. 'welcome-tutorial.vala',
  101. 'welcome-tutorial-page.vala',
  102. 'downloader.vala',
  103. 'empty-boxes.vala',
  104. 'tracker-iso-query.vala',
  105. 'troubleshoot-log.vala',
  106. 'snapshot-list-row.vala',
  107. 'snapshots-property.vala',
  108. ]
  109. subdir('assistant')
  110. dependencies = [
  111. config_h,
  112. config_dep,
  113. libarchive_dep,
  114. dependency ('gobject-2.0', version: '>= 2.44'),
  115. dependency ('gtk+-3.0', version: '>= 3.22.20'),
  116. dependency ('gtk-vnc-2.0', version: '>= 0.4.4'),
  117. dependency ('gvncpulse-1.0'),
  118. dependency ('gtksourceview-4'),
  119. dependency ('libhandy-1', version: '>= 1.0.0'),
  120. dependency ('libosinfo-1.0', version: '>= 1.7.0'),
  121. dependency ('libsecret-1'),
  122. dependency ('libsoup-2.4', version: '>= 2.38'),
  123. dependency ('libusb-1.0', version: '>= 1.0.9'),
  124. dependency ('libvirt-gconfig-1.0', version: '>= 4.0.0'),
  125. dependency ('libvirt-gobject-1.0', version: '>= 4.0.0'),
  126. dependency ('libxml-2.0', version: '>= 2.7.8'),
  127. dependency ('tracker-sparql-3.0'),
  128. dependency ('webkit2gtk-4.0', version: '>= 2.26.0'),
  129. cc.find_library('m', required : false),
  130. valac.find_library ('gio-2.0-workaround', dirs: vapi_dir),
  131. valac.find_library ('linux'),
  132. valac.find_library ('posix'),
  133. ]
  134. spice = dependency ('spice-client-gtk-3.0', version: '>= 0.32')
  135. if spice.found ()
  136. vala_args += '--define=HAS_SPICE'
  137. dependencies += [
  138. spice,
  139. valac.find_library ('spice-client-gtk-3.0')
  140. ]
  141. vala_sources += [
  142. 'spice-display.vala',
  143. 'transfer-popover.vala'
  144. ]
  145. endif
  146. if get_option('rdp')
  147. vala_sources += ['rdp-display.vala']
  148. vala_args += '--define=HAVE_RDP'
  149. endif
  150. if get_option('flatpak')
  151. vala_args += '--define=FLATPAK'
  152. dependencies += dependency ('govf-0.1')
  153. if get_option('rdp')
  154. dependencies += dependency ('gtk-frdp-0.1')
  155. endif
  156. else
  157. dependencies += [
  158. dependency ('gudev-1.0', version: '>= 165'),
  159. ]
  160. if get_option('rdp')
  161. gtk_frdp = subproject(
  162. 'gtk-frdp',
  163. default_options: [
  164. 'package_subdir=' + meson.project_name()
  165. ]
  166. )
  167. dependencies += gtk_frdp.get_variable('gtk_frdp_vapi')
  168. endif
  169. libovf = subproject(
  170. 'libovf-glib',
  171. default_options: [
  172. 'package_subdir=' + meson.project_name()
  173. ]
  174. )
  175. dependencies += libovf.get_variable('govf_vapi')
  176. endif
  177. if get_option('gnome-os-uefi')
  178. vala_args += '--define=USE_UEFI'
  179. endif
  180. executable ('gnome-boxes', vala_sources + resources,
  181. include_directories: config_h_dir,
  182. vala_args: vala_args,
  183. c_args : c_args,
  184. dependencies: dependencies,
  185. link_with: libcommon,
  186. install: true,
  187. install_rpath: join_paths (get_option ('prefix'), get_option ('libdir'), 'gnome-boxes')
  188. )
  189. executable ('gnome-boxes-search-provider', 'gnome-boxes-search-provider.vala',
  190. include_directories: config_h_dir,
  191. vala_args: vala_args,
  192. c_args: c_args,
  193. dependencies: common_dependencies,
  194. link_with: libcommon,
  195. install: true,
  196. install_dir: get_option ('libexecdir')
  197. )