uppercutbuild 1.0.6.0 → 1.1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/docs/README CHANGED
@@ -1,7 +1,7 @@
1
1
  Project UppercuT - Builds in Seconds, Not Days
2
2
  =======
3
3
 
4
- ![UppercuT](http://github.com/ferventcoder/uppercut/raw/master/docs/logo/UppercuT_Logo_Small.jpg "UppercuT - insanely easy. Insanely.")
4
+ ![UppercuT](https://github.com/chucknorris/uppercut/raw/master/docs/logo/UppercuT_Logo_Small.jpg "UppercuT - insanely easy. Insanely.")
5
5
 
6
6
  # LICENSE
7
7
  Apache 2.0 - see docs/legal (just LEGAL in the zip folder)
@@ -59,6 +59,9 @@ It helps keep to the product updated, pays for site hosting, etc. https://www.pa
59
59
  * Adding in support for xUnit.
60
60
  * Adding in support for StorEvil.
61
61
 
62
+ =1.1.0.0=
63
+ * Added support for obfuscation. New settings have been added to the uppercut.config: <property name="obfuscation" value="false" overwrite="false" /> <property name="app.eazfuscator" value="..${path.separator}${folder.references}${path.separator}Eazfuscator.NET${path.separator}Eazfuscator.NET.exe" overwrite="false" /> and a tool that goes under the lib folder: Eazfuscator.NET - see http://code.google.com/p/uppercut/issues/detail?id=21 for details. (372)
64
+
62
65
  =1.0.6.0=
63
66
  * Updating xbuild for use with 32bit windows machines. (369)
64
67
  * Gallio NAnt tasks were not being loaded - see http://code.google.com/p/uppercut/issues/detail?id=17 for details. (368)
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" ?>
2
2
  <uppercut>
3
- <version>1.0.6.0</version>
3
+ <version>1.1.0.0</version>
4
4
  </uppercut>
5
5
 
@@ -30,6 +30,8 @@
30
30
  <property name="run.ilmerge" value="false" overwrite="false" />
31
31
  <property name="file.uppercut.assembly" value="uppercut.tasks.dll" />
32
32
  <property name="path.uppercut.assembly" value="${dirs.current}${path.separator}${file.uppercut.assembly}" />
33
+ <property name="obfuscate" value="false" overwrite="false" />
34
+
33
35
  <property name="file.custom.step.before" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.pre.build" />
34
36
  <property name="file.custom.step.after" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.post.build" />
35
37
  <property name="file.custom.step.replace" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.replace.build" />
@@ -98,6 +100,7 @@
98
100
  <nant buildfile="${dirs.current}${path.separator}compile.step" inheritall="true" />
99
101
  <nant buildfile="${dirs.current}${path.separator}environmentBuilder.step" inheritall="true" />
100
102
  <nant buildfile="${dirs.current}${path.separator}analyze.step" inheritall="true" />
103
+ <nant buildfile="${dirs.current}${path.separator}obfuscate.step" inheritall="true" if="${obfuscate}" />
101
104
  <nant buildfile="${dirs.current}${path.separator}package.step" inheritall="true" />
102
105
  <nant buildfile="${dirs.current}${path.separator}ilmerge.build" inheritall="true" if="${run.ilmerge}" />
103
106
  <nant buildfile="${dirs.current}${path.separator}gemsPrepare.step" inheritall="true" failonerror="false" />
@@ -0,0 +1,138 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <project name="Obfuscator" default="go">
3
+ <!-- Project UppercuT - http://projectuppercut.org -->
4
+ <!-- DO NOT EDIT THIS FILE - This creates the assembly file to be used by the rest of the application - find out more at http://uppercut.pbwiki.com -->
5
+ <property name="build.config.settings" value="__NONE__" overwrite="false" />
6
+ <include buildfile="${build.config.settings}" if="${file::exists(build.config.settings)}" />
7
+ <property name="path.separator" value="${string::trim(path::combine(' ', ' '))}" />
8
+ <property name="file.current.no_extension" value="obfuscate" />
9
+ <property name="dirs.current" value="${directory::get-parent-directory(project::get-buildfile-path())}" />
10
+ <property name="path.to.toplevel" value=".." />
11
+ <property name="folder.build_scripts" value="build" overwrite="false" />
12
+ <property name="folder.build_scripts_custom" value="build.custom" overwrite="false" />
13
+ <property name="dirs.build_scripts_custom" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.build_scripts_custom}" />
14
+ <property name="folder.references" value="lib" overwrite="false" />
15
+ <property name="dirs.lib" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.references}" overwrite="false" />
16
+ <property name="folder.code_build" value="build_output" overwrite="false" />
17
+ <property name="dirs.build" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${folder.code_build}" />
18
+ <property name="project.name" value="__SOLUTION_NAME_WITHOUT_SLN_EXTENSION__" overwrite="false" />
19
+ <property name="company.name" value="__COMPANY_NAME__" overwrite="false" />
20
+ <property name="path_to_solution" value="." overwrite="false" />
21
+ <property name="folder.app.drop" value="${project.name}" overwrite="false" />
22
+ <property name="dirs.build.code" value="${dirs.build}${path.separator}${folder.app.drop}" overwrite="false" />
23
+
24
+ <property name="version.use_semanticversioning" value="false" overwrite="false" />
25
+ <property name="version.major" value="1" overwrite="false" />
26
+ <property name="version.minor" value="0" overwrite="false" />
27
+ <property name="version.patch" value="0" overwrite="false" />
28
+ <property name="version.build" value="0" overwrite="false" />
29
+ <property name="version.revision" value="0" overwrite="false" />
30
+ <property name="version.hash" value="${version.revision}" overwrite="false" />
31
+ <property name="version.file" value="${version.major}.${version.minor}.${version.build}.${version.revision}" overwrite="false" />
32
+
33
+ <property name="sign.project_with_key" value="false" overwrite="false" />
34
+ <property name="sign.key.use_relative_pathing" value="false" overwrite="false" />
35
+ <property name="file.key.name.private" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${project.name}.snk" overwrite="false" />
36
+ <property name="file.key.name.private" value="${path.to.toplevel}${path.separator}${project.name}.snk" overwrite="false" if="${sign.key.use_relative_pathing}" />
37
+ <property name="obsfucate" value="false" overwrite="false" />
38
+ <property name="app.eazfuscator" value="..${path.separator}${folder.references}${path.separator}Eazfuscator.NET${path.separator}Eazfuscator.NET.exe" overwrite="false" />
39
+ <property name="args.obfuscator" value="" overwrite="false" />
40
+
41
+ <property name="dll.names" value="" />
42
+
43
+ <property name="file.custom.step.before" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.pre.step" />
44
+ <property name="file.custom.step.after" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.post.step" />
45
+ <property name="file.custom.step.replace" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.replace.step" />
46
+ <property name="is.replaced" value="false" />
47
+ <property name="fail.build.on.error" value="true" />
48
+
49
+ <target name="go" depends="run_tasks" />
50
+
51
+ <target name="run_tasks">
52
+ <echo message="Running ${project::get-name()} tasks." />
53
+ <call target="prepare" if="${target::exists('prepare')}" />
54
+ <call target="custom_tasks_before" if="${target::exists('custom_tasks_before')}" />
55
+ <call target="custom_tasks_replace" if="${target::exists('custom_tasks_replace')}" />
56
+ <call target="run_normal_tasks" if="${not is.replaced}" />
57
+ <call target="custom_tasks_after" if="${target::exists('custom_tasks_after')}" />
58
+ </target>
59
+
60
+ <target name="run_normal_tasks"
61
+ depends="error_check, get_version, get_project_output_files, set_up_args, obfuscate"
62
+ description="Generating Assembly File." />
63
+
64
+ <target name="custom_tasks_before">
65
+ <echo message="Running custom tasks if ${file.custom.step.before} exists." />
66
+ <nant buildfile="${file.custom.step.before}" inheritall="true" if="${file::exists(file.custom.step.before)}" failonerror="${fail.build.on.error}" />
67
+ <exec program="powershell.exe" if="${file::exists(file.custom.step.before + '.ps1')}" failonerror="${fail.build.on.error}">
68
+ <arg value="${path::get-full-path(file.custom.step.before + '.ps1')}" />
69
+ </exec>
70
+ <exec program="ruby.exe" if="${file::exists(file.custom.step.before + '.rb')}" failonerror="${fail.build.on.error}">
71
+ <arg value="${path::get-full-path(file.custom.step.before + '.rb')}" />
72
+ </exec>
73
+ </target>
74
+
75
+ <target name="custom_tasks_replace">
76
+ <echo message="Running custom tasks instead of normal tasks if ${file.custom.step.replace} exists." />
77
+ <property name="is.replaced" value="true" if="${file::exists(file.custom.step.replace)}" />
78
+ <nant buildfile="${file.custom.step.replace}" inheritall="true" if="${file::exists(file.custom.step.replace)}" failonerror="${fail.build.on.error}" />
79
+ <property name="is.replaced" value="true" if="${file::exists(file.custom.step.replace + '.ps1')}" />
80
+ <exec program="powershell.exe" if="${file::exists(file.custom.step.replace + '.ps1')}" failonerror="${fail.build.on.error}" >
81
+ <arg value="${path::get-full-path(file.custom.step.replace + '.ps1')}" />
82
+ </exec>
83
+ <property name="is.replaced" value="true" if="${file::exists(file.custom.step.replace + '.rb')}" />
84
+ <exec program="ruby.exe" if="${file::exists(file.custom.step.replace + '.rb')}" failonerror="${fail.build.on.error}" >
85
+ <arg value="${path::get-full-path(file.custom.step.replace + '.rb')}" />
86
+ </exec>
87
+ </target>
88
+
89
+ <target name="error_check">
90
+ <fail message="You must fill out the project.name, repository.path, and company.name settings in the settings${path.separator}UppercuT.config file. Please do that and retry the build."
91
+ if="${project.name=='__SOLUTION_NAME_WITHOUT_SLN_EXTENSION__' or company.name=='__COMPANY_NAME__'}" />
92
+ </target>
93
+
94
+ <target name="get_version">
95
+ <property name="version.file" value="${version.major}.${version.minor}.${version.build}.${version.revision}" />
96
+ <property name="version.file" value="${version.major}.${version.minor}.${version.patch}.${version.build}" if="${version.use_semanticversioning}" />
97
+ </target>
98
+
99
+ <target name="get_project_output_files">
100
+ <foreach item="File" property="dll.filename">
101
+ <in>
102
+ <items>
103
+ <include name="${dirs.build.code}${path.separator}**${path.separator}*" />
104
+ </items>
105
+ </in>
106
+ <do>
107
+ <!--echo message="${dll.filename + ' - ' + version::to-string(fileversioninfo::get-file-version(fileversioninfo::get-version-info(dll.filename)))}" /-->
108
+ <property name="dll.names" value="${dll.names + ' ' + string::replace(string::replace(dll.filename,path::get-full-path(dirs.build.code) + '\',''),'\',path.separator) + ''}" if="${version::to-string(fileversioninfo::get-file-version(fileversioninfo::get-version-info(dll.filename))) == version.file}" />
109
+ </do>
110
+ </foreach>
111
+ </target>
112
+
113
+ <target name="set_up_args">
114
+ <property name="args.obfuscator" value="${args.obfuscator + ' -k ' + file.key.name.private}" if="${sign.project_with_key}" />
115
+ <property name="args.obfuscator" value="${args.obfuscator + ' ' + dll.names}" />
116
+ </target>
117
+
118
+ <target name="obfuscate">
119
+ <echo message="Attempting to obsfucate using Eazfuscator.NET with these arguments: ${path::get-full-path(app.eazfuscator)} ${args.obfuscator}" />
120
+ <exec
121
+ program="${path::get-full-path(app.eazfuscator)}"
122
+ workingdir="${dirs.build.code}"
123
+ commandline="${args.obfuscator}"
124
+ if="${file::exists(path::get-full-path(app.eazfuscator))}" />
125
+ </target>
126
+
127
+ <target name="custom_tasks_after">
128
+ <echo message="Running custom tasks if ${file.custom.step.after} exists." />
129
+ <nant buildfile="${file.custom.step.after}" inheritall="true" if="${file::exists(file.custom.step.after)}" failonerror="${fail.build.on.error}" />
130
+ <exec program="powershell.exe" if="${file::exists(file.custom.step.after + '.ps1')}" failonerror="${fail.build.on.error}" >
131
+ <arg value="${path::get-full-path(file.custom.step.after + '.ps1')}" />
132
+ </exec>
133
+ <exec program="ruby.exe" if="${file::exists(file.custom.step.after + '.rb')}" failonerror="${fail.build.on.error}" >
134
+ <arg value="${path::get-full-path(file.custom.step.after + '.rb')}" />
135
+ </exec>
136
+ </target>
137
+
138
+ </project>
Binary file
Binary file
@@ -37,6 +37,8 @@
37
37
  <property name="file.key.name.private" value="${dirs.current}${path.separator}${path.to.toplevel}${path.separator}${project.name}.snk" overwrite="false" />
