package An official xmake package repository
https://xrepo.xmake.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
5.2 KiB
118 lines
5.2 KiB
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')
|
|
|