# Copyright 2022 David Robillard # SPDX-License-Identifier: 0BSD OR GPL-3.0-or-later ################ # Dependencies # ################ gui_defines = platform_defines glibmm_dep = dependency( 'glibmm-2.4', include_type: 'system', required: get_option('gui'), version: '>= 2.14.0', ) gthread_dep = dependency( 'gthread-2.0', include_type: 'system', required: get_option('gui'), version: '>= 2.14.0', ) gtkmm_dep = dependency( 'gtkmm-2.4', include_type: 'system', required: get_option('gui'), version: '>= 2.14.0', ) ganv_dep = dependency( 'ganv-1', fallback: ['ganv', 'ganv_dep'], required: get_option('gui'), version: '>= 1.5.2', ) webkit_dep = dependency( 'webkit-1.0', include_type: 'system', required: false, version: '>= 1.4.0', ) build_gui = ( glibmm_dep.found() and gthread_dep.found() and gtkmm_dep.found() and ganv_dep.found() ) if webkit_dep.found() gui_defines += ['-DHAVE_WEBKIT=1'] else gui_defines += ['-DHAVE_WEBKIT=0'] endif ########## # Module # ########## if build_gui gui_sources = files( 'App.cpp', 'Arc.cpp', 'BreadCrumbs.cpp', 'ConnectWindow.cpp', 'GraphBox.cpp', 'GraphCanvas.cpp', 'GraphPortModule.cpp', 'GraphTreeWindow.cpp', 'GraphView.cpp', 'GraphWindow.cpp', 'LoadGraphWindow.cpp', 'LoadPluginWindow.cpp', 'MessagesWindow.cpp', 'NewSubgraphWindow.cpp', 'NodeMenu.cpp', 'NodeModule.cpp', 'ObjectMenu.cpp', 'PluginMenu.cpp', 'Port.cpp', 'PortMenu.cpp', 'PropertiesWindow.cpp', 'RDFS.cpp', 'RenameWindow.cpp', 'Style.cpp', 'SubgraphModule.cpp', 'ThreadedLoader.cpp', 'URIEntry.cpp', 'WidgetFactory.cpp', 'WindowFactory.cpp', 'ingen_gui.cpp', ) gui_dependencies = [ boost_dep, ganv_dep, glibmm_dep, gthread_dep, gtkmm_dep, ingen_client_dep, ingen_dep, lilv_dep, raul_dep, sigcpp_dep, suil_dep, thread_dep, webkit_dep, ] gui_suppressions = [] if cpp.get_id() == 'clang' gui_suppressions += [ '-Wno-reserved-identifier', # Ganv ] endif gui_suppressions = cpp.get_supported_arguments(gui_suppressions) gui_suppressions += cpp_suppressions gui_args = gui_suppressions + gui_defines + ['-DINGEN_GUI_INTERNAL'] libingen_gui = shared_library( 'ingen_gui', gui_sources, cpp_args: gui_args, dependencies: gui_dependencies, gnu_symbol_visibility: 'hidden', implicit_include_directories: false, include_directories: ingen_include_dirs, install: true, install_dir: ingen_module_dir, ) ingen_gui_dep = declare_dependency( dependencies: gui_dependencies, link_with: libingen_gui, ) ########## # LV2 UI # ########## ingen_gui_lv2 = shared_library( 'ingen_gui_lv2', files('ingen_gui_lv2.cpp'), cpp_args: gui_args, dependencies: [ingen_gui_dep], gnu_symbol_visibility: 'hidden', implicit_include_directories: false, include_directories: ingen_include_dirs, install: true, install_dir: lv2dir / 'ingen.lv2', ) ############### # Shared Data # ############### config = configuration_data() config.set('INGEN_VERSION', meson.project_version()) configure_file( configuration: config, input: files('ingen_gui.ui.in'), install: true, install_dir: ingen_data_dir, output: 'ingen_gui.ui', ) configure_file( copy: true, input: files('ingen_style.rc'), install: true, install_dir: ingen_data_dir, output: '@PLAINNAME@', ) endif