123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- diff --git a/meson.build b/meson.build
- index 024f1fb..b2fccd7 100644
- --- a/meson.build
- +++ b/meson.build
- @@ -277,18 +277,25 @@ mcfgthread_version_o = import('windows').compile_resources(
- args: [ '-I.', '-c65001' ],
- depend_files: [ 'mcfgthread/version.h.in', 'mcfgthread/version.manifest' ])
-
- -lib_mcfgthread_dll = shared_library('mcfgthread',
- - c_pch: 'mcfgthread/xprecompiled.h',
- - c_args: [ '-ffreestanding', '-fasynchronous-unwind-tables', '-DDLL_EXPORT' ],
- - link_args: [ '-nostdlib', '-Wl,--entry,__MCF_dll_startup@@Z',
- - '-Wl,--enable-auto-image-base', '-Wl,--subsystem,windows:6.1',
- - '-Wl,--exclude-all-symbols', '-Wl,--kill-at' ],
- - sources: [ mcfgthread_src, mcfgthread_version_o ],
- - dependencies: [ dep_kernel32, dep_ntdll ],
- - soversion: ver.get('abi_major'),
- - version: '.'.join([ ver.get('abi_major'), ver.get('abi_minor'), '0' ]),
- - install: true)
- +if get_option('default_library') == 'shared'
- + lib_mcfgthread_dll = shared_library('mcfgthread',
- + c_pch: 'mcfgthread/xprecompiled.h',
- + c_args: [ '-ffreestanding', '-fasynchronous-unwind-tables', '-DDLL_EXPORT' ],
- + link_args: [ '-nostdlib', '-Wl,--entry,__MCF_dll_startup@@Z',
- + '-Wl,--enable-auto-image-base', '-Wl,--subsystem,windows:6.1',
- + '-Wl,--exclude-all-symbols', '-Wl,--kill-at' ],
- + sources: [ mcfgthread_src, mcfgthread_version_o ],
- + dependencies: [ dep_kernel32, dep_ntdll ],
- + soversion: ver.get('abi_major'),
- + version: '.'.join([ ver.get('abi_major'), ver.get('abi_minor'), '0' ]),
- + install: true)
-
- + import('pkgconfig').generate(lib_mcfgthread_dll,
- + name: 'mcfgthread',
- + url: 'https://github.com/lhmouse/mcfgthread',
- + description: 'Cornerstone library for C++11 threading on mingw-w64',
- + libraries: '-lntdll')
- +elif get_option('default_library') == 'static'
- lib_mcfgthread_a = static_library('mcfgthread',
- c_pch: 'mcfgthread/xprecompiled.h',
- c_args: [ '-ffreestanding', '-fasynchronous-unwind-tables' ],
- @@ -296,35 +303,38 @@ lib_mcfgthread_a = static_library('mcfgthread',
- sources: [ mcfgthread_src ],
- install: true)
-
- -import('pkgconfig').generate(lib_mcfgthread_dll,
- - name: 'mcfgthread',
- - url: 'https://github.com/lhmouse/mcfgthread',
- - description: 'Cornerstone library for C++11 threading on mingw-w64',
- - libraries: '-lntdll')
- + import('pkgconfig').generate(lib_mcfgthread_a,
- + name: 'mcfgthread',
- + url: 'https://github.com/lhmouse/mcfgthread',
- + description: 'Cornerstone library for C++11 threading on mingw-w64',
- + libraries: '-lntdll')
- +endif
-
- #===========================================================
- # Rules for tests
- #===========================================================
- -foreach src: test_src
- - test(src, executable(src.replace('.c', '').underscorify(), src,
- - link_with: lib_mcfgthread_a))
- -endforeach
- +if get_option('build-test')
- + foreach src: test_src
- + test(src, executable(src.replace('.c', '').underscorify(), src,
- + link_with: lib_mcfgthread_a))
- + endforeach
-
- -# Specialized: -ladvapi32 -lntdll
- -test('test/memory.c', executable('test_memory_c',
- - 'test/memory.c',
- - dependencies: [ dep_advapi32, dep_ntdll ],
- - link_with: lib_mcfgthread_a))
- + # Specialized: -ladvapi32 -lntdll
- + test('test/memory.c', executable('test_memory_c',
- + 'test/memory.c',
- + dependencies: [ dep_advapi32, dep_ntdll ],
- + link_with: lib_mcfgthread_a))
-
- -# Specialized: -std=c89 -Wpedantic
- -test('test/gthr_c89_pedantic.c', executable('test_gthr_c89_pedantic_c',
- - 'test/gthr_c89_pedantic.c',
- - c_args: [ '-std=c89', '-Werror=declaration-after-statement',
- - '-Wpedantic', '-Wno-variadic-macros', '-Wno-long-long' ],
- - link_with: lib_mcfgthread_a))
- + # Specialized: -std=c89 -Wpedantic
- + test('test/gthr_c89_pedantic.c', executable('test_gthr_c89_pedantic_c',
- + 'test/gthr_c89_pedantic.c',
- + c_args: [ '-std=c89', '-Werror=declaration-after-statement',
- + '-Wpedantic', '-Wno-variadic-macros', '-Wno-long-long' ],
- + link_with: lib_mcfgthread_a))
-
- -# Specialized: -std=c99 -Wpedantic
- -test('test/c11_c99_pedantic.c', executable('test_c11_c99_pedantic_c',
- - 'test/c11_c99_pedantic.c',
- - c_args: [ '-std=c99', '-Wpedantic' ],
- - link_with: lib_mcfgthread_a))
- + # Specialized: -std=c99 -Wpedantic
- + test('test/c11_c99_pedantic.c', executable('test_c11_c99_pedantic_c',
- + 'test/c11_c99_pedantic.c',
- + c_args: [ '-std=c99', '-Wpedantic' ],
- + link_with: lib_mcfgthread_a))
- +endif
- \ No newline at end of file
- diff --git a/meson.options b/meson.options
- index d0342f8..b45d572 100644
- --- a/meson.options
- +++ b/meson.options
- @@ -15,3 +15,7 @@
- option('enable-debug-checks',
- type: 'boolean', value: false,
- description: 'enable run-time assertions')
- +
- +option('build-test',
- + type: 'boolean', value: false,
- + description: 'Build unit test')
|