From 3457082b1bf9f456842e08b1e53d133df74c0190 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 24 Mar 2019 17:26:15 -0400 Subject: [PATCH] Set up examples meson.build. --- examples/meson.build | 65 ++++++++++++++++++++++++++++++++++++++++++++ meson.build | 2 +- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 examples/meson.build diff --git a/examples/meson.build b/examples/meson.build new file mode 100644 index 00000000..2d7594c8 --- /dev/null +++ b/examples/meson.build @@ -0,0 +1,65 @@ +# 24 march 2019 + +libui_example_include_directories = libui_base_include_directories + [include_directories('.')] + +libui_example_sources = [] +libui_example_link_args = [] +libui_example_cpp_extra_args = [] +if libui_OS == 'windows' + libui_example_manifest = 'example.manifest' + if libui_mode == 'static' + libui_example_manifest = 'example.static.manifest' + endif + libui_example_sources += [ + windows.compile_resources('resources.rc', + args: libui_manifest_args, + depend_files: [libui_example_manifest], + include_directories: libui_example_include_directories), + ] + # because Microsoft's toolchain is dumb + if libui_MSVC + libui_example_link_args += ['/ENTRY:mainCRTStartup'] + endif +elif libui_OS == 'darwin' + # since we use a deployment target of 10.8, the non-C++11-compliant libstdc++ is chosen by default; we need C++11 + # see issue #302 for more details + libui_example_cpp_extra_args += ['--stdlib=libc++'] +endif + +libui_examples = { + 'controlgallery': { + 'sources': ['controlgallery/main.c'], + }, + 'histogram': { + 'sources': ['histogram/main.c'], + }, + 'cpp-multithread': { + 'sources': ['cpp-multithread/main.cpp'], + 'deps': [ + dependency('threads', + required: true), + ], + 'cpp_args': libui_example_cpp_extra_args, + 'link_args': libui_example_cpp_extra_args, + }, + 'drawtext': { + 'sources': ['drawtext/main.c'], + }, + 'timer': { + 'sources': ['timer/main.c'], + }, + 'datetime': { + 'sources': ['datetime/main.c'], + }, +} +foreach name, args : libui_examples + executable(name, args['sources'] + libui_example_sources, + include_directories: libui_example_include_directories, + dependencies: args.get('deps', []) + libui_binary_deps, + link_with: libui_libui, + cpp_args: args.get('cpp_args', []), + link_args: args.get('link_args', []) + libui_example_link_args, + build_by_default: false, + gui_app: false, + install: false) +endforeach diff --git a/meson.build b/meson.build index 23d36405..2ad41a3f 100644 --- a/meson.build +++ b/meson.build @@ -166,4 +166,4 @@ if libui_mode == 'static' libui_binary_deps = libui_deps endif subdir('test') -# TODO examples +subdir('examples')