Unverified Commit 1cc74393 authored by Vinicius Jarina's avatar Vinicius Jarina Committed by GitHub
Browse files

* Giant cleanup/reshuffle of all files. (#265)

* * Giant cleanup/reshuffle of all files.

* * Update upstream `KeraLua` to `0.1.14`

* Fixed .NET Core build.

* Add runsettings file

* * Fixed nuspec `dependencies` node

* Ignore _ in branch names for package names.

* * Fixed nuspec.
parent 3f254585
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{CFE2185E-C344-4503-9B94-9046744CEF37}</ProjectGuid>
<ProjectTypeGuids>{A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>NLua</RootNamespace>
<AssemblyName>NLua</AssemblyName>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<TargetFrameworkIdentifier>Xamarin.Mac</TargetFrameworkIdentifier>
<MonoMacResourcePrefix>Resources</MonoMacResourcePrefix>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\lib\Debug\xamarinmac</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<EnableCodeSigning>false</EnableCodeSigning>
<CreatePackage>false</CreatePackage>
<EnablePackageSigning>false</EnablePackageSigning>
<IncludeMonoRuntime>false</IncludeMonoRuntime>
<UseSGen>false</UseSGen>
<HttpClientHandler>
</HttpClientHandler>
<LinkMode>
</LinkMode>
<XamMacArch>
</XamMacArch>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>..\..\lib\Release\xamarinmac</OutputPath>
<DefineConstants>
</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<EnableCodeSigning>false</EnableCodeSigning>
<CreatePackage>false</CreatePackage>
<EnablePackageSigning>false</EnablePackageSigning>
<IncludeMonoRuntime>false</IncludeMonoRuntime>
<UseSGen>false</UseSGen>
<HttpClientHandler>
</HttpClientHandler>
<LinkMode>
</LinkMode>
<XamMacArch>
</XamMacArch>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<Reference Include="KeraLua, Version=0.1.14.0, Culture=neutral, PublicKeyToken=6a194c04b9c89217, processorArchitecture=MSIL">
<HintPath>..\..\packages\KeraLua.0.1.14\lib\xamarinmac\KeraLua.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="Xamarin.Mac" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="..\..\src\NLua.Core.projitems" Label="Shared" Condition="Exists('..\..\src\NLua.Core.projitems')" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Mac\Xamarin.Mac.CSharp.targets" />
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="KeraLua" version="0.1.14" targetFramework="xamarinmac20" />
</packages>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{8FAFDF62-E07E-487A-863C-74F308AE7BA6}</ProjectGuid>
<ProjectTypeGuids>{FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<RootNamespace>NLua</RootNamespace>
<AssemblyName>NLua</AssemblyName>
<IPhoneResourcePrefix>Resources</IPhoneResourcePrefix>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\lib\Debug\xamarinios</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodesignKey>iPhone Developer</CodesignKey>
<MtouchDebug>true</MtouchDebug>
<MtouchNoSymbolStrip>true</MtouchNoSymbolStrip>
<MtouchFastDev>true</MtouchFastDev>
<IOSDebuggerPort>37816</IOSDebuggerPort>
<DeviceSpecificBuild>false</DeviceSpecificBuild>
<MtouchVerbosity>
</MtouchVerbosity>
<MtouchLink>
</MtouchLink>
<MtouchHttpClientHandler>
</MtouchHttpClientHandler>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>..\..\lib\Release\xamarinios</OutputPath>
<DefineConstants>
</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<CodesignKey>iPhone Developer</CodesignKey>
<MtouchNoSymbolStrip>true</MtouchNoSymbolStrip>
<MtouchLink>SdkOnly</MtouchLink>
<MtouchVerbosity>
</MtouchVerbosity>
<MtouchHttpClientHandler>
</MtouchHttpClientHandler>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<Reference Include="KeraLua, Version=0.1.14.0, Culture=neutral, PublicKeyToken=6a194c04b9c89217, processorArchitecture=MSIL">
<HintPath>..\..\packages\KeraLua.0.1.14\lib\xamarinios\KeraLua.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="Xamarin.iOS" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="..\..\src\NLua.Core.projitems" Label="Shared" Condition="Exists('..\..\src\NLua.Core.projitems')" />
<Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" />
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="KeraLua" version="0.1.14" targetFramework="xamarinios10" />
</packages>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{C45805A8-6436-4738-BD9F-4632EEA63BBC}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>NLua</RootNamespace>
<AssemblyName>NLua</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\lib\Debug\net45\</OutputPath>
<DefineConstants>DEBUG;</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<Optimize>true</Optimize>
<OutputPath>..\..\lib\Release\net45\</OutputPath>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<ConsolePause>false</ConsolePause>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
<ItemGroup>
<Reference Include="KeraLua, Version=0.1.14.0, Culture=neutral, PublicKeyToken=6a194c04b9c89217, processorArchitecture=MSIL">
<HintPath>..\..\packages\KeraLua.0.1.14\lib\net45\KeraLua.dll</HintPath>
</Reference>
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="..\..\src\NLua.Core.projitems" Label="Shared" Condition="Exists('..\..\src\NLua.Core.projitems')" />
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="..\..\packages\KeraLua.0.1.14\build\net45\KeraLua.targets" Condition="Exists('..\..\packages\KeraLua.0.1.14\build\net45\KeraLua.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\KeraLua.0.1.14\build\net45\KeraLua.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\KeraLua.0.1.14\build\net45\KeraLua.targets'))" />
</Target>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectView>ProjectFiles</ProjectView>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="NUnit" version="2.6.2" targetFramework="net40" /> <package id="KeraLua" version="0.1.14" targetFramework="net45" />
</packages> </packages>
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RootNamespace>NLua</RootNamespace>
<AssemblyName>NLua</AssemblyName>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DocumentationFile></DocumentationFile>
<OutputPath>..\..\lib\Release\netcore\</OutputPath>
<DefineConstants>TRACE;NETCOREAPP</DefineConstants>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningsAsErrors />
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<OutputPath>..\..\lib\Debug\netcore\</OutputPath>
<DefineConstants>TRACE;NETCOREAPP</DefineConstants>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningsAsErrors />
</PropertyGroup>
<Import Project="..\..\src\NLua.Core.projitems" Label="Shared" Condition="Exists('..\..\src\NLua.Core.projitems')" />
<ItemGroup>
<PackageReference Include="KeraLua" Version="0.1.14" />
<PackageReference Include="System.Reflection.Emit" Version="4.3.0" />
<PackageReference Include="System.Reflection.Emit.ILGeneration" Version="4.3.0" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace>NLua</RootNamespace>
<AssemblyName>NLua</AssemblyName>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<OutputPath>..\..\lib\Debug\</OutputPath>
<DefineConstants>TRACE;NETSTANDARD</DefineConstants>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningsAsErrors />
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<OutputPath>..\..\lib\Release\</OutputPath>
<DefineConstants>TRACE;NETSTANDARD</DefineConstants>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<WarningsAsErrors />
</PropertyGroup>
<Import Project="..\..\src\NLua.Core.projitems" Label="Shared" />
<ItemGroup>
<PackageReference Include="KeraLua" Version="0.1.14" />
</ItemGroup>
</Project>
\ No newline at end of file
dnl Warning: This is an automatically generated file, do not edit!
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ([2.54])
AC_INIT([NLua.Net40], [2.x])
AM_INIT_AUTOMAKE([foreign])
AM_MAINTAINER_MODE
dnl pkg-config
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
if test "x$PKG_CONFIG" = "xno"; then
AC_MSG_ERROR([You need to install pkg-config])
fi
SHAMROCK_EXPAND_LIBDIR
SHAMROCK_EXPAND_BINDIR
SHAMROCK_EXPAND_DATADIR
AC_PROG_INSTALL
AC_PATH_PROG(DMCS, dmcs, no)
if test "x$DMCS" = "xno"; then
AC_MSG_ERROR([dmcs Not found])
fi
AC_ARG_ENABLE(debug,
AC_HELP_STRING([--enable-debug],
[Use 'DEBUG' Configuration [default=NO]]),
enable_debug=yes, enable_debug=no)
AM_CONDITIONAL(ENABLE_DEBUG, test x$enable_debug = xyes)
if test "x$enable_debug" = "xyes" ; then
CONFIG_REQUESTED="yes"
fi
AC_ARG_ENABLE(debugkopilua,
AC_HELP_STRING([--enable-debugkopilua],
[Use 'DEBUGKOPILUA' Configuration [default=NO]]),
enable_debugkopilua=yes, enable_debugkopilua=no)
AM_CONDITIONAL(ENABLE_DEBUGKOPILUA, test x$enable_debugkopilua = xyes)
if test "x$enable_debugkopilua" = "xyes" ; then
CONFIG_REQUESTED="yes"
fi
AC_ARG_ENABLE(release,
AC_HELP_STRING([--enable-release],
[Use 'RELEASE' Configuration [default=YES]]),
enable_release=yes, enable_release=no)
AM_CONDITIONAL(ENABLE_RELEASE, test x$enable_release = xyes)
if test "x$enable_release" = "xyes" ; then
CONFIG_REQUESTED="yes"
fi
AC_ARG_ENABLE(releasekopilua,
AC_HELP_STRING([--enable-releasekopilua],
[Use 'RELEASEKOPILUA' Configuration [default=NO]]),
enable_releasekopilua=yes, enable_releasekopilua=no)
AM_CONDITIONAL(ENABLE_RELEASEKOPILUA, test x$enable_releasekopilua = xyes)
if test "x$enable_releasekopilua" = "xyes" ; then
CONFIG_REQUESTED="yes"
fi
AC_ARG_ENABLE(debug_x64,
AC_HELP_STRING([--enable-debug_x64],
[Use 'DEBUG_X64' Configuration [default=NO]]),
enable_debug_x64=yes, enable_debug_x64=no)
AM_CONDITIONAL(ENABLE_DEBUG_X64, test x$enable_debug_x64 = xyes)
if test "x$enable_debug_x64" = "xyes" ; then
CONFIG_REQUESTED="yes"
fi
AC_ARG_ENABLE(release_x64,
AC_HELP_STRING([--enable-release_x64],
[Use 'RELEASE_X64' Configuration [default=NO]]),
enable_release_x64=yes, enable_release_x64=no)
AM_CONDITIONAL(ENABLE_RELEASE_X64, test x$enable_release_x64 = xyes)
if test "x$enable_release_x64" = "xyes" ; then
CONFIG_REQUESTED="yes"
fi
AC_ARG_ENABLE(debugkopilua_x64,
AC_HELP_STRING([--enable-debugkopilua_x64],
[Use 'DEBUGKOPILUA_X64' Configuration [default=NO]]),
enable_debugkopilua_x64=yes, enable_debugkopilua_x64=no)
AM_CONDITIONAL(ENABLE_DEBUGKOPILUA_X64, test x$enable_debugkopilua_x64 = xyes)
if test "x$enable_debugkopilua_x64" = "xyes" ; then
CONFIG_REQUESTED="yes"
fi
AC_ARG_ENABLE(releasekopilua_x64,
AC_HELP_STRING([--enable-releasekopilua_x64],
[Use 'RELEASEKOPILUA_X64' Configuration [default=NO]]),
enable_releasekopilua_x64=yes, enable_releasekopilua_x64=no)
AM_CONDITIONAL(ENABLE_RELEASEKOPILUA_X64, test x$enable_releasekopilua_x64 = xyes)
if test "x$enable_releasekopilua_x64" = "xyes" ; then
CONFIG_REQUESTED="yes"
fi
if test -z "$CONFIG_REQUESTED" ; then
AM_CONDITIONAL(ENABLE_RELEASE, true)
enable_release=yes
fi
dnl package checks, common for all configs
dnl package checks, per config
AC_CONFIG_FILES([
Core/KopiLua/KopiLua/kopilua.net40.pc
Core/KopiLua/KopiLua/Makefile
Core/KeraLua/src/keralua.net40.pc
Core/KeraLua/src/Makefile
Core/NLua/nlua.net40.pc
Core/NLua/Makefile
Core/Makefile
NLuaTest/nluatest.40.pc
NLuaTest/Makefile
ConsoleTest/consoletest.40
ConsoleTest/Makefile
Applications/LuaRunner/nlua.40
Applications/LuaRunner/Makefile
Makefile
])
AC_OUTPUT
AC_DEFUN([SHAMROCK_EXPAND_LIBDIR],
[
expanded_libdir=`(
case $prefix in
NONE) prefix=$ac_default_prefix ;;
*) ;;
esac
case $exec_prefix in
NONE) exec_prefix=$prefix ;;
*) ;;
esac
eval echo $libdir
)`
AC_SUBST(expanded_libdir)
])
AC_DEFUN([SHAMROCK_EXPAND_BINDIR],
[
expanded_bindir=`(
case $prefix in
NONE) prefix=$ac_default_prefix ;;
*) ;;
esac
case $exec_prefix in
NONE) exec_prefix=$prefix ;;
*) ;;
esac
eval echo $bindir
)`
AC_SUBST(expanded_bindir)
])
AC_DEFUN([SHAMROCK_EXPAND_DATADIR],
[
case $prefix in
NONE) prefix=$ac_default_prefix ;;
*) ;;
esac
case $exec_prefix in
NONE) exec_prefix=$prefix ;;
*) ;;
esac
expanded_datadir=`(eval echo $datadir)`
expanded_datadir=`(eval echo $expanded_datadir)`
AC_SUBST(expanded_datadir)
])
--- ---
--- This lua module provides auto importing of .net classes into a named package. --- This lua module provides auto importing of .net classes into a named package.
--- Makes for super easy use of LuaInterface glue --- Makes for super easy use of LuaInterface glue
--- ---
--- example: --- example:
--- Threading = CLRPackage("System", "System.Threading") --- Threading = CLRPackage("System", "System.Threading")
--- Threading.Thread.Sleep(100) --- Threading.Thread.Sleep(100)
--- ---
--- Extensions: --- Extensions:
--- import() is a version of CLRPackage() which puts the package into a list which is used by a global __index lookup, --- import() is a version of CLRPackage() which puts the package into a list which is used by a global __index lookup,
--- and thus works rather like C#'s using statement. It also recognizes the case where one is importing a local --- and thus works rather like C#'s using statement. It also recognizes the case where one is importing a local
--- assembly, which must end with an explicit .dll extension. --- assembly, which must end with an explicit .dll extension.
--- Alternatively, luanet.namespace can be used for convenience without polluting the global namespace: --- Alternatively, luanet.namespace can be used for convenience without polluting the global namespace:
--- local sys,sysi = luanet.namespace {'System','System.IO'} --- local sys,sysi = luanet.namespace {'System','System.IO'}
-- sys.Console.WriteLine("we are at {0}",sysi.Directory.GetCurrentDirectory()) -- sys.Console.WriteLine("we are at {0}",sysi.Directory.GetCurrentDirectory())
-- LuaInterface hosted with stock Lua interpreter will need to explicitly require this... -- LuaInterface hosted with stock Lua interpreter will need to explicitly require this...
if not luanet then require 'luanet' end if not luanet then require 'luanet' end
local import_type, load_assembly = luanet.import_type, luanet.load_assembly local import_type, load_assembly = luanet.import_type, luanet.load_assembly
local mt = { local mt = {
--- Lookup a previously unfound class and add it to our table --- Lookup a previously unfound class and add it to our table
__index = function(package, classname) __index = function(package, classname)
local class = rawget(package, classname) local class = rawget(package, classname)
if class == nil then if class == nil then
class = import_type(package.packageName .. "." .. classname) class = import_type(package.packageName .. "." .. classname)
package[classname] = class -- keep what we found around, so it will be shared package[classname] = class -- keep what we found around, so it will be shared
end end
return class return class
end end
} }
function luanet.namespace(ns) function luanet.namespace(ns)
if type(ns) == 'table' then if type(ns) == 'table' then
local res = {} local res = {}
for i = 1,#ns do for i = 1,#ns do
res[i] = luanet.namespace(ns[i]) res[i] = luanet.namespace(ns[i])
end end
return unpack(res) return unpack(res)
end end
-- FIXME - table.packageName could instead be a private index (see Lua 13.4.4) -- FIXME - table.packageName could instead be a private index (see Lua 13.4.4)
local t = { packageName = ns } local t = { packageName = ns }
setmetatable(t,mt) setmetatable(t,mt)
return t return t
end end
local globalMT, packages local globalMT, packages
local function set_global_mt() local function set_global_mt()
packages = {} packages = {}
globalMT = { globalMT = {
__index = function(T,classname) __index = function(T,classname)
for i,package in ipairs(packages) do for i,package in ipairs(packages) do
local class = package[classname] local class = package[classname]
if class then if class then
_G[classname] = class _G[classname] = class
return class return class
end end
end end
end end
} }
setmetatable(_G, globalMT) setmetatable(_G, globalMT)
end end
--- Create a new Package class --- Create a new Package class
function CLRPackage(assemblyName, packageName) function CLRPackage(assemblyName, packageName)
-- a sensible default... -- a sensible default...
packageName = packageName or assemblyName packageName = packageName or assemblyName
local ok = pcall(load_assembly,assemblyName) -- Make sure our assembly is loaded local ok = pcall(load_assembly,assemblyName) -- Make sure our assembly is loaded
return luanet.namespace(packageName) return luanet.namespace(packageName)
end end
function import (assemblyName, packageName) function import (assemblyName, packageName)
if not globalMT then if not globalMT then
set_global_mt() set_global_mt()
end end
if not packageName then if not packageName then
local i = assemblyName:find('%.dll$') local i = assemblyName:find('%.dll$')
if i then packageName = assemblyName:sub(1,i-1) if i then packageName = assemblyName:sub(1,i-1)
else packageName = assemblyName end else packageName = assemblyName end
end end
local t = CLRPackage(assemblyName,packageName) local t = CLRPackage(assemblyName,packageName)
table.insert(packages,t) table.insert(packages,t)
return t return t
end end
function luanet.make_array (tp,tbl) function luanet.make_array (tp,tbl)
local arr = tp[#tbl] local arr = tp[#tbl]
for i,v in ipairs(tbl) do for i,v in ipairs(tbl) do
arr:SetValue(v,i-1) arr:SetValue(v,i-1)
end end
return arr return arr
end end
function luanet.each(o) function luanet.each(o)
local e = o:GetEnumerator() local e = o:GetEnumerator()
return function() return function()
if e:MoveNext() then if e:MoveNext() then
return e.Current return e.Current
end end
end end
end end
Some example scripts, showing what NLua can do. Some example scripts, showing what NLua can do.
form A simple form, basic event handling form A simple form, basic event handling
socket Fetches the content of a web site and prints to the socket Fetches the content of a web site and prints to the
console console
testluaform A more complex WinForms example, type some Lua code in testluaform A more complex WinForms example, type some Lua code in
the textbox and run it, or load a Lua script. the textbox and run it, or load a Lua script.
-- kevinh - the following lines are part of our standard init -- kevinh - the following lines are part of our standard init
-- require("compat-5.1") -- require("compat-5.1")
import("System.Windows.Forms") import("System.Windows.Forms")
import("System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a") import("System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
import("System.Drawing") import("System.Drawing")
form1=Form() form1=Form()
button1=Button() button1=Button()
button2=Button() button2=Button()
function handleClick(sender,data) function handleClick(sender,data)
if sender.Text=="OK" then if sender.Text=="OK" then
sender.Text="Clicked" sender.Text="Clicked"
else else
sender.Text="OK" sender.Text="OK"
end end
button1.MouseUp:Remove(handler) button1.MouseUp:Remove(handler)
MessageBox.Show (sender:ToString()) MessageBox.Show (sender:ToString())
end end
button1.Text = "OK" button1.Text = "OK"
button1.Location=Point(10,10) button1.Location=Point(10,10)
button2.Text = "Cancel" button2.Text = "Cancel"
button2.Location=Point(button1.Left, button1.Height + button1.Top + 10) button2.Location=Point(button1.Left, button1.Height + button1.Top + 10)
handler=button1.MouseUp:Add(handleClick) handler=button1.MouseUp:Add(handleClick)
form1.Text = "My Dialog Box" form1.Text = "My Dialog Box"
form1.HelpButton = true form1.HelpButton = true
form1.MaximizeBox=false form1.MaximizeBox=false
form1.MinimizeBox=false form1.MinimizeBox=false
form1.AcceptButton = button1 form1.AcceptButton = button1
form1.CancelButton = button2 form1.CancelButton = button2
form1.Controls:Add(button1) form1.Controls:Add(button1)
form1.Controls:Add(button2) form1.Controls:Add(button2)
form1:ShowDialog() form1:ShowDialog()
--require("compat-5.1") --require("compat-5.1")
Forms=luanet.System.Windows.Forms Forms=luanet.System.Windows.Forms
Form=Forms.Form Form=Forms.Form
Button=Forms.Button Button=Forms.Button
Point=luanet.System.Drawing.Point Point=luanet.System.Drawing.Point
form1=Form() form1=Form()
button1=Button() button1=Button()
button2=Button() button2=Button()
function handleClick(sender,data) function handleClick(sender,data)
if sender.Text=="OK" then if sender.Text=="OK" then
sender.Text="Clicked" sender.Text="Clicked"
else else
sender.Text="OK" sender.Text="OK"
end end
button1.MouseUp:Remove(handler) button1.MouseUp:Remove(handler)
print(sender:ToString()) print(sender:ToString())
end end
button1.Text = "OK" button1.Text = "OK"
button1.Location=Point(10,10) button1.Location=Point(10,10)
button2.Text = "Cancel" button2.Text = "Cancel"
button2.Location=Point(button1.Left, button1.Height + button1.Top + 10) button2.Location=Point(button1.Left, button1.Height + button1.Top + 10)
handler=button1.MouseUp:Add(handleClick) handler=button1.MouseUp:Add(handleClick)
form1.Text = "My Dialog Box" form1.Text = "My Dialog Box"
form1.HelpButton = true form1.HelpButton = true
form1.MaximizeBox=false form1.MaximizeBox=false
form1.MinimizeBox=false form1.MinimizeBox=false
form1.AcceptButton = button1 form1.AcceptButton = button1
form1.CancelButton = button2 form1.CancelButton = button2
form1.Controls:Add(button1) form1.Controls:Add(button1)
form1.Controls:Add(button2) form1.Controls:Add(button2)
form1:ShowDialog() form1:ShowDialog()
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment