134 lines
4.7 KiB
Meson
134 lines
4.7 KiB
Meson
project('lite-xl',
|
|
['c'],
|
|
version : '2.1.8',
|
|
license : 'MIT',
|
|
meson_version : '>= 0.56',
|
|
default_options : [
|
|
'c_std=gnu11'
|
|
]
|
|
)
|
|
|
|
#===============================================================================
|
|
# Project version including git commit if possible
|
|
#===============================================================================
|
|
version = meson.project_version()
|
|
|
|
if get_option('buildtype') != 'release'
|
|
git_command = find_program('git', required : false)
|
|
|
|
if git_command.found()
|
|
git_commit = run_command(
|
|
[git_command, 'rev-parse', 'HEAD'],
|
|
check : false
|
|
).stdout().strip()
|
|
|
|
if git_commit != ''
|
|
version += ' (git-' + git_commit.substring(0, 8) + ')'
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
#===============================================================================
|
|
# Configuration
|
|
#===============================================================================
|
|
conf_data = configuration_data()
|
|
conf_data.set('PROJECT_BUILD_DIR', meson.current_build_dir())
|
|
conf_data.set('PROJECT_SOURCE_DIR', meson.current_source_dir())
|
|
conf_data.set('PROJECT_VERSION', version)
|
|
conf_data.set('PROJECT_ASSEMBLY_VERSION', meson.project_version() + '.0')
|
|
|
|
#===============================================================================
|
|
# Compiler Settings
|
|
#===============================================================================
|
|
cc = meson.get_compiler('c')
|
|
|
|
lite_includes = []
|
|
lite_cargs = [
|
|
'-DPCRE2_STATIC',
|
|
'-DLITE_PROJECT_VERSION_STR="@0@"'.format(version)
|
|
]
|
|
# On macos we need to use the SDL renderer to support retina displays
|
|
if get_option('renderer') or host_machine.system() == 'darwin'
|
|
lite_cargs += '-DLITE_USE_SDL_RENDERER'
|
|
endif
|
|
if get_option('arch_tuple') != ''
|
|
arch_tuple = get_option('arch_tuple')
|
|
else
|
|
arch_tuple = '@0@-@1@'.format(target_machine.cpu_family(), target_machine.system())
|
|
endif
|
|
lite_cargs += '-DLITE_ARCH_TUPLE="@0@"'.format(arch_tuple)
|
|
|
|
#===============================================================================
|
|
# Linker Settings
|
|
#===============================================================================
|
|
lite_link_args = []
|
|
if host_machine.system() == 'darwin'
|
|
lite_link_args += ['-framework', 'CoreServices', '-framework', 'Foundation']
|
|
endif
|
|
#===============================================================================
|
|
# Install Configuration
|
|
#===============================================================================
|
|
if get_option('portable') or host_machine.system() == 'windows'
|
|
lite_bindir = '/'
|
|
lite_docdir = '/doc'
|
|
lite_datadir = '/data'
|
|
configure_file(
|
|
input: 'resources' / 'windows' / 'lite-xl.exe.manifest.in',
|
|
output: 'lite-xl.exe.manifest',
|
|
configuration: conf_data
|
|
)
|
|
elif get_option('bundle') and host_machine.system() == 'darwin'
|
|
lite_cargs += '-DMACOS_USE_BUNDLE'
|
|
lite_bindir = 'Contents' / 'MacOS'
|
|
lite_docdir = 'Contents' / 'Resources'
|
|
lite_datadir = 'Contents' / 'Resources'
|
|
conf_data.set(
|
|
'CURRENT_YEAR',
|
|
run_command('date', '+%Y', capture: true).stdout().strip()
|
|
)
|
|
install_data('resources' / 'icons' / 'icon.icns', install_dir : 'Contents' / 'Resources')
|
|
configure_file(
|
|
input : 'resources' / 'macos' / 'Info.plist.in',
|
|
output : 'Info.plist',
|
|
configuration : conf_data,
|
|
install : true,
|
|
install_dir : 'Contents'
|
|
)
|
|
else
|
|
message()
|
|
lite_bindir = 'bin'
|
|
lite_docdir = get_option('datadir') / 'doc' / 'lite-xl'
|
|
lite_datadir = get_option('datadir') / 'lite-xl'
|
|
if host_machine.system() == 'linux'
|
|
install_data('resources' / 'icons' / 'lite-xl.svg',
|
|
install_dir : get_option('datadir') / 'icons' / 'hicolor' / 'scalable' / 'apps'
|
|
)
|
|
install_data('resources' / 'linux' / 'org.lite_xl.lite_xl.desktop',
|
|
install_dir : get_option('datadir') / 'applications'
|
|
)
|
|
install_data('resources' / 'linux' / 'org.lite_xl.lite_xl.appdata.xml',
|
|
install_dir : get_option('datadir') / 'metainfo'
|
|
)
|
|
endif
|
|
endif
|
|
|
|
install_data('licenses' / 'licenses.md', install_dir : lite_docdir)
|
|
|
|
install_subdir('docs' / 'api' , install_dir : lite_datadir, strip_directory: true)
|
|
install_subdir('data' / 'core' , install_dir : lite_datadir, exclude_files : 'start.lua')
|
|
foreach data_module : ['fonts', 'plugins', 'colors']
|
|
install_subdir(join_paths('data', data_module), install_dir : lite_datadir)
|
|
endforeach
|
|
|
|
configure_file(
|
|
input : 'data' / 'core' / 'start.lua',
|
|
output : 'start.lua',
|
|
configuration : conf_data,
|
|
install_dir : join_paths(lite_datadir, 'core'),
|
|
)
|
|
|
|
if not get_option('source-only')
|
|
subdir('src')
|
|
subdir('scripts')
|
|
endif
|