Files
qt-creator/share/qtcreator/templates/wizards/projects/cpplibrary/meson.build
Alexis Jeandet 77d7bb5014 Meson build plugin initial support
Most basic project management is implemented:
- Project config/build
- Build options accessible to user
- Lists most build targets
- Meson and Ninja added to kit setup
- Basic project file tree with files known by Meson
- Some basic meson and ninja process output parsing
- Some project templates

Missing features, that will come later:
- Configurable project tree layout
- Locators for Meson
- Build importer
- Access to Machine files for better user fine tuning
- ...

Fixes: QTCREATORBUG-18117
Change-Id: I2811e71562c113fb0fc6b6177bcf0698fa71ef63
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-06-08 09:55:17 +00:00

57 lines
1.4 KiB
Meson

project('%{ProjectName}', 'cpp',
@if %{IsStatic}
default_options : ['cpp_std=c++11', 'default_library=static'],
@else
default_options : ['cpp_std=c++11', 'default_library=shared'],
@endif
meson_version:'>=0.48')
@if '%{QtModule}' != 'none'
# Documentation: https://mesonbuild.com/Qt5-module.html
qt5 = import('qt5')
@if '%{QtModule}' == 'core'
qt5dep = dependency('qt5', modules : ['Core'])
@endif
@if '%{QtModule}' == 'gui'
qt5dep = dependency('qt5', modules : ['Core', 'Gui'])
@endif
@if '%{QtModule}' == 'widgets'
qt5dep = dependency('qt5', modules : ['Core', 'Gui', 'Widgets'])
@endif
@if %{HasTranslation}
translations = qt5.compile_translations(ts_files : '%{TsFileName}', build_by_default : true)
@endif
cpp_args = [
@if %{IsShared}
'-D%{LibraryDefine}'
@if %{IsQtPlugin}
,'-DQT_PLUGIN'
@endif
@else
@if %{IsQtPlugin}
'-DQT_STATICPLUGIN'
@endif
@endif
]
moc_files = qt5.preprocess(moc_headers : [
@if '%{Type}' === 'shared'
'%{GlobalHdrFileName}',
@endif
'%{HdrFileName}'],
moc_extra_arguments : cpp_args,
dependencies: [qt5dep])
@endif
library('%{ProjectName}', '%{SrcFileName}'
@if '%{QtModule}' != 'none'
, moc_files
, dependencies : [qt5dep]
, cpp_args : cpp_args
@endif
, install : true)