38
38
  <property name="file.key.name.private" value="${path.to.toplevel}${path.separator}${project.name}.snk" overwrite="false" if="${sign.key.use_relative_pathing}" />
39
39
  <property name="file.key.name.public" value="${dirs.build}${path.separator}public.${project.name}.snk" overwrite="false" />
40
+ <property name="obfuscate" value="false" overwrite="false" />
41
+
40
42
  <property name="file.custom.step.before" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.pre.step" />
41
43
  <property name="file.custom.step.after" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.post.step" />
42
44
  <property name="file.custom.step.replace" value="${dirs.build_scripts_custom}${path.separator}${file.current.no_extension}.replace.step" />
@@ -123,6 +125,7 @@
123
125
  <import namespace="System" />
124
126
  <import namespace="System.Reflection" />
125
127
  <import namespace="System.Runtime.InteropServices" />
128
+ <import namespace="System.Runtime.CompilerServices" />
126
129
  <import namespace="System.Security" />
127
130
  </imports>
128
131
  <attributes>
@@ -140,6 +143,8 @@
140
143
  <attribute type="AllowPartiallyTrustedCallers" if="${allow.partially_trusted_callers}" asis="true" />
141
144
  <attribute type="AssemblyKeyFileAttribute" value="${file.key.name.private}" if="${sign.project_with_key and not sign.key.use_relative_pathing}" />
