aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2018-07-01 14:46:04 -0300
committerHisham Muhammad <hisham@gobolinux.org>2018-07-01 21:32:39 -0300
commit3b8d91a9bf9ddc8da1f104d3c3aa20241670e17b (patch)
tree0ec8a92c5b69b01f9a46aa407528dd0d162124fa /src
parenta5550c50a3ad8d4eb2dbdc27048fcf90d2acd1d8 (diff)
downloadluarocks-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.lua25
-rw-r--r--src/luarocks/cmd/write_rockspec.lua2
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
122end 132end
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)
189end 189end
190 190
191local function rockspec_cleanup(rockspec) 191local function rockspec_cleanup(rockspec)