Skip to content

Commit 5687b65

Browse files
committed
Merge pull request #27 from codingteam/feature/travis
Travis automatic builds.
2 parents 29de312 + 0879146 commit 5687b65

File tree

4 files changed

+23
-6
lines changed

4 files changed

+23
-6
lines changed

.travis.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
language: csharp
2+
mono: latest
3+
solution: Naggum.sln
4+
install:
5+
- nuget restore Naggum.sln
6+
- nuget install xunit.runner.console -Version 2.1.0 -OutputDirectory testrunner
7+
script:
8+
- xbuild /p:Configuration=Release /p:TargetFrameworkVersion="v4.5" Naggum.sln
9+
- mono ./testrunner/xunit.runner.console.2.1.0/tools/xunit.console.exe ./Naggum.Test/bin/Release/Naggum.Test.dll

Naggum.Test/CompilerTest.fs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
namespace Naggum.Test
22

3+
open System
34
open System.Diagnostics
45
open System.IO
56

@@ -12,14 +13,15 @@ type CompilerTest() =
1213
static let resultExtension = "result"
1314
static let executableExtension = "exe"
1415

15-
static let directory = @"..\..\..\tests"
16+
static let directory = Path.Combine ("..", "..", "..", "tests")
1617
static let filenames = [@"comment"; @"test"]
1718

1819
static member private RunTest testName =
1920
let basePath = Path.Combine(directory, testName)
2021
let testPath = Path.ChangeExtension(basePath, testExtension)
2122
let resultPath = Path.ChangeExtension(basePath, resultExtension)
22-
let executablePath = Path.ChangeExtension(testName, executableExtension)
23+
let executableName = Path.ChangeExtension (testName, executableExtension)
24+
let executablePath = Path.Combine (Environment.CurrentDirectory, executableName)
2325

2426
use stream = File.Open(testPath, FileMode.Open)
2527
Generator.compile stream testName executablePath []

Naggum.sln

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ EndProject
2525
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution items", "Solution items", "{F85A1ACB-4A60-46A9-856D-92A3C9B97402}"
2626
ProjectSection(SolutionItems) = preProject
2727
.editorconfig = .editorconfig
28+
.travis.yml = .travis.yml
2829
appveyor.yml = appveyor.yml
2930
License.md = License.md
3031
Readme.md = Readme.md

ngc/Generator.fs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,20 @@ let compileMethod context (generatorFactory : IGeneratorFactory) body (methodBui
2828

2929
epilogue context ilGenerator
3030

31-
let compile (source : Stream) (assemblyName : string) (fileName : string) (asmRefs:string list): unit =
32-
let assemblyName = new AssemblyName(assemblyName)
33-
let assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Save)
31+
let compile (source : Stream) (assemblyName : string) (filePath : string) (asmRefs:string list): unit =
32+
let assemblyName = AssemblyName assemblyName
33+
let path = Path.GetDirectoryName filePath
34+
let assemblyPath = if path = "" then null else path
35+
let fileName = Path.GetFileName filePath
36+
let appDomain = AppDomain.CurrentDomain
37+
38+
let assemblyBuilder = appDomain.DefineDynamicAssembly (assemblyName, AssemblyBuilderAccess.Save, assemblyPath)
3439
Globals.ModuleBuilder <- assemblyBuilder.DefineDynamicModule(assemblyBuilder.GetName().Name, fileName)
3540
let typeBuilder = Globals.ModuleBuilder.DefineType("Program", TypeAttributes.Public ||| TypeAttributes.Class ||| TypeAttributes.BeforeFieldInit)
3641
let methodBuilder = typeBuilder.DefineMethod ("Main",
3742
MethodAttributes.Public ||| MethodAttributes.Static,
3843
typeof<Void>,
39-
Array.Empty ())
44+
[| |])
4045

4146
let gf = new GeneratorFactory(typeBuilder, methodBuilder) :> IGeneratorFactory
4247
assemblyBuilder.SetEntryPoint methodBuilder

0 commit comments

Comments
 (0)