142
145
  <attribute type="AssemblyKeyFileAttribute" value="${sign.key.relative_path_from_projects}${path.separator}${path::get-file-name(file.key.name.private)}" if="${sign.project_with_key and sign.key.use_relative_pathing}" />
146
+ <!--attribute type="SuppressIldasmAttribute" value="true" if="${obsfuscate}" /-->
147
+ <attribute type="ObfuscateAssemblyAttribute" value="false" if="${obfuscate}" />
143
148
  </attributes>
144
149
  </asminfo>
145
150
  </target>
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="utf-8" ?>
2
- <project name="SVNVersioner" default="go">
2
+ <project name="GitVersioner" default="go">
3
3
  <!-- Project UppercuT - http://projectuppercut.org -->
4
4
  <!-- DO NOT EDIT THIS FILE - This creates the assembly file to be used by the rest of the application - find out more at http://uppercut.pbwiki.com -->
5
5
  <property name="build.config.settings" value="__NONE__" overwrite="false" />
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="utf-8" ?>
2
- <project name="SVNVersioner" default="go">
2
+ <project name="HGVersioner" default="go">
3
3
  <!-- Project UppercuT - http://projectuppercut.org -->
4
4
  <!-- DO NOT EDIT THIS FILE - This creates the assembly file to be used by the rest of the application - find out more at http://uppercut.pbwiki.com -->
