rake-delphi 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|