155 Commits

Author SHA1 Message Date
Peter Melnichenko
ba652ab780 Don't elevate luarocks installer on Windows if possible 2016-04-30 20:55:44 +03:00
Peter Melnichenko
8ea50693c3 Refactoring of identifiers saving 2016-04-29 14:24:51 +03:00
Peter Melnichenko
835d70d3b7 Switch back to HTTP for Lua downloads
Https causes an error on a "real" Windows installation, but
not on Appveyor. Could be an issue with Python, Windows or
https implementation on www.lua.org. Safer to revert to http for now.
2016-04-29 14:18:12 +03:00
Peter Melnichenko
d13e49b0cf Save identifiers after installing Lua before installing LuaRocks
Fixes errors when reinstalling LuaRocks if the first attempt failed.
2016-04-28 12:50:34 +03:00
Peter Melnichenko
d04f34c71a Exit with error if a LuaRocks batch script is missing 2016-04-28 12:47:44 +03:00
mpeterv
1745496a07 Use plural/singular form of them/it for patches 2016-04-15 23:00:14 +03:00
mpeterv
15119a19b0 Fix minor version detection for Lua 5.1 2016-04-13 16:25:44 +03:00
mpeterv
11e2fa78d0 Implement --patch 2016-04-12 17:17:28 +03:00
mpeterv
defbc5c9cc Fix Python 3 compat when on Windows 2016-04-06 19:44:24 +03:00
mpeterv
ff42be1ac9 Enable extensions before setting up MSVC
Apparently it's necessary when using setenv.cmd of WSDK.
2016-04-05 20:52:32 +03:00
mpeterv
d7472dd594 Show help for --downloads
It may be useful for caching on ci services, and seeing the
default value is nice.
2016-04-03 22:33:16 +03:00
mpeterv
bccbfbf626 Fix cmake generator arch suffix 2016-04-03 22:17:33 +03:00
mpeterv
882e414c0d Windows: configure LuaRocks to use correct cmake generator 2016-04-03 22:12:19 +03:00
mpeterv
9d65a349c9 Take Lua major version for LuaRocks from stored identifiers 2016-04-03 21:41:54 +03:00
mpeterv
24da318802 Add version to manifest
Increment when changing manifest format in breaking ways so that
upgrading hererocks doesn't result in a crash.
2016-04-03 21:19:44 +03:00
mpeterv
a1f4f47f2f Add 'latest' as an alias for '^' 2016-04-03 21:09:30 +03:00
mpeterv
b704246dc3 Implement --show option 2016-04-03 21:00:51 +03:00
mpeterv
d37aaf8e31 Use JSON to save identifiers 2016-04-03 20:23:44 +03:00
mpeterv
86b7f8fad9 Rename .source_kind == "fixed" -> .source == "release" 2016-04-03 19:40:08 +03:00
mpeterv
efc8301f5d Add vs_32 and vs_64 targets 2016-04-03 17:00:41 +03:00
mpeterv
b15e6db3a4 vs target: try older VS versions on x64 host but use x86 tools 2016-04-03 16:29:38 +03:00
mpeterv
be1c0a25fe Add vs08_64 and vs10_64 targets, fix help for --target 2016-04-03 16:14:21 +03:00
mpeterv
a18825c239 Pass x86_amd64 instead of amd64 to vcvarsall.bat 2016-04-03 16:04:52 +03:00
mpeterv
08a97da8b4 vs target: try VS versions in decreasing order 2016-04-03 16:02:36 +03:00
mpeterv
82097c458c Add vs target 2016-04-03 15:38:57 +03:00
mpeterv
fb26b06861 Handle missing programs 2016-04-03 15:15:40 +03:00
mpeterv
8dfda2b86b Make some methods static 2016-04-03 14:47:23 +03:00
mpeterv
f6e55110a2 Use raw strings for regexps 2016-04-03 14:43:19 +03:00
mpeterv
c976cb35a9 Fix an undefined variable 2016-04-03 14:40:16 +03:00
mpeterv
e7235d68b0 Don't run endlocal before recursive call 2016-04-03 14:30:11 +03:00
mpeterv
edc018cd07 Improve error handling and logging for VS setup 2016-04-03 14:24:11 +03:00
mpeterv
a6de9c000d Fix query_registry
Why didn't pyflakes detect this?
2016-04-03 13:47:08 +03:00
mpeterv
22ff2103af Improve VS setup command detection
Use registry keys and magic like install.bat in LuaRocks.
2016-04-03 13:41:58 +03:00
mpeterv
666aa79c36 Always show target on Windows 2016-04-02 13:42:07 +03:00
mpeterv
22491fe141 run(): print command as string on error 2016-04-02 13:41:04 +03:00
mpeterv
eb7f0d55fc Windows: replace cl target with vsXX_YY targets
When using vsXX_YY target, set up paths for Visual Studio 20XX
(YY bits) by writing a temporary batch file that calls appropriate
vcvarsall.bat and calls hererocks again, passing arguments through
another temporary file because escaping special batch characters
is difficult.

