aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/luarocks/build/cmake.lua15
-rw-r--r--src/luarocks/cfg.lua9
2 files changed, 9 insertions, 15 deletions
diff --git a/src/luarocks/build/cmake.lua b/src/luarocks/build/cmake.lua
index ed2af3ff..0ee125a3 100644
--- a/src/luarocks/build/cmake.lua
+++ b/src/luarocks/build/cmake.lua
@@ -15,7 +15,7 @@ function cmake.run(rockspec)
15 assert(type(rockspec) == "table") 15 assert(type(rockspec) == "table")
16 local build = rockspec.build 16 local build = rockspec.build
17 local variables = build.variables or {} 17 local variables = build.variables or {}
18 18
19 -- Pass Env variables 19 -- Pass Env variables
20 variables.CMAKE_MODULE_PATH=os.getenv("CMAKE_MODULE_PATH") 20 variables.CMAKE_MODULE_PATH=os.getenv("CMAKE_MODULE_PATH")
21 variables.CMAKE_LIBRARY_PATH=os.getenv("CMAKE_LIBRARY_PATH") 21 variables.CMAKE_LIBRARY_PATH=os.getenv("CMAKE_LIBRARY_PATH")
@@ -26,7 +26,7 @@ function cmake.run(rockspec)
26 if not fs.execute_quiet(rockspec.variables.CMAKE, "--help") then 26 if not fs.execute_quiet(rockspec.variables.CMAKE, "--help") then
27 return nil, "'"..rockspec.variables.CMAKE.."' program not found. Is cmake installed? You may want to edit variables.CMAKE" 27 return nil, "'"..rockspec.variables.CMAKE.."' program not found. Is cmake installed? You may want to edit variables.CMAKE"
28 end 28 end
29 29
30 -- If inline cmake is present create CMakeLists.txt from it. 30 -- If inline cmake is present create CMakeLists.txt from it.
31 if type(build.cmake) == "string" then 31 if type(build.cmake) == "string" then
32 local cmake_handler = assert(io.open(fs.current_dir().."/CMakeLists.txt", "w")) 32 local cmake_handler = assert(io.open(fs.current_dir().."/CMakeLists.txt", "w"))
@@ -37,22 +37,19 @@ function cmake.run(rockspec)
37 37
38 -- Execute cmake with variables. 38 -- Execute cmake with variables.
39 local args = "" 39 local args = ""
40 if cfg.cmake_generator then
41 args = args .. ' -G"'..cfg.cmake_generator.. '"'
42 end
43 for k,v in pairs(variables) do 40 for k,v in pairs(variables) do
44 args = args .. ' -D' ..k.. '="' ..v.. '"' 41 args = args .. ' -D' ..k.. '="' ..v.. '"'
45 end 42 end
46 43
47 if not fs.execute_string(rockspec.variables.CMAKE.." . " ..args) then 44 if not fs.execute_string(rockspec.variables.CMAKE.." -H. -Bbuild.luarocks "..args) then
48 return nil, "Failed cmake." 45 return nil, "Failed cmake."
49 end 46 end
50 47
51 if not fs.execute_string(rockspec.variables.MAKE.." -fMakefile") then 48 if not fs.execute_string(rockspec.variables.CMAKE.." --build build.luarocks --config Release") then
52 return nil, "Failed building." 49 return nil, "Failed building."
53 end 50 end
54 51
55 if not fs.execute_string(rockspec.variables.MAKE.." -fMakefile install") then 52 if not fs.execute_string(rockspec.variables.CMAKE.." --build build.luarocks --target install --config Release") then
56 return nil, "Failed installing." 53 return nil, "Failed installing."
57 end 54 end
58 return true 55 return true
diff --git a/src/luarocks/cfg.lua b/src/luarocks/cfg.lua
index 50d247b5..ea80e5b5 100644
--- a/src/luarocks/cfg.lua
+++ b/src/luarocks/cfg.lua
@@ -227,7 +227,7 @@ local defaults = {
227 } 227 }
228 }, 228 },
229 disabled_servers = {}, 229 disabled_servers = {},
230 230
231 upload = { 231 upload = {
232 server = "https://rocks.moonscript.org", 232 server = "https://rocks.moonscript.org",
233 tool_version = "1.0.0", 233 tool_version = "1.0.0",
@@ -315,7 +315,7 @@ if detected.windows then
315 defaults.variables.LUA_BINDIR = site_config.LUA_BINDIR and site_config.LUA_BINDIR:gsub("\\", "/") or "c:/lua"..cfg.lua_version.."/bin" 315 defaults.variables.LUA_BINDIR = site_config.LUA_BINDIR and site_config.LUA_BINDIR:gsub("\\", "/") or "c:/lua"..cfg.lua_version.."/bin"
316 defaults.variables.LUA_INCDIR = site_config.LUA_INCDIR and site_config.LUA_INCDIR:gsub("\\", "/") or "c:/lua"..cfg.lua_version.."/include" 316 defaults.variables.LUA_INCDIR = site_config.LUA_INCDIR and site_config.LUA_INCDIR:gsub("\\", "/") or "c:/lua"..cfg.lua_version.."/include"
317 defaults.variables.LUA_LIBDIR = site_config.LUA_LIBDIR and site_config.LUA_LIBDIR:gsub("\\", "/") or "c:/lua"..cfg.lua_version.."/lib" 317 defaults.variables.LUA_LIBDIR = site_config.LUA_LIBDIR and site_config.LUA_LIBDIR:gsub("\\", "/") or "c:/lua"..cfg.lua_version.."/lib"
318 defaults.cmake_generator = "MinGW Makefiles" 318
319 defaults.makefile = "Makefile.win" 319 defaults.makefile = "Makefile.win"
320 defaults.variables.MAKE = "nmake" 320 defaults.variables.MAKE = "nmake"
321 defaults.variables.CC = "cl" 321 defaults.variables.CC = "cl"
@@ -363,7 +363,6 @@ end
363if detected.mingw32 then 363if detected.mingw32 then
364 defaults.platforms = { "win32", "mingw32", "windows" } 364 defaults.platforms = { "win32", "mingw32", "windows" }
365 defaults.obj_extension = "o" 365 defaults.obj_extension = "o"
366 defaults.cmake_generator = "MinGW Makefiles"
367 defaults.variables.MAKE = "mingw32-make" 366 defaults.variables.MAKE = "mingw32-make"
368 defaults.variables.CC = "mingw32-gcc" 367 defaults.variables.CC = "mingw32-gcc"
369 defaults.variables.RC = "windres" 368 defaults.variables.RC = "windres"
@@ -394,7 +393,6 @@ if detected.unix then
394 defaults.variables.LUA_INCDIR = site_config.LUA_INCDIR or "/usr/local/include" 393 defaults.variables.LUA_INCDIR = site_config.LUA_INCDIR or "/usr/local/include"
395 defaults.variables.LUA_LIBDIR = site_config.LUA_LIBDIR or "/usr/local/lib" 394 defaults.variables.LUA_LIBDIR = site_config.LUA_LIBDIR or "/usr/local/lib"
396 defaults.variables.CFLAGS = "-O2" 395 defaults.variables.CFLAGS = "-O2"
397 defaults.cmake_generator = "Unix Makefiles"
398 defaults.platforms = { "unix" } 396 defaults.platforms = { "unix" }
399 defaults.variables.CC = "gcc" 397 defaults.variables.CC = "gcc"
400 defaults.variables.LD = "gcc" 398 defaults.variables.LD = "gcc"
@@ -426,7 +424,6 @@ if detected.cygwin then
426 defaults.lib_extension = "so" -- can be overridden in the config file for mingw builds 424 defaults.lib_extension = "so" -- can be overridden in the config file for mingw builds
427 defaults.arch = "cygwin-"..proc 425 defaults.arch = "cygwin-"..proc
428 defaults.platforms = {"unix", "cygwin"} 426 defaults.platforms = {"unix", "cygwin"}
429 defaults.cmake_generator = "Unix Makefiles"
430 defaults.variables.CC = "echo -llua | xargs gcc" 427 defaults.variables.CC = "echo -llua | xargs gcc"
431 defaults.variables.LD = "echo -llua | xargs gcc" 428 defaults.variables.LD = "echo -llua | xargs gcc"
432 defaults.variables.LIBFLAG = "-shared" 429 defaults.variables.LIBFLAG = "-shared"
@@ -569,7 +566,7 @@ function cfg.package_paths()
569 table.insert(new_cpath, lib_path.."/?."..cfg.lib_extension) 566 table.insert(new_cpath, lib_path.."/?."..cfg.lib_extension)
570 table.insert(new_bin, bin_path) 567 table.insert(new_bin, bin_path)
571 end 568 end
572 if extra_luarocks_module_dir then 569 if extra_luarocks_module_dir then
573 table.insert(new_path, extra_luarocks_module_dir) 570 table.insert(new_path, extra_luarocks_module_dir)
574 end 571 end
575 return table.concat(new_path, ";"), table.concat(new_cpath, ";"), table.concat(new_bin, cfg.export_path_separator) 572 return table.concat(new_path, ";"), table.concat(new_cpath, ";"), table.concat(new_bin, cfg.export_path_separator)