Skip to content

Commit 791ab53

Browse files
committed
fix: allow any Unix-like distribution to build through LuaRocks.
1 parent 4227556 commit 791ab53

File tree

3 files changed

+135
-33
lines changed

3 files changed

+135
-33
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ on:
1313
- "checksums/*.md"
1414

1515
env:
16-
ROCKSPEC_VERSION: 0.0.1
16+
ROCKSPEC_VERSION: 0.0.2
1717
DEV_ROCKSPEC: lua-hash-dev-1.rockspec
1818

1919
jobs:
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
package = "lua-hash"
2+
version = "0.0.2-1"
3+
4+
source = {
5+
url = "git+https://github.com/luau-project/lua-hash",
6+
tag = "v0.0.2"
7+
}
8+
9+
description = {
10+
homepage = "https://github.com/luau-project/lua-hash",
11+
summary = [[Hash algorithms for Lua]],
12+
detailed = [=[
13+
lua-hash is a lightweight, native library providing hash algorithms for Lua.
14+
15+
Visit the repository for more information.]=],
16+
license = "MIT"
17+
}
18+
19+
dependencies = {
20+
"lua >= 5.1"
21+
}
22+
23+
local function openssl_external_dependencies()
24+
return {
25+
["CRYPTO"] = {
26+
header = "openssl/evp.h"
27+
}
28+
}
29+
end
30+
31+
external_dependencies = {
32+
platforms = {
33+
freebsd = openssl_external_dependencies(),
34+
openbsd = openssl_external_dependencies(),
35+
dragonfly = openssl_external_dependencies(),
36+
solaris = openssl_external_dependencies(),
37+
cygwin = openssl_external_dependencies(),
38+
netbsd = openssl_external_dependencies(),
39+
haiku = openssl_external_dependencies(),
40+
linux = openssl_external_dependencies()
41+
}
42+
}
43+
44+
local function build_plat(plat)
45+
if (plat == "macos" or plat == "macosx") then
46+
return {
47+
type = "builtin",
48+
modules = {
49+
["lua-hash"] = {
50+
sources = { "src/lua-hash.c" },
51+
libraries = { },
52+
defines = { "LUA_HASH_BUILD_SHARED", "LUA_HASH_USE_APPLE" },
53+
incdirs = { "src" },
54+
libdirs = { }
55+
}
56+
}
57+
}
58+
elseif (plat == "windows") then
59+
return {
60+
type = "builtin",
61+
modules = {
62+
["lua-hash"] = {
63+
sources = { "src/lua-hash.c" },
64+
libraries = { "bcrypt" },
65+
defines = { "LUA_HASH_BUILD_SHARED", "LUA_HASH_USE_WIN32" },
66+
incdirs = { "src" },
67+
libdirs = { }
68+
}
69+
}
70+
}
71+
elseif (plat == "openssl") then
72+
return {
73+
type = "builtin",
74+
modules = {
75+
["lua-hash"] = {
76+
sources = { "src/lua-hash.c" },
77+
libraries = { "crypto" },
78+
defines = { "LUA_HASH_BUILD_SHARED", "LUA_HASH_USE_OPENSSL" },
79+
incdirs = { "src", "$(CRYPTO_INCDIR)" },
80+
libdirs = { "$(CRYPTO_LIBDIR)" }
81+
}
82+
}
83+
}
84+
else
85+
error("Unknown platform", 2)
86+
end
87+
end
88+
89+
build = {
90+
platforms = {
91+
freebsd = build_plat("openssl"),
92+
openbsd = build_plat("openssl"),
93+
dragonfly = build_plat("openssl"),
94+
solaris = build_plat("openssl"),
95+
cygwin = build_plat("openssl"),
96+
netbsd = build_plat("openssl"),
97+
haiku = build_plat("openssl"),
98+
linux = build_plat("openssl"),
99+
windows = build_plat("windows"),
100+
macos = build_plat("macos"),
101+
macosx = build_plat("macosx")
102+
}
103+
}

