libui/meson.build

87 lines
2.3 KiB
Meson
Raw Normal View History

# 17 march 2019
libui_OS = target_machine.system()
libui_MSVC = meson.get_compiler('c').get_id() == 'msvc'
libui_languages = ['c', 'c++']
if libui_OS == 'darwin'
libui_languages += ['objc']
endif
libui_default_options = [
'default_library=shared', # build shared libraries by default
]
libui_forced_options = {
'warning_level': '3', # always max warnings
'b_pch': 'false', # we don't want precompiled headers
'b_staticpic': 'true', # use PIC even for static libraries
'c_std': 'c99', # strict C99
'cpp_std': 'c++11', # strict C++11
}
foreach name, value : libui_forced_options
libui_default_options += [name + '=' + value]
endforeach
project('libui', libui_languages,
default_options: libui_default_options,
license: 'MIT')
foreach name, value : libui_forced_options
actual = '@0@'.format(get_option(name))
if actual != value
error('sorry, but libui requires that option ' + name + ' has the default value ' + value)
endif
endforeach
libui_mode = get_option('default_library')
if libui_mode == 'both'
error('sorry, but libui does not support building both shared and static libraries at the same time, because Windows resource file rules differ between the two')
endif
if libui_OS == 'windows' and libui_mode == 'shared' and not libui_MSVC
error('sorry, but libui currently does not support building a shared library with MinGW; use -Ddefault_library=static instead')
endif
libui_deps = []
libui_libversion = ''
libui_rpath = ''
if libui_OS == 'windows'
# TODO c_winlibs and cpp_winlibs are the windows libraries
elif libui_OS == 'darwin'
# TODO libraries
libui_libversion = 'A'
# the / is required by some older versions of OS X
libui_rpath = '@executable_path/'
# TODO min version 10.8
else
gtk = dependency('gtk+-3.0',
version: '>=3.10.0',
required: true)
libui_deps += [gtk]
libui_libversion = '0'
libui_rpath = '$ORIGIN'
endif
libui_sources = []
libui_extra_libs = []
subdir('common')
if libui_OS == 'windows'
subdir('windows')
install_headers('ui_windows.h')
elif libui_OS == 'darwin'
subdir('darwin')
install_headers('ui_darwin.h')
else
subdir('unix')
install_headers('ui_unix.h')
endif
libui_libui = library('ui', libui_sources,
dependencies: libui_deps,
build_rpath: libui_rpath,
install_rpath: libui_rpath,
install: true,
gnu_symbol_visibility: 'hidden')
install_headers('ui.h')
# TODO test
# TODO examples