Related changes:
* Default target on Windows is now vs15_32, unless gcc is in PATH
  and cl.exe isn't.
* Fixed mingw LuaJIT build attempting to install lua51.lib which isn't built.
* Fixed list flatten in run(): consider unicode strings.
2016-04-02 13:18:10 +03:00
mpeterv
6fa4496a8c Mention possible targets in help message 2016-03-29 13:10:11 +03:00
mpeterv
3b116f5577 Handle failure to infer LUA_VERSION_NUM from lua.h 2016-03-29 13:06:54 +03:00
mpeterv
3eb06b5a7b Refactor git_branch_accepts_tags 2016-03-29 13:02:39 +03:00
mpeterv
b6e056a671 Install luarocks .bat files correctly for older versions 2016-03-28 20:57:10 +03:00
mpeterv
bf6026cb70 Copy luarocks.bat and luarocks-admin.bat into prefix/bin 2016-03-28 20:40:22 +03:00
mpeterv
d6b1704a72 Support cflags and compat=5.2 for LuaJIT with cl.exe 2016-03-28 20:15:39 +03:00
mpeterv
06f2e38f50 Use cflags instead of patching luaconf for compat
Gets rid of compiler warnings when a C module defines some
compatibility flags, e.g. luasocket.
2016-03-28 19:59:13 +03:00
mpeterv
2c41a94fcd Random changes 2016-03-28 19:21:25 +03:00
mpeterv
ccbd07bf5d Use sys.exit instead of raise 2016-03-28 17:46:30 +03:00
mpeterv
097ce9a122 Rename/refactor command execution funcs 2016-03-28 17:44:33 +03:00
mpeterv
bae2f48940 Fix build on Windows 2016-03-28 15:30:16 +03:00
mpeterv
7200bebef8 Get rid of shell=True when running commands
Pass arguments as lists or nested lists.
2016-03-28 15:25:30 +03:00
Peter Wu
b25cc45dbc pyflakes and pep8 fixes; python 2.7 compatibility
Yay... Python 2.7 does not support `def f(*args, shell=True)`.
Workaround by using **kwargs.
2016-03-27 13:20:41 +02:00
Peter Wu
7af7d9c7be Initial Windows port
Tested on Windows 7 x64 with MSVC12:

    "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64
    hererocks.py C:\luatest -r^ --lua 5.3
    hererocks.py C:\luatest -r 2.2.2 --lua 5.2
    hererocks.py C:\luatest -r 2.0.10 --lua 5.1

Note:

 - LuaRocks <= 2.2.2 installs to $prefix\LuaRocks\2.2
 - LuaRocks >= 2.3 installs to $prefix\LuaRocks

TODO (for consistency with Linux): install to $prefix. Unfortunately
the Windows install.bat only offers the option to wipe $prefix before
installing, or aborting.
2016-03-26 16:14:43 +01:00