From 3b8d91a9bf9ddc8da1f104d3c3aa20241670e17b Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Sun, 1 Jul 2018 14:46:04 -0300 Subject: build, write_rockspec: autodetect scripts to install as well --- src/luarocks/build/builtin.lua | 25 +++++++++++++++++++------ 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 function builtin.autodetect_modules(libs, incdirs, libdirs) local modules = {} + local install local copy_directories local prefix = "" @@ -104,6 +105,19 @@ do end end + if prefix ~= "" then + fs.pop_dir() + end + + local bindir = (fs.is_dir("src/bin") and "src/bin") + or (fs.is_dir("bin") and "bin") + if bindir then + install = { bin = {} } + for _, file in ipairs(fs.list_dir(bindir)) do + table.insert(install.bin, dir.path(bindir, file)) + end + end + for _, directory in ipairs({ "doc", "docs", "samples", "tests" }) do if fs.is_dir(directory) then if not copy_directories then @@ -113,11 +127,7 @@ do end end - if prefix ~= "" then - fs.pop_dir() - end - - return modules, copy_directories + return modules, install, copy_directories end end @@ -254,7 +264,10 @@ function builtin.run(rockspec) if not build.modules then if rockspec:format_is_at_least("3.0") then local libs, incdirs, libdirs = autoextract_libs(rockspec.external_dependencies, rockspec.variables) - build.modules = builtin.autodetect_modules(libs, incdirs, libdirs) + local install, copy_directories + build.modules, install, copy_directories = builtin.autodetect_modules(libs, incdirs, libdirs) + build.install = build.install or install + build.copy_directories = build.copy_directories or copy_directories else return nil, "Missing build.modules table" 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) end end - rockspec.build.modules, rockspec.build.copy_directories = builtin.autodetect_modules(libs, incdirs, libdirs) + rockspec.build.modules, rockspec.build.install, rockspec.build.copy_directories = builtin.autodetect_modules(libs, incdirs, libdirs) end local function rockspec_cleanup(rockspec) -- cgit v1.2.3-55-g6feb