rockspecs/lua-hash-dev-1.rockspec

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ dependencies = {
1919
"lua >= 5.1"
2020
}
2121

22-
local function external_dependencies_plat()
22+
local function openssl_external_dependencies()
2323
return {
2424
["CRYPTO"] = {
2525
header = "openssl/evp.h"
@@ -29,35 +29,32 @@ end
2929

3030
external_dependencies = {
3131
platforms = {
32-
linux = external_dependencies_plat(),
33-
freebsd = external_dependencies_plat(),
34-
openbsd = external_dependencies_plat(),
35-
netbsd = external_dependencies_plat(),
36-
dragonfly = external_dependencies_plat()
32+
freebsd = openssl_external_dependencies(),
33+
openbsd = openssl_external_dependencies(),
34+
dragonfly = openssl_external_dependencies(),
35+
solaris = openssl_external_dependencies(),
36+
cygwin = openssl_external_dependencies(),
37+
netbsd = openssl_external_dependencies(),
38+
haiku = openssl_external_dependencies(),
39+
linux = openssl_external_dependencies()
3740
}
3841
}
3942

4043
local function build_plat(plat)
41-
if (plat == "macosx" or plat == "macos") then
44+
if (plat == "macos" or plat == "macosx") then
4245
return {
43-
type = "make",
44-
makefile = "Makefile.macosx",
45-
build_variables = {
46-
CFLAGS = "$(CFLAGS)",
47-
LIBFLAG = "$(LIBFLAG)",
48-
CFLAGS_EXTRA = "-DLUA_HASH_BUILD_SHARED -DLUA_HASH_USE_APPLE",
49-
LUA_INCDIR = "$(LUA_INCDIR)",
50-
OBJ_EXTENSION = "$(OBJ_EXTENSION)",
51-
LIB_EXTENSION = "$(LIB_EXTENSION)"
52-
},
53-
install_variables = {
54-
INSTALL_PREFIX = "$(PREFIX)",
55-
INSTALL_LIBDIR = "$(LIBDIR)",
56-
LUA_VERSION = "$(LUA_VERSION)",
57-
LIB_EXTENSION = "$(LIB_EXTENSION)"
46+
type = "builtin",
47+
modules = {
48+
["lua-hash"] = {
49+
sources = { "src/lua-hash.c" },
50+
libraries = { },
51+
defines = { "LUA_HASH_BUILD_SHARED", "LUA_HASH_USE_APPLE" },
52+
incdirs = { "src" },
53+
libdirs = { }
54+
}
5855
}
5956
}
60-
elseif (plat == "windows" or plat == "cygwin") then
57+
elseif (plat == "windows") then
6158
return {
6259
type = "builtin",
6360
modules = {
@@ -70,7 +67,7 @@ local function build_plat(plat)
7067
}
7168
}
7269
}
73-
elseif (plat == "linux" or plat == "bsd") then
70+
elseif (plat == "openssl") then
7471
return {
7572
type = "builtin",
7673
modules = {
@@ -90,14 +87,16 @@ end
9087

9188
build = {
9289
platforms = {
93-
macosx = build_plat("macosx"),
94-
macos = build_plat("macos"),
90+
freebsd = build_plat("openssl"),
91+
openbsd = build_plat("openssl"),
92+
dragonfly = build_plat("openssl"),
93+
solaris = build_plat("openssl"),
94+
cygwin = build_plat("openssl"),
95+
netbsd = build_plat("openssl"),
96+
haiku = build_plat("openssl"),
97+
linux = build_plat("openssl"),
9598
windows = build_plat("windows"),
96-
cygwin = build_plat("cygwin"),
97-
linux = build_plat("linux"),
98-
freebsd = build_plat("bsd"),
99-
openbsd = build_plat("bsd"),
100-
netbsd = build_plat("bsd"),
101-
dragonfly = build_plat("bsd")
99+
macos = build_plat("macos"),
100+
macosx = build_plat("macosx")
102101
}
103102
}

0 commit comments

Comments
 (0)