rake-delphi 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +4 -0
- data/Gemfile.lock +19 -0
- data/Rakefile.rb +6 -0
- data/lib/rake/common/git.rb +3 -2
- data/lib/rake/common/logger.rb +26 -0
- data/lib/rake/common/sendmailtask.rb +1 -1
- data/lib/rake/common/ziptask.rb +3 -3
- data/lib/rake/delphi.rb +1 -0
- data/lib/rake/delphi/dcc32.rb +63 -13
- data/lib/rake/delphi/envvariables.rb +41 -13
- data/lib/rake/delphi/project.rb +0 -1
- data/lib/rake/delphi/projectinfo.rb +28 -7
- data/lib/rake/delphi/resources.rb +3 -2
- data/lib/rake/delphi/tool.rb +45 -13
- data/lib/rake/delphi/version.rb +1 -1
- data/lib/rake/helpers/filelist.rb +1 -0
- data/lib/rake/helpers/logger.rb +1 -0
- data/lib/rake/helpers/rake.rb +1 -0
- data/lib/rake/helpers/raketask.rb +1 -2
- data/rake-delphi.gemspec +2 -1
- data/test/helpers/verinfo.rb +42 -0
- data/test/resources/testproject/Rakefile.rb +5 -2
- data/test/resources/testproject/bin/test_compile/testproject.exe +0 -0
- data/test/resources/testproject/bin/test_compile_alter_cfg/testproject.exe +0 -0
- data/test/resources/testproject/bin/test_compile_consts/testproject.exe +0 -0
- data/test/resources/testproject/bin/test_compile_debug_info/testproject.drc +366 -0
- data/test/resources/testproject/bin/test_compile_debug_info/testproject.exe +0 -0
- data/test/resources/testproject/bin/test_compile_debug_info/testproject.map +1798 -0
- data/test/resources/testproject/bin/test_compile_defines/testproject.exe +0 -0
- data/test/resources/testproject/bin/test_compile_use_absent_config/testproject.exe +0 -0
- data/test/resources/testproject/bin/test_compile_use_config/testproject.exe +0 -0
- data/test/resources/testproject/bin/test_compile_use_library_path/testproject.exe +0 -0
- data/test/resources/testproject/bin/test_compile_with_explicit_and_implicit_libs/testproject.exe +0 -0
- data/test/resources/testproject/bin/test_compile_with_explicit_libs/testproject.exe +0 -0
- data/test/resources/testproject/bin/test_compile_with_libs/testproject.exe +0 -0
- data/test/resources/testproject/bin/test_compile_with_resources/testproject.exe +0 -0
- data/test/resources/testproject/bin/test_compile_with_resources_and_libs/testproject.exe +0 -0
- data/test/resources/testproject/dcu/ExplicitLibUnit.dcu +0 -0
- data/test/resources/testproject/dcu/LibUnit.dcu +0 -0
- data/test/resources/testproject/resources.res +0 -0
- data/test/resources/testproject/{testproject.bdsproj → testproject.2006.bdsproj} +0 -0
- data/test/resources/testproject/{testproject.dproj → testproject.2007.dproj} +0 -0
- data/test/resources/testproject/testproject.2010.dproj +108 -0
- data/test/resources/testproject/testproject.cfg.1 +8 -0
- data/test/resources/testproject/testproject.dproj.2007 +77 -0
- data/test/resources/testproject/testproject.drc +210 -0
- data/test/resources/testproject/testproject.exe +0 -0
- data/test/resources/testproject/testproject.identcache +0 -0
- data/test/resources/testproject/testproject.rc +60 -0
- data/test/resources/testproject/testproject.res +0 -0
- data/test/resources/testproject/testproject.xe5.dproj +179 -0
- data/test/test-delphi.rb +33 -5
- data/test/test-envvariables.rb +23 -0
- data/test/test-git.rb +2 -2
- data/test/test-hashes.rb +0 -1
- data/test/test-projectinfo.rb +89 -9
- data/test/test-zip.rb +0 -8
- metadata +100 -43
- data/.gitignore +0 -17
- data/test/resources/testproject/.gitignore +0 -8
Binary file
|
@@ -0,0 +1,179 @@
|
|
1
|
+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
2
|
+
<PropertyGroup>
|
3
|
+
<ProjectGuid>{A045E9FA-AB18-4219-936D-16A329020CB9}</ProjectGuid>
|
4
|
+
<ProjectVersion>15.1</ProjectVersion>
|
5
|
+
<FrameworkType>None</FrameworkType>
|
6
|
+
<MainSource>Project1.dpr</MainSource>
|
7
|
+
<Base>True</Base>
|
8
|
+
<Config Condition="'$(Config)'==''">Debug</Config>
|
9
|
+
<Platform Condition="'$(Platform)'==''">Win32</Platform>
|
10
|
+
<TargetedPlatforms>1</TargetedPlatforms>
|
11
|
+
<AppType>Console</AppType>
|
12
|
+
</PropertyGroup>
|
13
|
+
<PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
|
14
|
+
<Base>true</Base>
|
15
|
+
</PropertyGroup>
|
16
|
+
<PropertyGroup Condition="('$(Platform)'=='Android' and '$(Base)'=='true') or '$(Base_Android)'!=''">
|
17
|
+
<Base_Android>true</Base_Android>
|
18
|
+
<CfgParent>Base</CfgParent>
|
19
|
+
<Base>true</Base>
|
20
|
+
</PropertyGroup>
|
21
|
+
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
|
22
|
+
<Base_Win32>true</Base_Win32>
|
23
|
+
<CfgParent>Base</CfgParent>
|
24
|
+
<Base>true</Base>
|
25
|
+
</PropertyGroup>
|
26
|
+
<PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
|
27
|
+
<Base_Win64>true</Base_Win64>
|
28
|
+
<CfgParent>Base</CfgParent>
|
29
|
+
<Base>true</Base>
|
30
|
+
</PropertyGroup>
|
31
|
+
<PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_1)'!=''">
|
32
|
+
<Cfg_1>true</Cfg_1>
|
33
|
+
<CfgParent>Base</CfgParent>
|
34
|
+
<Base>true</Base>
|
35
|
+
</PropertyGroup>
|
36
|
+
<PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
|
37
|
+
<Cfg_1_Win32>true</Cfg_1_Win32>
|
38
|
+
<CfgParent>Cfg_1</CfgParent>
|
39
|
+
<Cfg_1>true</Cfg_1>
|
40
|
+
<Base>true</Base>
|
41
|
+
</PropertyGroup>
|
42
|
+
<PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_2)'!=''">
|
43
|
+
<Cfg_2>true</Cfg_2>
|
44
|
+
<CfgParent>Base</CfgParent>
|
45
|
+
<Base>true</Base>
|
46
|
+
</PropertyGroup>
|
47
|
+
<PropertyGroup Condition="'$(Base)'!=''">
|
48
|
+
<DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace)</DCC_Namespace>
|
49
|
+
<DCC_DcuOutput>.\$(Platform)\$(Config)</DCC_DcuOutput>
|
50
|
+
<DCC_ExeOutput>.\$(Platform)\$(Config)</DCC_ExeOutput>
|
51
|
+
<DCC_E>false</DCC_E>
|
52
|
+
<DCC_N>false</DCC_N>
|
53
|
+
<DCC_S>false</DCC_S>
|
54
|
+
<DCC_F>false</DCC_F>
|
55
|
+
<DCC_K>false</DCC_K>
|
56
|
+
</PropertyGroup>
|
57
|
+
<PropertyGroup Condition="'$(Base_Android)'!=''">
|
58
|
+
<DCC_UsePackage>FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DataSnapProviderClient;xmlrtl;ibxpress;DbxCommonDriver;IndyProtocols;dbxcds;FireDACCommonDriver;bindengine;soaprtl;bindcompdbx;FMXTee;fmxFireDAC;CustomIPTransport;FireDAC;dsnap;IndyCore;FireDACDataSnapDriver;IndyIPCommon;CloudService;FireDACIBDriver;inet;FireDACDBXDriver;FmxTeeUI;RESTComponents;dbexpress;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
|
59
|
+
<Android_LauncherIcon72>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png</Android_LauncherIcon72>
|
60
|
+
<Android_LauncherIcon36>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png</Android_LauncherIcon36>
|
61
|
+
<Android_LauncherIcon144>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png</Android_LauncherIcon144>
|
62
|
+
<Android_LauncherIcon48>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png</Android_LauncherIcon48>
|
63
|
+
<Android_LauncherIcon96>$(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png</Android_LauncherIcon96>
|
64
|
+
</PropertyGroup>
|
65
|
+
<PropertyGroup Condition="'$(Base_Win32)'!=''">
|
66
|
+
<VerInfo_Locale>1033</VerInfo_Locale>
|
67
|
+
<DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
|
68
|
+
<VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
|
69
|
+
<DCC_UsePackage>DataSnapIndy10ServerTransport;FireDACASADriver;FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;vcldbx;FireDACPgDriver;FireDACODBCDriver;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;inetdb;TeeDB;vclib;inetdbbde;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DBXOdbcDriver;DataSnapServer;Tee;vclFireDAC;DataSnapProviderClient;xmlrtl;svnui;ibxpress;DbxCommonDriver;DBXSybaseASEDriver;vclimg;IndyProtocols;dbxcds;DBXMySQLDriver;DatasnapConnectorsFreePascal;FireDACCommonDriver;MetropolisUILiveTile;bindengine;vclactnband;vcldb;soaprtl;bindcompdbx;vcldsnap;bindcompvcl;FMXTee;TeeUI;vclie;fmxFireDAC;FireDACADSDriver;vcltouch;DBXDb2Driver;DBXOracleDriver;CustomIPTransport;vclribbon;VclSmp;FireDACMSSQLDriver;FireDAC;dsnap;Intraweb;fmxase;vcl;IndyCore;FireDACDataSnapDriver;IndyIPServer;IndyIPCommon;VCLRESTComponents;CloudService;dsnapcon;FireDACIBDriver;DBXFirebirdDriver;inet;DBXMSSQLDriver;fmxobj;FireDACDBXDriver;DBXInformixDriver;DataSnapConnectors;FireDACMySQLDriver;FmxTeeUI;vclx;CodeSiteExpressPkg;inetdbxpress;svn;DBXSybaseASADriver;FireDACOracleDriver;fmxdae;FireDACDb2Driver;RESTComponents;bdertl;FireDACMSAccDriver;adortl;dbexpress;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
|
70
|
+
<DCC_ConsoleTarget>true</DCC_ConsoleTarget>
|
71
|
+
</PropertyGroup>
|
72
|
+
<PropertyGroup Condition="'$(Base_Win64)'!=''">
|
73
|
+
<DCC_ConsoleTarget>true</DCC_ConsoleTarget>
|
74
|
+
<DCC_UsePackage>DataSnapIndy10ServerTransport;FireDACASADriver;FireDACSqliteDriver;bindcompfmx;DBXSqliteDriver;FireDACPgDriver;FireDACODBCDriver;fmx;rtl;dbrtl;DbxClientDriver;IndySystem;FireDACCommon;bindcomp;inetdb;TeeDB;vclib;DBXInterBaseDriver;DataSnapClient;DataSnapCommon;DBXOdbcDriver;DataSnapServer;Tee;vclFireDAC;DataSnapProviderClient;xmlrtl;ibxpress;DbxCommonDriver;DBXSybaseASEDriver;vclimg;IndyProtocols;dbxcds;DBXMySQLDriver;DatasnapConnectorsFreePascal;FireDACCommonDriver;MetropolisUILiveTile;bindengine;vclactnband;vcldb;soaprtl;bindcompdbx;vcldsnap;bindcompvcl;FMXTee;TeeUI;vclie;fmxFireDAC;FireDACADSDriver;vcltouch;DBXDb2Driver;DBXOracleDriver;CustomIPTransport;vclribbon;VclSmp;FireDACMSSQLDriver;FireDAC;dsnap;Intraweb;fmxase;vcl;IndyCore;FireDACDataSnapDriver;IndyIPServer;IndyIPCommon;VCLRESTComponents;CloudService;dsnapcon;FireDACIBDriver;DBXFirebirdDriver;inet;DBXMSSQLDriver;fmxobj;FireDACDBXDriver;DBXInformixDriver;DataSnapConnectors;FireDACMySQLDriver;FmxTeeUI;vclx;inetdbxpress;DBXSybaseASADriver;FireDACOracleDriver;fmxdae;FireDACDb2Driver;RESTComponents;FireDACMSAccDriver;adortl;dbexpress;IndyIPClient;$(DCC_UsePackage)</DCC_UsePackage>
|
75
|
+
</PropertyGroup>
|
76
|
+
<PropertyGroup Condition="'$(Cfg_1)'!=''">
|
77
|
+
<DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
|
78
|
+
<DCC_DebugDCUs>true</DCC_DebugDCUs>
|
79
|
+
<DCC_Optimize>false</DCC_Optimize>
|
80
|
+
<DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
|
81
|
+
<DCC_DebugInfoInExe>true</DCC_DebugInfoInExe>
|
82
|
+
<DCC_RemoteDebug>true</DCC_RemoteDebug>
|
83
|
+
</PropertyGroup>
|
84
|
+
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
|
85
|
+
<DCC_RemoteDebug>false</DCC_RemoteDebug>
|
86
|
+
</PropertyGroup>
|
87
|
+
<PropertyGroup Condition="'$(Cfg_2)'!=''">
|
88
|
+
<DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
|
89
|
+
<DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
|
90
|
+
<DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
|
91
|
+
<DCC_DebugInformation>0</DCC_DebugInformation>
|
92
|
+
</PropertyGroup>
|
93
|
+
<ItemGroup>
|
94
|
+
<DelphiCompile Include="$(MainSource)">
|
95
|
+
<MainSource>MainSource</MainSource>
|
96
|
+
</DelphiCompile>
|
97
|
+
<BuildConfiguration Include="Release">
|
98
|
+
<Key>Cfg_2</Key>
|
99
|
+
<CfgParent>Base</CfgParent>
|
100
|
+
</BuildConfiguration>
|
101
|
+
<BuildConfiguration Include="Base">
|
102
|
+
<Key>Base</Key>
|
103
|
+
</BuildConfiguration>
|
104
|
+
<BuildConfiguration Include="Debug">
|
105
|
+
<Key>Cfg_1</Key>
|
106
|
+
<CfgParent>Base</CfgParent>
|
107
|
+
</BuildConfiguration>
|
108
|
+
</ItemGroup>
|
109
|
+
<ProjectExtensions>
|
110
|
+
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
|
111
|
+
<Borland.ProjectType/>
|
112
|
+
<BorlandProject>
|
113
|
+
<Delphi.Personality>
|
114
|
+
<VersionInfo>
|
115
|
+
<VersionInfo Name="IncludeVerInfo">False</VersionInfo>
|
116
|
+
<VersionInfo Name="AutoIncBuild">False</VersionInfo>
|
117
|
+
<VersionInfo Name="MajorVer">1</VersionInfo>
|
118
|
+
<VersionInfo Name="MinorVer">0</VersionInfo>
|
119
|
+
<VersionInfo Name="Release">0</VersionInfo>
|
120
|
+
<VersionInfo Name="Build">0</VersionInfo>
|
121
|
+
<VersionInfo Name="Debug">False</VersionInfo>
|
122
|
+
<VersionInfo Name="PreRelease">False</VersionInfo>
|
123
|
+
<VersionInfo Name="Special">False</VersionInfo>
|
124
|
+
<VersionInfo Name="Private">False</VersionInfo>
|
125
|
+
<VersionInfo Name="DLL">False</VersionInfo>
|
126
|
+
<VersionInfo Name="Locale">1049</VersionInfo>
|
127
|
+
<VersionInfo Name="CodePage">1251</VersionInfo>
|
128
|
+
</VersionInfo>
|
129
|
+
<VersionInfoKeys>
|
130
|
+
<VersionInfoKeys Name="CompanyName">Rake</VersionInfoKeys>
|
131
|
+
<VersionInfoKeys Name="FileDescription">Test rake-delphi project XE5 description</VersionInfoKeys>
|
132
|
+
<VersionInfoKeys Name="FileVersion">4.3.2.1</VersionInfoKeys>
|
133
|
+
<VersionInfoKeys Name="InternalName">testproject.exe</VersionInfoKeys>
|
134
|
+
<VersionInfoKeys Name="LegalCopyright">Copyright. Копирайт</VersionInfoKeys>
|
135
|
+
<VersionInfoKeys Name="LegalTrademarks">Trademark. Торговая марка</VersionInfoKeys>
|
136
|
+
<VersionInfoKeys Name="OriginalFilename">testproject.exe</VersionInfoKeys>
|
137
|
+
<VersionInfoKeys Name="ProductName">Test rake-delphi project XE5 product name</VersionInfoKeys>
|
138
|
+
<VersionInfoKeys Name="ProductVersion">1.2.3.4</VersionInfoKeys>
|
139
|
+
<VersionInfoKeys Name="Comments">Test project comment</VersionInfoKeys>
|
140
|
+
<VersionInfoKeys Name="CFBundleName"/>
|
141
|
+
<VersionInfoKeys Name="CFBundleDisplayName"/>
|
142
|
+
<VersionInfoKeys Name="UIDeviceFamily"/>
|
143
|
+
<VersionInfoKeys Name="CFBundleIdentifier"/>
|
144
|
+
<VersionInfoKeys Name="CFBundleVersion"/>
|
145
|
+
<VersionInfoKeys Name="CFBundlePackageType"/>
|
146
|
+
<VersionInfoKeys Name="CFBundleSignature"/>
|
147
|
+
<VersionInfoKeys Name="CFBundleAllowMixedLocalizations"/>
|
148
|
+
<VersionInfoKeys Name="UISupportedInterfaceOrientations"/>
|
149
|
+
<VersionInfoKeys Name="CFBundleExecutable"/>
|
150
|
+
<VersionInfoKeys Name="CFBundleResourceSpecification"/>
|
151
|
+
<VersionInfoKeys Name="LSRequiresIPhoneOS"/>
|
152
|
+
<VersionInfoKeys Name="CFBundleInfoDictionaryVersion"/>
|
153
|
+
<VersionInfoKeys Name="CFBundleDevelopmentRegion"/>
|
154
|
+
<VersionInfoKeys Name="package"/>
|
155
|
+
<VersionInfoKeys Name="label"/>
|
156
|
+
<VersionInfoKeys Name="versionCode"/>
|
157
|
+
<VersionInfoKeys Name="versionName"/>
|
158
|
+
<VersionInfoKeys Name="persistent"/>
|
159
|
+
<VersionInfoKeys Name="restoreAnyVersion"/>
|
160
|
+
<VersionInfoKeys Name="installLocation"/>
|
161
|
+
<VersionInfoKeys Name="largeHeap"/>
|
162
|
+
<VersionInfoKeys Name="theme"/>
|
163
|
+
</VersionInfoKeys>
|
164
|
+
<Source>
|
165
|
+
<Source Name="MainSource">Project1.dpr</Source>
|
166
|
+
</Source>
|
167
|
+
</Delphi.Personality>
|
168
|
+
<Deployment/>
|
169
|
+
<Platforms>
|
170
|
+
<Platform value="Android">False</Platform>
|
171
|
+
<Platform value="Win32">True</Platform>
|
172
|
+
<Platform value="Win64">False</Platform>
|
173
|
+
</Platforms>
|
174
|
+
</BorlandProject>
|
175
|
+
<ProjectFileVersion>12</ProjectFileVersion>
|
176
|
+
</ProjectExtensions>
|
177
|
+
<Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
|
178
|
+
<Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
|
179
|
+
</Project>
|
data/test/test-delphi.rb
CHANGED
@@ -8,10 +8,11 @@ require 'rake/delphi/project'
|
|
8
8
|
require 'rake/delphi/tool'
|
9
9
|
require 'rake/helpers/unittest'
|
10
10
|
require 'helpers/consts'
|
11
|
+
require 'helpers/verinfo'
|
11
12
|
|
12
13
|
module DelphiTests
|
13
14
|
|
14
|
-
class TestDelphi <
|
15
|
+
class TestDelphi < TestVerInfo
|
15
16
|
private
|
16
17
|
def reenable_tasks(task)
|
17
18
|
return unless task.class <= Rake::Task
|
@@ -52,15 +53,18 @@ private
|
|
52
53
|
end
|
53
54
|
|
54
55
|
def exe
|
55
|
-
|
56
|
+
return PROJECT_EXE % name.gsub(/[():]/, '_')
|
56
57
|
end
|
58
|
+
|
57
59
|
public
|
58
60
|
def setup
|
61
|
+
Rake::Delphi::Dcc32Tool.reinit
|
62
|
+
ENV['DELPHI_DIR'] = nil
|
63
|
+
super
|
59
64
|
ENV['RAKE_DIR'] = PROJECT_PATH
|
60
65
|
File.unlink(exe) if File.exists?(exe)
|
61
66
|
res = PROJECT_PATH + '/resources.res'
|
62
67
|
File.unlink(res) if File.exists?(res)
|
63
|
-
# assert(! File.exists?(exe), 'File %s exists' % exe)
|
64
68
|
require PROJECT_PATH + '/Rakefile.rb'
|
65
69
|
end
|
66
70
|
|
@@ -109,6 +113,18 @@ public
|
|
109
113
|
'testproject works-=CONFIG=-')
|
110
114
|
end
|
111
115
|
|
116
|
+
def test_compile_use_absent_config
|
117
|
+
RakeFileUtils.verbose(Rake::Delphi::Logger.debug?) do
|
118
|
+
mv PROJECT_PATH.pathmap('%p%s%f.cfg'), PROJECT_PATH.pathmap('%p%s%f.absent.cfg')
|
119
|
+
begin
|
120
|
+
_test_compile_and_output({:usecfg => true},
|
121
|
+
'testproject works')
|
122
|
+
ensure
|
123
|
+
mv PROJECT_PATH.pathmap('%p%s%f.absent.cfg'), PROJECT_PATH.pathmap('%p%s%f.cfg')
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
112
128
|
def test_compile_use_library_path
|
113
129
|
# usually Indy components are in Delphi library paths
|
114
130
|
_test_compile_and_output({:defines => 'INDY', :uselibrarypath => true},
|
@@ -146,7 +162,19 @@ public
|
|
146
162
|
end
|
147
163
|
end
|
148
164
|
|
149
|
-
|
165
|
+
# extend Rake::Delphi::RCResourceCompiler with .delphidir method
|
166
|
+
# (just for tests)
|
167
|
+
module Rake::Delphi
|
168
|
+
|
169
|
+
class RCResourceCompiler
|
170
|
+
def delphidir
|
171
|
+
@@delphidir
|
172
|
+
end
|
173
|
+
end
|
174
|
+
|
175
|
+
end
|
176
|
+
|
177
|
+
class TestRCResourceCompiler < Test::Unit::TestCase
|
150
178
|
private
|
151
179
|
public
|
152
180
|
def setup
|
@@ -163,4 +191,4 @@ public
|
|
163
191
|
end
|
164
192
|
end
|
165
193
|
|
166
|
-
end
|
194
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rake'
|
4
|
+
require 'test/unit'
|
5
|
+
require 'rake/delphi/envvariables'
|
6
|
+
require 'rake/helpers/unittest'
|
7
|
+
|
8
|
+
class TestEnvVariables < Test::Unit::TestCase
|
9
|
+
|
10
|
+
def setup
|
11
|
+
ENV['BDS_PLATFORM'] = 'BDS platform'
|
12
|
+
ENV['BDS_PLATFORM_CASE'] = 'BDS platform case'
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_expands
|
16
|
+
env_vars = Rake::Delphi::EnvVariables.new(nil, 'c:/delphi directory/')
|
17
|
+
assert_equal('c:/delphi directory', env_vars['BDS'])
|
18
|
+
assert_equal('c:/delphi directory/Lib', env_vars['BDSLIB'])
|
19
|
+
assert_equal('Platform: BDS platform', env_vars.expand('Platform: $(BDS_PLATFORM)'))
|
20
|
+
assert_equal('Platform: BDS platform case', env_vars.expand('Platform: $(bds_platform_case)'))
|
21
|
+
assert_equal('Env: $(BDS_NON_EXISTANT)', env_vars.expand('Env: $(BDS_NON_EXISTANT)'))
|
22
|
+
end
|
23
|
+
end
|
data/test/test-git.rb
CHANGED
@@ -15,8 +15,8 @@ private
|
|
15
15
|
Rake::Delphi::ChDir.new(@rake_task, @test_git_dir) do
|
16
16
|
`rm -rf .git *`
|
17
17
|
`git init .`
|
18
|
-
`git config
|
19
|
-
`git config
|
18
|
+
`git config user.email "git@test.ru"`
|
19
|
+
`git config user.name "Git test"`
|
20
20
|
`echo file content > file.txt`
|
21
21
|
`git add file.txt`
|
22
22
|
`git commit -m "first commit"`
|
data/test/test-hashes.rb
CHANGED
data/test/test-projectinfo.rb
CHANGED
@@ -7,6 +7,7 @@ require 'rake/delphi/projectinfo'
|
|
7
7
|
require 'rake/delphi/dcc32'
|
8
8
|
require 'rake/helpers/unittest'
|
9
9
|
require 'helpers/consts'
|
10
|
+
require 'helpers/verinfo'
|
10
11
|
|
11
12
|
module Rake
|
12
13
|
module Delphi
|
@@ -21,27 +22,37 @@ end
|
|
21
22
|
|
22
23
|
module DelphiTests
|
23
24
|
|
24
|
-
class TestBDSVersionInfo <
|
25
|
+
class TestBDSVersionInfo < TestVerInfo
|
25
26
|
private
|
26
27
|
def version
|
27
|
-
2006
|
28
|
+
'2006'
|
29
|
+
end
|
30
|
+
protected
|
31
|
+
def delphi_version
|
32
|
+
return '10'
|
33
|
+
end
|
34
|
+
|
35
|
+
def do_getinfo
|
36
|
+
@info = Rake::Delphi::BDSVersionInfo.new(@rake_task)
|
28
37
|
end
|
29
38
|
public
|
30
39
|
def setup
|
40
|
+
super
|
31
41
|
@rake_task = Rake::Delphi::Dcc32Task.new('some-task-' + name, Rake.application)
|
32
42
|
@rake_task.systempath = PROJECT_PATH + '/testproject.dpr'
|
33
|
-
|
43
|
+
do_getinfo
|
34
44
|
end
|
35
45
|
|
36
46
|
def test_info
|
47
|
+
return unless prepare_ver_info_file?
|
37
48
|
assert_equal '4.3.2.1', @info['FileVersion']
|
38
49
|
assert_equal 'Rake', @info['CompanyName']
|
39
|
-
assert_equal 'Test rake-delphi project %
|
50
|
+
assert_equal 'Test rake-delphi project %s description' % version, @info['FileDescription']
|
40
51
|
assert_equal 'testproject.exe', @info['InternalName']
|
41
52
|
assert_equal 'Copyright. ��������', @info['LegalCopyright']
|
42
53
|
assert_equal 'Trademark. �������� �����', @info['LegalTrademarks']
|
43
54
|
assert_equal 'testproject.exe', @info['OriginalFilename']
|
44
|
-
assert_equal 'Test rake-delphi project %
|
55
|
+
assert_equal 'Test rake-delphi project %s product name' % version, @info['ProductName']
|
45
56
|
assert_equal '1.2.3.4', @info['ProductVersion']
|
46
57
|
assert_equal 'Test project comment', @info['Comments']
|
47
58
|
end
|
@@ -50,17 +61,86 @@ end
|
|
50
61
|
class TestRAD2007VersionInfo < TestBDSVersionInfo
|
51
62
|
private
|
52
63
|
def version
|
53
|
-
2007
|
64
|
+
'2007'
|
65
|
+
end
|
66
|
+
protected
|
67
|
+
def do_getinfo
|
68
|
+
@info = Rake::Delphi::RAD2007VersionInfo.new(@rake_task)
|
69
|
+
end
|
70
|
+
|
71
|
+
def delphi_version
|
72
|
+
return '11'
|
54
73
|
end
|
55
74
|
public
|
56
|
-
def
|
75
|
+
def test_info
|
57
76
|
super
|
58
|
-
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
class TestRAD2010VersionInfo < TestBDSVersionInfo
|
81
|
+
private
|
82
|
+
def version
|
83
|
+
'2010'
|
84
|
+
end
|
85
|
+
protected
|
86
|
+
def do_getinfo
|
87
|
+
@info = Rake::Delphi::RAD2010VersionInfo.new(@rake_task)
|
88
|
+
end
|
89
|
+
|
90
|
+
def delphi_version
|
91
|
+
return '13'
|
92
|
+
end
|
93
|
+
public
|
94
|
+
def test_info
|
95
|
+
super
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
class TestXEVersionInfo < TestBDSVersionInfo
|
100
|
+
private
|
101
|
+
def version
|
102
|
+
'XE5'
|
103
|
+
end
|
104
|
+
protected
|
105
|
+
def delphi_version
|
106
|
+
return '18'
|
59
107
|
end
|
60
108
|
|
109
|
+
def do_getinfo
|
110
|
+
@info = Rake::Delphi::XEVersionInfo.new(@rake_task)
|
111
|
+
end
|
112
|
+
public
|
61
113
|
def test_info
|
62
114
|
super
|
63
115
|
end
|
64
116
|
end
|
65
117
|
|
66
|
-
|
118
|
+
class TestBDSVersionInfoAbsent < TestBDSVersionInfo
|
119
|
+
protected
|
120
|
+
def prepare_ver_info_file?
|
121
|
+
return false
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
125
|
+
class TestRAD2007VersionInfoAbsent < TestRAD2007VersionInfo
|
126
|
+
protected
|
127
|
+
def prepare_ver_info_file?
|
128
|
+
return false
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
class TestRAD2010VersionInfoAbsent < TestRAD2010VersionInfo
|
133
|
+
protected
|
134
|
+
def prepare_ver_info_file?
|
135
|
+
return false
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
class TestXEVersionInfoAbsent < TestBDSVersionInfo
|
140
|
+
protected
|
141
|
+
def prepare_ver_info_file?
|
142
|
+
return false
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
end
|
data/test/test-zip.rb
CHANGED
@@ -14,14 +14,6 @@ public
|
|
14
14
|
File.unlink(@zip) if File.exists?(@zip)
|
15
15
|
end
|
16
16
|
|
17
|
-
def test_zip_no_task
|
18
|
-
assert_raise NoMethodError do
|
19
|
-
# first argument must be a Rake::Task
|
20
|
-
# "undefined method `application' for nil:NilClass" must be raised
|
21
|
-
Rake::Delphi::ZipTask.new(nil, nil, nil)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
17
|
def test_zip_no_filename
|
26
18
|
assert_raise RuntimeError do
|
27
19
|
# second argument must be non-empty
|