2017-11-25 20:45:11 +01:00
|
|
|
project('taisei', 'c',
|
|
|
|
license : 'MIT',
|
2019-01-24 21:21:08 +01:00
|
|
|
version : 'v1.3-dev',
|
2018-05-15 02:33:38 +02:00
|
|
|
meson_version : '>=0.45.0',
|
2017-11-25 20:45:11 +01:00
|
|
|
default_options : [
|
2018-06-19 11:51:24 +02:00
|
|
|
'c_std=c11',
|
2017-11-25 20:45:11 +01:00
|
|
|
|
|
|
|
# You may want to change these for a debug build dir
|
|
|
|
'buildtype=release',
|
|
|
|
'strip=true',
|
|
|
|
'b_lto=true',
|
2019-01-24 21:21:08 +01:00
|
|
|
'b_ndebug=if-release',
|
2017-11-25 20:45:11 +01:00
|
|
|
]
|
|
|
|
)
|
2017-11-12 01:28:30 +01:00
|
|
|
|
|
|
|
cc = meson.get_compiler('c')
|
2017-11-27 14:27:32 +01:00
|
|
|
python3 = import('python3').find_python()
|
2019-01-24 21:21:08 +01:00
|
|
|
macos_app_bundle = get_option('macos_bundle') and host_machine.system() == 'darwin'
|
2017-11-12 01:28:30 +01:00
|
|
|
|
2019-01-24 21:21:08 +01:00
|
|
|
subdir('scripts')
|
2017-11-25 20:45:11 +01:00
|
|
|
|
2019-01-24 21:21:08 +01:00
|
|
|
config = configuration_data()
|
2017-11-12 01:28:30 +01:00
|
|
|
|
2019-01-24 21:21:08 +01:00
|
|
|
taisei_c_args = cc.get_supported_arguments(
|
|
|
|
'-Wall',
|
|
|
|
'-Wpedantic',
|
2019-02-02 12:25:06 +01:00
|
|
|
'-Werror=assume',
|
2019-01-24 21:21:08 +01:00
|
|
|
'-Werror=implicit-function-declaration',
|
|
|
|
|
|
|
|
#
|
|
|
|
# Keep the rest sorted
|
|
|
|
#
|
|
|
|
|
|
|
|
'-Wabsolute-value',
|
|
|
|
'-Wcast-align',
|
|
|
|
'-Wcast-align=strict',
|
|
|
|
'-Wclobbered',
|
|
|
|
'-Wduplicated-branches',
|
|
|
|
'-Wduplicated-cond',
|
|
|
|
'-Wfloat-overflow-conversion',
|
|
|
|
'-Wfloat-zero-conversion',
|
|
|
|
'-Wfor-loop-analysis',
|
|
|
|
'-Wformat-pedantic',
|
|
|
|
'-Wformat-security',
|
|
|
|
'-Wgcc-compat',
|
|
|
|
'-Wgnu',
|
|
|
|
'-Wignored-qualifiers',
|
|
|
|
'-Wimplicit-fallthrough',
|
|
|
|
'-Winit-self',
|
|
|
|
'-Wlogical-op',
|
|
|
|
'-Wmissing-prototypes',
|
|
|
|
'-Wno-long-long',
|
|
|
|
'-Wnull-dereference',
|
|
|
|
'-Wparentheses',
|
|
|
|
'-Wshadow=compatible-local',
|
|
|
|
'-Wsometimes-uninitialized',
|
|
|
|
'-Wstrict-prototypes',
|
|
|
|
'-Wtype-limits',
|
|
|
|
'-Wunneeded-internal-declaration',
|
|
|
|
'-Wunreachable-code',
|
|
|
|
'-Wunreachable-code-loop-increment',
|
|
|
|
)
|
2017-11-25 20:45:11 +01:00
|
|
|
|
2017-11-12 01:28:30 +01:00
|
|
|
static = get_option('static')
|
|
|
|
|
2018-10-19 01:51:59 +02:00
|
|
|
dep_freetype = dependency('freetype2', required : true, static : static)
|
|
|
|
dep_png = dependency('libpng', version : '>=1.5', required : true, static : static)
|
|
|
|
dep_sdl2 = dependency('sdl2', version : '>=2.0.5', required : true, static : static)
|
|
|
|
dep_sdl2_mixer = dependency('SDL2_mixer', required : false, static : static)
|
|
|
|
dep_webp = dependency('libwebp', version : '>=0.5', required : false, static : static)
|
|
|
|
dep_webpdecoder = dependency('libwebpdecoder', version : '>=0.5', required : false, static : static)
|
|
|
|
dep_zip = dependency('libzip', version : '>=1.0', required : false, static : static)
|
|
|
|
dep_zlib = dependency('zlib', required : true, static : static)
|
2018-10-18 23:12:46 +02:00
|
|
|
|
2018-10-19 01:51:59 +02:00
|
|
|
dep_m = cc.find_library('m', required : false)
|
2017-11-12 01:28:30 +01:00
|
|
|
|
2018-06-30 22:11:54 +02:00
|
|
|
dep_cglm = subproject('cglm').get_variable('cglm_dep')
|
|
|
|
dep_glad = subproject('glad').get_variable('glad_dep')
|
|
|
|
|
2018-04-12 16:08:48 +02:00
|
|
|
taisei_deps = [
|
2018-10-18 23:12:46 +02:00
|
|
|
dep_cglm,
|
2018-06-29 23:36:51 +02:00
|
|
|
dep_freetype,
|
2018-04-12 16:08:48 +02:00
|
|
|
dep_m,
|
2018-10-18 23:12:46 +02:00
|
|
|
dep_png,
|
|
|
|
dep_sdl2,
|
|
|
|
dep_zlib,
|
2018-06-30 22:11:54 +02:00
|
|
|
# don't add glad here
|
2018-04-12 16:08:48 +02:00
|
|
|
]
|
2017-11-12 01:28:30 +01:00
|
|
|
|
2018-10-19 01:51:59 +02:00
|
|
|
if dep_webpdecoder.found()
|
|
|
|
taisei_deps += dep_webpdecoder
|
|
|
|
elif dep_webp.found()
|
|
|
|
warning('libwebpdecoder not found, will link against libwebp instead')
|
|
|
|
taisei_deps += dep_webp
|
|
|
|
else
|
|
|
|
error('libwebpdecoder or libwebp is required, neither found')
|
|
|
|
endif
|
|
|
|
|
2017-11-12 01:28:30 +01:00
|
|
|
if host_machine.system() == 'windows'
|
|
|
|
taisei_deps += cc.find_library('shlwapi')
|
|
|
|
endif
|
|
|
|
|
2019-01-24 21:21:08 +01:00
|
|
|
package_data = get_option('package_data')
|
|
|
|
enable_zip = get_option('enable_zip')
|
|
|
|
package_data = (package_data == 'auto' ? enable_zip : package_data == 'true')
|
|
|
|
|
|
|
|
if enable_zip
|
|
|
|
if not dep_zip.found()
|
|
|
|
error('ZIP support enabled but libzip not found')
|
|
|
|
endif
|
|
|
|
|
|
|
|
taisei_deps += dep_zip
|
|
|
|
endif
|
|
|
|
|
|
|
|
if package_data and not enable_zip
|
|
|
|
error('ZIP support must be enabled for data packaging to work')
|
|
|
|
endif
|
|
|
|
|
2017-11-12 01:28:30 +01:00
|
|
|
if dep_sdl2_mixer.found() and get_option('enable_audio') != 'false'
|
|
|
|
taisei_deps += dep_sdl2_mixer
|
|
|
|
elif get_option('enable_audio') == 'true'
|
|
|
|
error('Audio support enabled but SDL2_mixer not found')
|
|
|
|
endif
|
|
|
|
|
2017-11-25 20:45:11 +01:00
|
|
|
config.set('TAISEI_BUILDCONF_USE_ZIP', taisei_deps.contains(dep_zip))
|
2017-11-12 01:28:30 +01:00
|
|
|
|
2017-11-25 20:45:11 +01:00
|
|
|
have_posix = cc.has_header_symbol('unistd.h', '_POSIX_VERSION')
|
|
|
|
have_vla = not cc.has_header_symbol('unistd.h', '__STDC_NO_VLA__')
|
|
|
|
have_complex = not cc.has_header_symbol('unistd.h', '__STDC_NO_COMPLEX__')
|
|
|
|
have_backtrace = cc.has_header_symbol('execinfo.h', 'backtrace')
|
2018-05-28 10:10:41 +02:00
|
|
|
have_timespec = cc.has_header_symbol('time.h', 'timespec_get')
|
2017-11-12 01:28:30 +01:00
|
|
|
|
|
|
|
if not (have_vla and have_complex)
|
|
|
|
error('Your C implementation needs to support complex numbers and variable-length arrays.')
|
|
|
|
endif
|
|
|
|
|
2018-05-28 10:10:41 +02:00
|
|
|
config.set('TAISEI_BUILDCONF_HAVE_TIMESPEC', have_timespec)
|
2019-01-09 04:25:10 +01:00
|
|
|
config.set('TAISEI_BUILDCONF_HAVE_INT128', cc.sizeof('__int128') == 16)
|
|
|
|
config.set('TAISEI_BUILDCONF_HAVE_LONG_DOUBLE', cc.sizeof('long double') > 8)
|
2018-05-28 10:10:41 +02:00
|
|
|
|
2017-11-27 14:27:32 +01:00
|
|
|
if macos_app_bundle
|
|
|
|
bundle_dir = 'Taisei.app'
|
|
|
|
datadir = join_paths(bundle_dir, 'Contents', 'Resources')
|
|
|
|
bindir = join_paths(bundle_dir, 'Contents', 'MacOS')
|
|
|
|
config.set('TAISEI_BUILDCONF_RELATIVE_DATA_PATH', true)
|
|
|
|
|
|
|
|
# arguments must be strings...
|
|
|
|
meson.add_install_script(
|
|
|
|
python3.path(),
|
|
|
|
join_paths(meson.source_root(), 'scripts', 'macos-install-dylibs.py'),
|
2019-01-24 21:21:08 +01:00
|
|
|
':'.join(meson.get_cross_property('macos_lib_path', [])),
|
|
|
|
':'.join(meson.get_cross_property('macos_tool_path', [])),
|
|
|
|
meson.get_cross_property('macos_tool_prefix', ''),
|
2017-11-27 14:27:32 +01:00
|
|
|
)
|
2017-11-12 01:28:30 +01:00
|
|
|
else
|
2017-11-27 14:27:32 +01:00
|
|
|
datadir = get_option('datadir')
|
|
|
|
|
|
|
|
if get_option('install_relative') == 'auto'
|
|
|
|
config.set('TAISEI_BUILDCONF_RELATIVE_DATA_PATH', host_machine.system() == 'windows')
|
|
|
|
else
|
|
|
|
config.set('TAISEI_BUILDCONF_RELATIVE_DATA_PATH', get_option('install_relative') == 'true')
|
|
|
|
endif
|
2017-12-21 05:52:25 +01:00
|
|
|
|
|
|
|
if config.get('TAISEI_BUILDCONF_RELATIVE_DATA_PATH')
|
OpenGL ES 3.0 rendering backend (#148)
* First steps towards shader transpilation
Needs to be manually enabled via -Dshader_transpiler=true.
Requires shaderc. https://github.com/google/shaderc
Not yet functional due to missing SPIRV-Cross integration. SPIRV-Cross
currently does not have an official C API, and crossc is too minimal to
be useful. The current plan is to extend crossc and vendor it, while
also sending PRs upstream.
* Integrate crossc; shader transpilation for GLES now works
* fix leak
* gles30 backend now playable on Mesa with 3.2 context
Some rendering issues are present. Identified so far:
- Marisa's lasers are invisible
- Death effect looks wrong
Also, a small pixmap manipulation library has been written, and the
texture uploading API redesigned around it.
* fix marisa lasers in GLES (uniform name clashed with builtin)
* fix player death effect in GLES (another name clash)
* Dump ANGLE's translated shader code in debug log
* fix screenshots
* Drop support for triangle fans, switch to strips
Fans offer no advantage over strips, and they've been removed in D3D10+,
so ANGLE has to emulate them.
* crude workaround for an ANGLE bug
* Re-enable GL debug labels, fix an issue with them that affected ANGLE (but was always technically a bug)
* fix race condition in shaderc initialization
* New SDL_RWops interface for vertex buffers
* Optimize VBO streaming via buffering updates
Measurable performance improvement even with the main gl33 renderer,
drastic improvement with ANGLE.
* Fix the depth texture binding problem under ANGLE
Apparently it hates GL_DEPTH_COMPONENT16 for some reason. Sized internal
formats are not supported in GLES 2.0 anyway, so not using them is
probably a good idea.
* fix GLES2.0 segfault (the backend still doesn't work, though)
* dump GL extensions at info log level, not debug
* get around a Mesa bug; more correct texture format table for GLES2
* Correct GLES3 texture format table according to the spec
Not a Mesa bug after all
* require crossc>=1.5.0, fallback to subproject
* Request at least 8bit per color channel in GL backends
* Forbid lto for static windows builds with shader_transpiler=true
* fix edge case segfault
* Add basic ANGLE bundling support to the build system
Windows only, and no NSIS support yet
* Fix various windows-related build system and installer brokenness
* Disable gles backends by default
* update documentation
2018-10-02 00:36:10 +02:00
|
|
|
bindir = '.'
|
2017-12-21 05:52:25 +01:00
|
|
|
else
|
|
|
|
bindir = get_option('bindir')
|
|
|
|
endif
|
2017-11-12 01:28:30 +01:00
|
|
|
endif
|
|
|
|
|
2017-11-28 14:46:28 +01:00
|
|
|
if get_option('install_freedesktop') == 'auto'
|
|
|
|
install_xdg = not config.get('TAISEI_BUILDCONF_RELATIVE_DATA_PATH')
|
|
|
|
else
|
|
|
|
install_xdg = get_option('install_freedesktop') == 'true'
|
|
|
|
endif
|
|
|
|
|
2017-11-25 20:45:11 +01:00
|
|
|
if config.get('TAISEI_BUILDCONF_RELATIVE_DATA_PATH')
|
2017-11-27 14:27:32 +01:00
|
|
|
data_path = 'data'
|
2017-11-28 14:46:28 +01:00
|
|
|
doc_path = ''
|
|
|
|
xdg_path = 'freedesktop.org'
|
2017-11-27 14:27:32 +01:00
|
|
|
|
2017-12-21 05:52:25 +01:00
|
|
|
# This is relative to SDL_GetBasePath()
|
|
|
|
config.set_quoted('TAISEI_BUILDCONF_DATA_PATH', data_path)
|
2017-11-12 01:28:30 +01:00
|
|
|
|
2017-12-21 05:52:25 +01:00
|
|
|
if macos_app_bundle
|
2017-11-27 14:27:32 +01:00
|
|
|
# Actual installation path
|
|
|
|
data_path = join_paths(datadir, data_path)
|
2017-11-28 14:46:28 +01:00
|
|
|
|
|
|
|
# I don't know why would you do that, but more power to you
|
|
|
|
xdg_path = join_paths(datadir, xdg_path)
|
2017-11-12 01:28:30 +01:00
|
|
|
endif
|
|
|
|
else
|
2017-11-27 14:27:32 +01:00
|
|
|
data_path = join_paths(datadir, 'taisei')
|
|
|
|
config.set_quoted('TAISEI_BUILDCONF_DATA_PATH', join_paths(get_option('prefix'), data_path))
|
|
|
|
doc_path = join_paths(datadir, 'doc', 'taisei')
|
2017-12-21 04:49:44 +01:00
|
|
|
xdg_path = datadir
|
2017-11-12 01:28:30 +01:00
|
|
|
endif
|
|
|
|
|
2018-04-12 16:08:48 +02:00
|
|
|
is_debug_build = get_option('buildtype').startswith('debug')
|
2019-01-25 01:02:56 +01:00
|
|
|
is_developer_build = (get_option('developer') == 'auto' ? is_debug_build : get_option('developer') == 'true')
|
2017-11-12 01:28:30 +01:00
|
|
|
|
2019-01-25 01:02:56 +01:00
|
|
|
config.set('TAISEI_BUILDCONF_DEVELOPER', is_developer_build)
|
2018-04-12 16:08:48 +02:00
|
|
|
config.set('TAISEI_BUILDCONF_LOG_ENABLE_BACKTRACE', is_debug_build and have_backtrace)
|
|
|
|
config.set('TAISEI_BUILDCONF_LOG_FATAL_MSGBOX', host_machine.system() == 'windows' or host_machine.system() == 'darwin')
|
2018-01-18 18:27:03 +01:00
|
|
|
config.set('TAISEI_BUILDCONF_DEBUG_OPENGL', get_option('debug_opengl'))
|
|
|
|
|
2017-11-12 01:28:30 +01:00
|
|
|
if host_machine.system() == 'windows'
|
2017-12-18 19:26:17 +01:00
|
|
|
custom_target('COPYING.txt',
|
2019-01-24 21:21:08 +01:00
|
|
|
command : [eolconv_command, host_eol_style, '@INPUT@', '@OUTPUT@'],
|
2017-12-18 19:26:17 +01:00
|
|
|
input : 'COPYING',
|
|
|
|
output : 'COPYING.txt',
|
|
|
|
install : true,
|
|
|
|
install_dir : doc_path
|
|
|
|
)
|
OpenGL ES 3.0 rendering backend (#148)
* First steps towards shader transpilation
Needs to be manually enabled via -Dshader_transpiler=true.
Requires shaderc. https://github.com/google/shaderc
Not yet functional due to missing SPIRV-Cross integration. SPIRV-Cross
currently does not have an official C API, and crossc is too minimal to
be useful. The current plan is to extend crossc and vendor it, while
also sending PRs upstream.
* Integrate crossc; shader transpilation for GLES now works
* fix leak
* gles30 backend now playable on Mesa with 3.2 context
Some rendering issues are present. Identified so far:
- Marisa's lasers are invisible
- Death effect looks wrong
Also, a small pixmap manipulation library has been written, and the
texture uploading API redesigned around it.
* fix marisa lasers in GLES (uniform name clashed with builtin)
* fix player death effect in GLES (another name clash)
* Dump ANGLE's translated shader code in debug log
* fix screenshots
* Drop support for triangle fans, switch to strips
Fans offer no advantage over strips, and they've been removed in D3D10+,
so ANGLE has to emulate them.
* crude workaround for an ANGLE bug
* Re-enable GL debug labels, fix an issue with them that affected ANGLE (but was always technically a bug)
* fix race condition in shaderc initialization
* New SDL_RWops interface for vertex buffers
* Optimize VBO streaming via buffering updates
Measurable performance improvement even with the main gl33 renderer,
drastic improvement with ANGLE.
* Fix the depth texture binding problem under ANGLE
Apparently it hates GL_DEPTH_COMPONENT16 for some reason. Sized internal
formats are not supported in GLES 2.0 anyway, so not using them is
probably a good idea.
* fix GLES2.0 segfault (the backend still doesn't work, though)
* dump GL extensions at info log level, not debug
* get around a Mesa bug; more correct texture format table for GLES2
* Correct GLES3 texture format table according to the spec
Not a Mesa bug after all
* require crossc>=1.5.0, fallback to subproject
* Request at least 8bit per color channel in GL backends
* Forbid lto for static windows builds with shader_transpiler=true
* fix edge case segfault
* Add basic ANGLE bundling support to the build system
Windows only, and no NSIS support yet
* Fix various windows-related build system and installer brokenness
* Disable gles backends by default
* update documentation
2018-10-02 00:36:10 +02:00
|
|
|
|
|
|
|
if angle_enabled
|
|
|
|
install_data(
|
|
|
|
get_option('angle_libgles'),
|
|
|
|
get_option('angle_libegl'),
|
|
|
|
install_dir : join_paths(bindir, 'ANGLE'),
|
|
|
|
)
|
|
|
|
endif
|
2017-11-12 01:28:30 +01:00
|
|
|
else
|
|
|
|
install_data('COPYING', install_dir : doc_path)
|
OpenGL ES 3.0 rendering backend (#148)
* First steps towards shader transpilation
Needs to be manually enabled via -Dshader_transpiler=true.
Requires shaderc. https://github.com/google/shaderc
Not yet functional due to missing SPIRV-Cross integration. SPIRV-Cross
currently does not have an official C API, and crossc is too minimal to
be useful. The current plan is to extend crossc and vendor it, while
also sending PRs upstream.
* Integrate crossc; shader transpilation for GLES now works
* fix leak
* gles30 backend now playable on Mesa with 3.2 context
Some rendering issues are present. Identified so far:
- Marisa's lasers are invisible
- Death effect looks wrong
Also, a small pixmap manipulation library has been written, and the
texture uploading API redesigned around it.
* fix marisa lasers in GLES (uniform name clashed with builtin)
* fix player death effect in GLES (another name clash)
* Dump ANGLE's translated shader code in debug log
* fix screenshots
* Drop support for triangle fans, switch to strips
Fans offer no advantage over strips, and they've been removed in D3D10+,
so ANGLE has to emulate them.
* crude workaround for an ANGLE bug
* Re-enable GL debug labels, fix an issue with them that affected ANGLE (but was always technically a bug)
* fix race condition in shaderc initialization
* New SDL_RWops interface for vertex buffers
* Optimize VBO streaming via buffering updates
Measurable performance improvement even with the main gl33 renderer,
drastic improvement with ANGLE.
* Fix the depth texture binding problem under ANGLE
Apparently it hates GL_DEPTH_COMPONENT16 for some reason. Sized internal
formats are not supported in GLES 2.0 anyway, so not using them is
probably a good idea.
* fix GLES2.0 segfault (the backend still doesn't work, though)
* dump GL extensions at info log level, not debug
* get around a Mesa bug; more correct texture format table for GLES2
* Correct GLES3 texture format table according to the spec
Not a Mesa bug after all
* require crossc>=1.5.0, fallback to subproject
* Request at least 8bit per color channel in GL backends
* Forbid lto for static windows builds with shader_transpiler=true
* fix edge case segfault
* Add basic ANGLE bundling support to the build system
Windows only, and no NSIS support yet
* Fix various windows-related build system and installer brokenness
* Disable gles backends by default
* update documentation
2018-10-02 00:36:10 +02:00
|
|
|
|
|
|
|
if angle_enabled
|
|
|
|
error('install_angle is only available for Windows targets at the moment')
|
|
|
|
endif
|
2017-11-12 01:28:30 +01:00
|
|
|
endif
|
|
|
|
|
2017-11-27 14:27:32 +01:00
|
|
|
systype = (have_posix ? 'POSIX (@0@)' : '@0@').format(host_machine.system())
|
|
|
|
systype = '@0@, @1@, @2@'.format(systype, host_machine.cpu_family(), host_machine.cpu())
|
|
|
|
|
2019-01-24 21:21:08 +01:00
|
|
|
if meson.is_cross_build()
|
|
|
|
systype = '@0@ (cross-compiling)'.format(systype)
|
|
|
|
endif
|
|
|
|
|
2017-11-12 01:28:30 +01:00
|
|
|
summary = '''
|
|
|
|
|
|
|
|
Summary:
|
2017-11-27 14:27:32 +01:00
|
|
|
Taisei version: @9@
|
|
|
|
|
2017-11-25 20:45:11 +01:00
|
|
|
System type: @0@
|
|
|
|
Audio enabled: @1@
|
|
|
|
Package data: @2@
|
2017-11-12 01:28:30 +01:00
|
|
|
|
|
|
|
Relative install paths: @3@
|
2017-11-25 20:45:11 +01:00
|
|
|
Prefix: @4@
|
|
|
|
Executables: @5@
|
|
|
|
Data: @6@
|
|
|
|
Documentation: @7@
|
2017-11-12 01:28:30 +01:00
|
|
|
|
2017-11-25 20:45:11 +01:00
|
|
|
Build type: @8@
|
2017-11-12 01:28:30 +01:00
|
|
|
'''.format(
|
|
|
|
systype,
|
|
|
|
taisei_deps.contains(dep_sdl2_mixer),
|
|
|
|
taisei_deps.contains(dep_zip),
|
2017-11-25 20:45:11 +01:00
|
|
|
config.get('TAISEI_BUILDCONF_RELATIVE_DATA_PATH'),
|
2017-11-12 01:28:30 +01:00
|
|
|
get_option('prefix'),
|
2017-11-28 14:46:28 +01:00
|
|
|
|
|
|
|
# the $ is intentional
|
|
|
|
join_paths('$prefix', bindir),
|
|
|
|
join_paths('$prefix', data_path),
|
|
|
|
join_paths('$prefix', doc_path),
|
|
|
|
|
2017-11-27 14:27:32 +01:00
|
|
|
get_option('buildtype'),
|
|
|
|
taisei_version_string
|
2017-11-12 01:28:30 +01:00
|
|
|
)
|
|
|
|
|
2018-04-12 16:08:48 +02:00
|
|
|
version_deps = []
|
|
|
|
|
2017-11-12 01:28:30 +01:00
|
|
|
subdir('misc')
|
2018-04-12 16:08:48 +02:00
|
|
|
subdir('external')
|
|
|
|
subdir('resources')
|
2017-11-12 01:28:30 +01:00
|
|
|
subdir('doc')
|
|
|
|
subdir('xdg')
|
2018-04-12 16:08:48 +02:00
|
|
|
subdir('atlas')
|
|
|
|
subdir('src')
|
2017-11-25 20:45:11 +01:00
|
|
|
|
|
|
|
message(summary)
|