فهرست منبع

mcfgthread: add 1.8.4 version (#5187)

* mcfgthread: add 1.8.4 version

* reduce patch size

* fix download version
star9029 1 سال پیش
والد
کامیت
786a467e55

+ 64 - 0
packages/m/mcfgthread/patches/1.8.4/meson.patch

@@ -0,0 +1,64 @@
+diff --git a/meson.build b/meson.build
+index 5cf334b..ad9f5cd 100644
+--- a/meson.build
++++ b/meson.build
+@@ -291,6 +291,8 @@ install_headers(meson.current_build_dir() / 'version.h', subdir: 'mcfgthread')
+ #===========================================================
+ # Rules for 'lib/libmcfgthread'
+ #===========================================================
++if get_option('default_library') == 'shared'
++
+ mcfgthread_version_o = import('windows').compile_resources(
+       'mcfgthread/version.rc',
+       args: [ '-I.', '-c65001' ],
+@@ -320,22 +322,25 @@ lib_mcfgthread_dll = shared_library('mcfgthread',
+       version: '.'.join([ ver.get('abi_major'), ver.get('abi_minor'), '0' ]),
+       install: true)
+ 
+-lib_mcfgthread_a = static_library('mcfgthread',
+-      c_pch: 'mcfgthread/xprecompiled.h',
+-      c_args: [ '-ffreestanding', '-fasynchronous-unwind-tables' ],
+-      sources: [ mcfgthread_src_min, mcfgthread_src_ex, ],
+-      dependencies: [ dep_kernel32, dep_ntdll ],
+-      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' ],
++      sources: [ mcfgthread_src_min, mcfgthread_src_ex, ],
++      dependencies: [ dep_kernel32, dep_ntdll ],
++      install: true)
++endif
+ #===========================================================
+ # Rules for tests
+ #===========================================================
++if get_option('build-test')
+ foreach src: test_src
+   test_c_args = []
+   test_cpp_args = []
+@@ -377,3 +382,4 @@ foreach src: test_src
+ 
+   test('..' / src, test_exe)
+ endforeach
++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')

+ 0 - 118
packages/m/mcfgthread/patches/1.8.alpha-1/meson.patch

@@ -1,118 +0,0 @@
-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')

+ 7 - 4
packages/m/mcfgthread/xmake.lua

@@ -3,16 +3,19 @@ package("mcfgthread")
     set_description("Cornerstone of the MOST efficient std::thread on Windows for mingw-w64")
     set_license("GPL-3.0")
 
-    add_urls("https://github.com/lhmouse/mcfgthread/archive/refs/tags/$(version).tar.gz", {version = function (version) return version:gsub("-alpha", ".alpha-1") end})
     add_urls("https://github.com/lhmouse/mcfgthread.git")
+    add_urls("https://github.com/lhmouse/mcfgthread/archive/refs/tags/$(version).tar.gz", {
+        version = function (version)
+            return format("v%d.%d-ga.%d", version:major(), version:minor(), version:patch())
+    end})
 
-    add_versions("1.8-alpha", "4f2b7939f1806b4fb3739d1add63397638e0872c09a1f35c402597aafbc70f32")
+    add_versions("1.8.4", "d2318ef761927860b7a8963308145065047d8ad2102313b26e6eb2d88d9ef1e3")
 
-    add_patches("1.8-alpha", path.join(os.scriptdir(), "patches", "1.8.alpha-1", "meson.patch"), "db0faa7499218357021f3a5d737653bb42a3bf9840b27aae946cc1fe9bf99a50")
+    add_patches("1.8.4", "patches/1.8.4/meson.patch", "89b98f9152719c44c2a7d8800b63ac621954fd0fe10884b9e90fc3298b76c6c9")
 
     add_configs("debug_checks", {description = "enable run-time assertions", default = false, type = "boolean"})
 
-    add_syslinks("ntdll")
+    add_syslinks("kernel32", "ntdll")
 
     add_deps("meson", "ninja")