5
5
  <property name="build.config.settings" value="__NONE__" overwrite="false" />
@@ -51,10 +51,13 @@
51
51
  <!-- To use relative pathing your projects all need to be at the same level. -->
52
52
  <property name="sign.key.use_relative_pathing" value="false" overwrite="false" />
53
53
  <property name="sign.key.relative_path_from_projects" value="..${path.separator}..${path.separator}" overwrite="false" />
54
+ <property name="obfuscate" value="false" overwrite="false" />
54
55
 
55
56
  <!-- COMPILE VARIABLES -->
56
57
  <property name="msbuild.configuration" value="Release" overwrite="false" />
57
58
  <property name="msbuild.platform" value="Any CPU" overwrite="false" />
59
+ <!-- Mixed Platforms is the default 4.0 build platform -->
60
+ <!--property name="msbuild.platform" value="Mixed Platforms" overwrite="false" /-->
58
61
  <!-- This setting allows you to use your own output path by setting to false - this does not work in conjuction with multitargeting -->
59
62
  <property name="msbuild.override_output_path" value="true" overwrite="false" />
60
63
 
@@ -77,6 +80,8 @@
77
80
  <property name="app.moma" value="..\..\${folder.references}\MoMA\MoMA.exe" overwrite="false" />
78
81
  <property name="app.nitriq" value="C:\Program Files (x86)\NimblePros\Nitriq Console + Pro\Nitriq.Console.exe" overwrite="false" />
79
82
  <property name="app.xbuild" value="C:\Program Files (x86)\Mono-2.8\bin\xbuild.bat" overwrite="false" />
83
+ <property name="app.eazfuscator" value="..${path.separator}${folder.references}${path.separator}Eazfuscator.NET${path.separator}Eazfuscator.NET.exe" overwrite="false" />
84
+
80
85
  <property name="allow.powershell.unrestricted" value="false" overwrite="false" />
81
86
  <property name="run.ilmerge" value="false" overwrite="false" />
82
87
  </project>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uppercutbuild
3
3
  version: !ruby/object:Gem::Version
4
- hash: 71
4
+ hash: 87
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
+ - 1
8
9
  - 0
9
- - 6
10
10
  - 0
11
- version: 1.0.6.0
11
+ version: 1.1.0.0
12
12
  platform: ruby
13
13
  authors:
14
14
  - Rob "FerventCoder" Reynolds
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2010-11-16 00:00:00 -06:00
20
+ date: 2010-12-20 00:00:00 -06:00
21
21
  default_executable:
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
@@ -77,6 +77,7 @@ files:
77
77
  - lib/build/gemsPrepare.step
78
78
  - lib/build/generateBuildInfo.step
79
79
  - lib/build/ilmerge.build
80
+ - lib/build/obfuscate.step
80
81
  - lib/build/open.build
81
82
  - lib/build/package.step
82
83
  - lib/build/policyChecks.step