diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2018-07-01 14:46:04 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2018-07-01 21:32:39 -0300 |
commit | 3b8d91a9bf9ddc8da1f104d3c3aa20241670e17b (patch) | |
tree | 0ec8a92c5b69b01f9a46aa407528dd0d162124fa /src | |
parent | a5550c50a3ad8d4eb2dbdc27048fcf90d2acd1d8 (diff) | |
download | luarocks-3b8d91a9bf9ddc8da1f104d3c3aa20241670e17b.tar.gz luarocks-3b8d91a9bf9ddc8da1f104d3c3aa20241670e17b.tar.bz2 luarocks-3b8d91a9bf9ddc8da1f104d3c3aa20241670e17b.zip |
build, write_rockspec: autodetect scripts to install as well
Diffstat (limited to 'src')
-rw-r--r-- | src/luarocks/build/builtin.lua | 25 | ||||
-rw-r--r-- | src/luarocks/cmd/write_rockspec.lua | 2 |
2 files changed, 20 insertions, 7 deletions
diff --git a/src/luarocks/build/builtin.lua b/src/luarocks/build/builtin.lua index 7050cf8b..012bc59a 100644 --- a/src/luarocks/build/builtin.lua +++ b/src/luarocks/build/builtin.lua | |||
@@ -75,6 +75,7 @@ do | |||
75 | 75 | ||
76 | function builtin.autodetect_modules(libs, incdirs, libdirs) | 76 | function builtin.autodetect_modules(libs, incdirs, libdirs) |
77 | local modules = {} | 77 | local modules = {} |
78 | local install | ||
78 | local copy_directories | 79 | local copy_directories |
79 | 80 | ||
80 | local prefix = "" | 81 | local prefix = "" |
@@ -104,6 +105,19 @@ do | |||
104 | end | 105 | end |
105 | end | 106 | end |
106 | 107 | ||
108 | if prefix ~= "" then | ||
109 | fs.pop_dir() | ||
110 | end | ||
111 | |||
112 | local bindir = (fs.is_dir("src/bin") and "src/bin") | ||
113 | or (fs.is_dir("bin") and "bin") | ||
114 | if bindir then | ||
115 | install = { bin = {} } | ||
116 | for _, file in ipairs(fs.list_dir(bindir)) do | ||
117 | table.insert(install.bin, dir.path(bindir, file)) | ||
118 | end | ||
119 | end | ||
120 | |||
107 | for _, directory in ipairs({ "doc", "docs", "samples", "tests" }) do | 121 | for _, directory in ipairs({ "doc", "docs", "samples", "tests" }) do |
108 | if fs.is_dir(directory) then | 122 | if fs.is_dir(directory) then |
109 | if not copy_directories then | 123 | if not copy_directories then |
@@ -113,11 +127,7 @@ do | |||
113 | end | 127 | end |
114 | end | 128 | end |
115 | 129 | ||
116 | if prefix ~= "" then | 130 | return modules, install, copy_directories |
117 | fs.pop_dir() | ||
118 | end | ||
119 | |||
120 | return modules, copy_directories | ||
121 | end | 131 | end |
122 | end | 132 | end |
123 | 133 | ||
@@ -254,7 +264,10 @@ function builtin.run(rockspec) | |||
254 | if not build.modules then | 264 | if not build.modules then |
255 | if rockspec:format_is_at_least("3.0") then | 265 | if rockspec:format_is_at_least("3.0") then |
256 | local libs, incdirs, libdirs = autoextract_libs(rockspec.external_dependencies, rockspec.variables) | 266 | local libs, incdirs, libdirs = autoextract_libs(rockspec.external_dependencies, rockspec.variables) |
257 | build.modules = builtin.autodetect_modules(libs, incdirs, libdirs) | 267 | local install, copy_directories |
268 | build.modules, install, copy_directories = builtin.autodetect_modules(libs, incdirs, libdirs) | ||
269 | build.install = build.install or install | ||
270 | build.copy_directories = build.copy_directories or copy_directories | ||
258 | else | 271 | else |
259 | return nil, "Missing build.modules table" | 272 | return nil, "Missing build.modules table" |
260 | end | 273 | end |
diff --git a/src/luarocks/cmd/write_rockspec.lua b/src/luarocks/cmd/write_rockspec.lua index b4007e85..cc218bde 100644 --- a/src/luarocks/cmd/write_rockspec.lua +++ b/src/luarocks/cmd/write_rockspec.lua | |||
@@ -185,7 +185,7 @@ local function fill_as_builtin(rockspec, libs) | |||
185 | end | 185 | end |
186 | end | 186 | end |
187 | 187 | ||
188 | rockspec.build.modules, rockspec.build.copy_directories = builtin.autodetect_modules(libs, incdirs, libdirs) | 188 | rockspec.build.modules, rockspec.build.install, rockspec.build.copy_directories = builtin.autodetect_modules(libs, incdirs, libdirs) |
189 | end | 189 | end |
190 | 190 | ||
191 | local function rockspec_cleanup(rockspec) | 191 | local function rockspec_cleanup(rockspec) |