rake-delphi 0.0.4

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.
Files changed (70) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +29 -0
  5. data/Rakefile.rb +12 -0
  6. data/lib/rake/common/chdirtask.rb +21 -0
  7. data/lib/rake/common/classes.rb +15 -0
  8. data/lib/rake/common/dsl.rb +10 -0
  9. data/lib/rake/common/echotask.rb +34 -0
  10. data/lib/rake/common/exectask.rb +20 -0
  11. data/lib/rake/common/git.rb +102 -0
  12. data/lib/rake/common/hashtask.rb +43 -0
  13. data/lib/rake/common/initask.rb +31 -0
  14. data/lib/rake/common/libstask.rb +35 -0
  15. data/lib/rake/common/sendmailtask.rb +45 -0
  16. data/lib/rake/common/ziptask.rb +98 -0
  17. data/lib/rake/delphi/dcc32.rb +260 -0
  18. data/lib/rake/delphi/envvariables.rb +41 -0
  19. data/lib/rake/delphi/liblist.rb +29 -0
  20. data/lib/rake/delphi/project.rb +68 -0
  21. data/lib/rake/delphi/projectinfo.rb +76 -0
  22. data/lib/rake/delphi/rc.rb +25 -0
  23. data/lib/rake/delphi/resources.rb +126 -0
  24. data/lib/rake/delphi/tool.rb +140 -0
  25. data/lib/rake/delphi/version.rb +7 -0
  26. data/lib/rake/delphi.rb +4 -0
  27. data/lib/rake/helpers/digest.rb +28 -0
  28. data/lib/rake/helpers/file.rb +35 -0
  29. data/lib/rake/helpers/filelist.rb +12 -0
  30. data/lib/rake/helpers/gemversion.rb +42 -0
  31. data/lib/rake/helpers/logger.rb +15 -0
  32. data/lib/rake/helpers/rake.rb +29 -0
  33. data/lib/rake/helpers/raketask.rb +39 -0
  34. data/lib/rake/helpers/string.rb +10 -0
  35. data/lib/rake/helpers/unittest.rb +17 -0
  36. data/lib/rake/templates/project.erb +60 -0
  37. data/rake-delphi.gemspec +23 -0
  38. data/test/helpers/consts.rb +4 -0
  39. data/test/resources/FakeDelphi/dcc32.exe +0 -0
  40. data/test/resources/FakeDelphi/rc.exe +0 -0
  41. data/test/resources/echo/file.in +1 -0
  42. data/test/resources/echo/file.out +1 -0
  43. data/test/resources/hashes/hash.2.file +1 -0
  44. data/test/resources/hashes/hash.file +1 -0
  45. data/test/resources/ini/file.ini +7 -0
  46. data/test/resources/libstask/lib/level-1/level-2-1/level-3-1/.gitkeep +0 -0
  47. data/test/resources/libstask/lib/level-1/level-2-1/level-3-2/.gitkeep +0 -0
  48. data/test/resources/libstask/lib/level-1/level-2-2/.gitkeep +0 -0
  49. data/test/resources/testproject/.gitignore +8 -0
  50. data/test/resources/testproject/ExplicitLib/ExplicitLibUnit.pas +17 -0
  51. data/test/resources/testproject/Rakefile.rb +54 -0
  52. data/test/resources/testproject/lib/AnyLib/LibUnit.pas +17 -0
  53. data/test/resources/testproject/local.resources.txt +1 -0
  54. data/test/resources/testproject/release.dcc.cfg +1 -0
  55. data/test/resources/testproject/resources.rc +1 -0
  56. data/test/resources/testproject/testproject.bdsproj +175 -0
  57. data/test/resources/testproject/testproject.cfg +39 -0
  58. data/test/resources/testproject/testproject.dpr +78 -0
  59. data/test/resources/testproject/testproject.dproj +77 -0
  60. data/test/resources/testproject/testproject.ico +0 -0
  61. data/test/test-delphi.rb +166 -0
  62. data/test/test-echo.rb +33 -0
  63. data/test/test-gemversion.rb +61 -0
  64. data/test/test-git.rb +144 -0
  65. data/test/test-hashes.rb +57 -0
  66. data/test/test-ini.rb +18 -0
  67. data/test/test-libstask.rb +54 -0
  68. data/test/test-projectinfo.rb +66 -0
  69. data/test/test-zip.rb +43 -0
  70. metadata +179 -0
@@ -0,0 +1,140 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rake/common/exectask'
4
+ require 'rake/delphi/projectinfo'
5
+
6
+ module Rake
7
+ module Delphi
8
+ class CustomDelphiTool < CustomExec
9
+ DelphiRegRoot = 'SOFTWARE\\Borland\\Delphi'
10
+ BDSRegRoot = 'SOFTWARE\\Borland\\BDS'
11
+ EDSRegRoot = 'SOFTWARE\\CodeGear\\BDS'
12
+
13
+ # used mainly in tests
14
+ def self.reinit
15
+ @@version, @@delphidir, @@toolpath = nil, nil, nil
16
+ end
17
+ reinit
18
+
19
+ def initialize
20
+ @@version, @@delphidir, @@toolpath = self.class.find unless @@version
21
+ end
22
+
23
+ def self.toolName
24
+ raise 'Abstract method "toolName". Override it'
25
+ end
26
+
27
+ def version
28
+ @@version
29
+ end
30
+
31
+ def delphidir
32
+ @@delphidir
33
+ end
34
+
35
+ def toolpath
36
+ @@toolpath
37
+ end
38
+
39
+ def versionInfoClass
40
+ return @@version.to_f < 11 ? BDSVersionInfo : RAD2007VersionInfo
41
+ end
42
+
43
+ def self.readUserOption(key, name, ver)
44
+ begin
45
+ require 'win32/registry'
46
+ root = rootForVersion(ver) + '\\' + key
47
+ begin
48
+ ::Win32::Registry::HKEY_CURRENT_USER.open(root) do |reg|
49
+ reg_typ, reg_val = reg.read(name)
50
+ return reg_val.gsub('\\', '/')
51
+ end
52
+ rescue ::Win32::Registry::Error
53
+ return ''
54
+ end
55
+ rescue LoadError
56
+ return ''
57
+ end
58
+ end
59
+
60
+ def self.version4version(version)
61
+ if version.to_f >= 9
62
+ version = format('%.1f', version.to_f - 6)
63
+ end
64
+ if !version["."]
65
+ version << ".0"
66
+ end
67
+ return version
68
+ end
69
+
70
+ def self.rootForVersion(version)
71
+ if version.to_f < 9
72
+ regRoot = DelphiRegRoot
73
+ else
74
+ if version.to_f < 12
75
+ regRoot = BDSRegRoot
76
+ else
77
+ regRoot = EDSRegRoot
78
+ end
79
+ end
80
+ version = version4version(version)
81
+ return regRoot + '\\' + version
82
+ end
83
+
84
+ def self.readDelphiDir(ver)
85
+ begin
86
+ require 'win32/registry'
87
+ [::Win32::Registry::HKEY_LOCAL_MACHINE, \
88
+ # for local/manual installations
89
+ ::Win32::Registry::HKEY_CURRENT_USER].each do |regRoot|
90
+ begin
91
+ regRoot.open(rootForVersion(ver)) do |reg|
92
+ reg_typ, reg_val = reg.read('RootDir')
93
+ return reg_val.gsub('\\', '/')
94
+ end
95
+ rescue ::Win32::Registry::Error
96
+ end
97
+ end
98
+ return nil
99
+ rescue LoadError
100
+ return nil
101
+ end
102
+ end
103
+
104
+ def self.find(failIfNotFound = false)
105
+ v = ENV['DELPHI_VERSION']
106
+ if ENV['DELPHI_DIR']
107
+ # append trailing path delimiter
108
+ ENV['DELPHI_DIR'] = ENV['DELPHI_DIR'].gsub(/[^\/]$/, '\&/')
109
+ tool = ENV['DELPHI_DIR'] + toolName
110
+ checkToolFailure(tool) if failIfNotFound
111
+ return v, ENV['DELPHI_DIR'], tool
112
+ end
113
+ if v.to_s.empty?
114
+ v = []
115
+ (4..14).each { |n| v << n.to_s }
116
+ v.reverse!
117
+ else
118
+ v = [v]
119
+ end
120
+ v.each do |ver|
121
+ path = readDelphiDir(ver)
122
+ next unless path
123
+ tool = path + toolName
124
+ if File.exists?(tool) # found it !
125
+ ENV['DELPHI_VERSION'] = ver
126
+ ENV['DELPHI_DIR'] = path
127
+ return ver, path, tool
128
+ end
129
+ end
130
+ checkToolFailure(nil) if failIfNotFound
131
+ return nil
132
+ end
133
+
134
+ def self.checkToolFailure(toolpath)
135
+ fail 'Could not find %s: (%s)' % [toolName, toolpath.to_s] unless File.exists?(toolpath.to_s)
136
+ end
137
+
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,7 @@
1
+ # encoding: utf-8
2
+
3
+ module Rake
4
+ module Delphi
5
+ VERSION = '0.0.4'
6
+ end
7
+ end
@@ -0,0 +1,4 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rake/helpers/rake'
4
+ require 'rake/helpers/raketask'
@@ -0,0 +1,28 @@
1
+ # encoding: utf-8
2
+
3
+ require 'digest'
4
+ require 'zlib'
5
+
6
+ class Digest::CRC32 < Digest::Class
7
+ include Digest::Instance
8
+
9
+ def update(str)
10
+ @crc32 = Zlib.crc32(str, @crc32)
11
+ end
12
+
13
+ def initialize
14
+ reset
15
+ end
16
+
17
+ def reset
18
+ @crc32 = 0
19
+ end
20
+
21
+ def finish
22
+ @crc32.to_s
23
+ end
24
+
25
+ def hexdigest_to_digest(h)
26
+ h.unpack('a2' * (h.size / 2)).collect { |i| i.hex.chr }.join
27
+ end
28
+ end
@@ -0,0 +1,35 @@
1
+ # encoding: utf-8
2
+
3
+ class File
4
+ @@separator = nil
5
+ def self.cygwin?
6
+ RUBY_PLATFORM.downcase.include?('cygwin')
7
+ end
8
+
9
+ def self.separator
10
+ return @@separator if @@separator
11
+ # Return `backlash` for Cygwin and Windows (ALT_SEPARATOR)
12
+ # otherwise - system separator
13
+ return @@separator = cygwin? ? '\\' : (ALT_SEPARATOR ? ALT_SEPARATOR : SEPARATOR)
14
+ end
15
+
16
+ def self.cygpath(path, flag = nil)
17
+ flag ||= '-w'
18
+ # convert to Windows path
19
+ path = `cygpath #{flag} "#{path}"`.chomp
20
+ end
21
+
22
+ def self.expand_path2(path)
23
+ path = expand_path(path)
24
+ return path unless cygwin?
25
+ return cygpath(path)
26
+ end
27
+
28
+ def self.dirname2(path, flag = nil)
29
+ path = dirname(path)
30
+ return path unless cygwin?
31
+ path = cygpath(path, flag)
32
+ path.gsub!('\\', '\\\\') unless flag
33
+ path
34
+ end
35
+ end
@@ -0,0 +1,12 @@
1
+ # encoding: utf-8
2
+
3
+ module Rake
4
+ class FileList
5
+ def self.get_ignored_dir_pattern(dir)
6
+ Regexp.new("(^|[\\/\\\\])#{dir}([\\/\\\\]|$)", true)
7
+ end
8
+ IGNORE_GIT_PATTERN = get_ignored_dir_pattern('.git')
9
+ DEFAULT_IGNORE_PATTERNS << IGNORE_GIT_PATTERN \
10
+ if !DEFAULT_IGNORE_PATTERNS.include?(IGNORE_GIT_PATTERN)
11
+ end
12
+ end
@@ -0,0 +1,42 @@
1
+ # encoding: utf-8
2
+
3
+ module Gem
4
+ class VersionImproved < Version
5
+ def initialize(version)
6
+ super
7
+ @version = '0.0.0.0' if @version.empty?
8
+ # avoid bug when Gem::Version <= 1.3.7
9
+ @segments = nil
10
+ end
11
+
12
+ ##
13
+ # Return a new version object where the previous to the last revision
14
+ # number is one lower (e.g., 5.3.1 => 5.2).
15
+ #
16
+ # Pre-release (alpha) parts, e.g, 5.3.1.b.2 => 5.2, are ignored.
17
+ def prev_release
18
+ segments = self.segments.dup
19
+ segments.pop while segments.any? { |s| String === s }
20
+ segments.pop if segments.size > 1
21
+
22
+ segments[-1] = segments[-1].to_i.pred.to_s
23
+ self.class.new segments.join(".")
24
+ end
25
+
26
+ ##
27
+ # The build for this version (e.g. 1.2.0.a -> 1.2.1).
28
+ # Non-prerelease versions return themselves.
29
+ def build
30
+ return self unless prerelease?
31
+
32
+ segments = self.segments.dup
33
+ segments.pop while segments.any? { |s| String === s }
34
+ segments[-1] = segments[-1].succ
35
+ self.class.new segments.join('.')
36
+ end
37
+
38
+ def comma
39
+ segments.dup.join(',')
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,15 @@
1
+ # encoding: utf-8
2
+
3
+ class Logger
4
+ class Formatter
5
+ # following manipulations with $-v
6
+ # are suppressing warning "already initialized constant"
7
+ ov = $-v
8
+ begin
9
+ $-v = nil
10
+ Format = "%6$s\n"
11
+ ensure
12
+ $-v = ov
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,29 @@
1
+ # encoding: utf-8
2
+
3
+ # extend Rake task with a `set_non_standard_vars` method
4
+ module Rake
5
+ def self.set_non_standard_vars
6
+ # convert tasks to vars
7
+ # and remove them from the list of tasks
8
+ Rake.application.top_level_tasks.delete_if do |task|
9
+ # if task name is like <var.with.dot>=<value>
10
+ if /^[^.=][^=]+=.*/.match(task)
11
+ name, value = task.split('=', 2)
12
+ ENV[name] = value
13
+ true
14
+ end
15
+ end
16
+ end
17
+
18
+ def self.quotepath(switch, path)
19
+ return ! path.to_s.empty? ? "#{switch}\"#{path.to_s}\"" : ''
20
+ end
21
+
22
+ def self.ruby18?
23
+ /^1\.8/.match(RUBY_VERSION)
24
+ end
25
+
26
+ def self.cygwin?
27
+ RUBY_PLATFORM.downcase.include?('cygwin')
28
+ end
29
+ end
@@ -0,0 +1,39 @@
1
+ # encoding: utf-8
2
+
3
+ require 'logger'
4
+ require 'rake/helpers/logger'
5
+
6
+ # extend Rake task with a logger
7
+ module Rake
8
+ class Task
9
+ alias_method :initialize_base, :initialize
10
+ alias_method :execute_base, :execute
11
+ attr_reader :logger
12
+
13
+ def initialize(name, app)
14
+ @logger = Logger.new(STDOUT)
15
+ initialize_base(name, app)
16
+ end
17
+
18
+ # replace execute to indicate what method is executed
19
+ def execute(args=nil)
20
+ puts "Executing #{name}"
21
+ execute_base(args)
22
+ end
23
+
24
+ def out(msg)
25
+ logger.info(msg)
26
+ end
27
+
28
+ def trace?
29
+ application.options.trace || $DEBUG || false
30
+ end
31
+
32
+ def shortname
33
+ scope = @scope.dup.pop.to_s
34
+ n = name.dup
35
+ n.gsub!(scope + ':', '') unless scope.empty?
36
+ return n
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,10 @@
1
+ # encoding: utf-8
2
+
3
+ # extend class String with a `prepend` method
4
+ class String
5
+ if RUBY_VERSION =~ /^1\.8/
6
+ def prepend(value)
7
+ insert(0, value)
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,17 @@
1
+ # encoding: utf-8
2
+
3
+ require 'test/unit'
4
+
5
+ # Ruby 1.9 uses "minitest". There is no `name` property there
6
+ if defined? MiniTest::Unit::TestCase && Test::Unit::TestCase < MiniTest::Unit::TestCase
7
+ module Test
8
+ module Unit
9
+ class TestCase
10
+ def name
11
+ __name__
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+
@@ -0,0 +1,60 @@
1
+ #define VS_FF_DEBUG 0x00000001
2
+ #define VS_FF_PRERELEASE 0x00000002
3
+ #define VS_FF_PATCHED 0x00000004
4
+ #define VS_FF_PRIVATEBUILD 0x00000008
5
+ #define VS_FF_INFOINFERRED 0x00000010
6
+ #define VS_FF_SPECIALBUILD 0x00000020
7
+
8
+ #ifndef DEBUG
9
+ #define VER_DEBUG 0
10
+ #else
11
+ #define VER_DEBUG VS_FF_DEBUG
12
+ #endif
13
+
14
+ #ifndef RC
15
+ #define VER_PRERELEASE 0
16
+ #else
17
+ #define VER_PRERELEASE VS_FF_PRERELEASE
18
+ #endif
19
+
20
+
21
+ #define _FILEFLAGS (VER_PRERELEASE|VER_DEBUG)
22
+
23
+ LANGUAGE <%= language %>, <%= sublanguage %>
24
+ MAINICON ICON <%= mainicon %>
25
+ 1 VERSIONINFO
26
+ FILEVERSION <%= version.comma %>
27
+ PRODUCTVERSION <%= product.comma %>
28
+ FILEOS 0x40004
29
+ FILETYPE <%= filetype %>
30
+ FILEFLAGSMASK _FILEFLAGS
31
+ FILEFLAGS _FILEFLAGS
32
+ BEGIN
33
+ BLOCK "StringFileInfo"
34
+ BEGIN
35
+ BLOCK "<%= lang %><%= codepage %>"
36
+ BEGIN
37
+ VALUE "CompanyName", "<%= versioninfo.CompanyName %>\0"
38
+ VALUE "FileDescription", "<%= versioninfo.FileDescription %>\0"
39
+ VALUE "FileVersion", "<%= version %>\0"
40
+ VALUE "InternalName", "<%= versioninfo.InternalName %>\0"
41
+ VALUE "LegalCopyright", "<%= versioninfo.LegalCopyright %>\0"
42
+ VALUE "LegalTrademarks", "<%= versioninfo.LegalTrademarks %>\0"
43
+ VALUE "OriginalFilename", "<%= versioninfo.OriginalFilename %>\0"
44
+ VALUE "ProductName", "<%= versioninfo.ProductName %>\0"
45
+ VALUE "ProductVersion", "<%= versioninfo.ProductVersion %>\0"
46
+ VALUE "Comments", "<%= versioninfo.Comments %>\0"
47
+ #ifdef DEBUG
48
+ VALUE "DebugBuild", "DebugBuild\0"
49
+ #endif
50
+ #ifdef RC
51
+ VALUE "ReleaseCandidate", "<%= releaseCandidate %>\0"
52
+ #endif
53
+ END
54
+ END
55
+
56
+ BLOCK "VarFileInfo"
57
+ BEGIN
58
+ VALUE "Translation", 0x<%= lang %> 0x<%= codepage %>
59
+ END
60
+ END
@@ -0,0 +1,23 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'rake/delphi/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "rake-delphi"
8
+ spec.version = Rake::Delphi::VERSION
9
+ spec.authors = ['Alexey Shumkin']
10
+ spec.email = ['Alex.Crezoff@gmail.com']
11
+ spec.description = 'Tasks for building Delphi projects'
12
+ spec.summary = 'Tasks for building Delphi projects'
13
+ spec.homepage = 'http://github.com/ashumkin/rake-delphi.gem'
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
23
+ end
@@ -0,0 +1,4 @@
1
+ module DelphiTests
2
+ PROJECT_PATH = File.expand_path('../../resources/testproject', __FILE__)
3
+ PROJECT_EXE = PROJECT_PATH + '/bin/%s/testproject.exe'
4
+ end
File without changes
File without changes
@@ -0,0 +1 @@
1
+ ${echo_variable} must be replaced by its <value>
@@ -0,0 +1 @@
1
+ echo_variable_value must be replaced by its <value>
@@ -0,0 +1 @@
1
+ some content if a file 2
@@ -0,0 +1 @@
1
+ some content
@@ -0,0 +1,7 @@
1
+ [IniSection]
2
+ IniValue1=some ini value 1
3
+ IniValue2=some ini value 2
4
+
5
+ [IniSection-2]
6
+ IniValue1=ini section 2 value 1
7
+ IniValue2=ini section 2 value 2
@@ -0,0 +1,8 @@
1
+ /bin/
2
+ *.res
3
+ *.exe
4
+ *.dcu
5
+ *.local
6
+ *.map
7
+ *.rc
8
+ *.drc
@@ -0,0 +1,17 @@
1
+ unit ExplicitLibUnit;
2
+
3
+ interface
4
+
5
+ uses
6
+ SysUtils;
7
+
8
+ function ExplicitLibUnitFunction: string;
9
+
10
+ implementation
11
+
12
+ function ExplicitLibUnitFunction: string;
13
+ begin
14
+ Result := '-=WITH EXPLICIT LIBS=-';
15
+ end;
16
+
17
+ end.
@@ -0,0 +1,54 @@
1
+ # encoding: utf-8
2
+
3
+ =begin rdoc
4
+
5
+ =end
6
+
7
+ require 'rake'
8
+ require 'rake/delphi'
9
+ require 'rake/delphi/project'
10
+
11
+ if RAKEVERSION !~ /^0\.8/
12
+ require 'rake/dsl_definition'
13
+ include Rake::DSL
14
+ Rake::TaskManager.record_task_metadata = true if Rake::TaskManager.respond_to?('record_task_metadata')
15
+ end
16
+
17
+ module TestModule
18
+ PROJECT_NAME = 'Rake test project'
19
+ PROJECT_FILE = 'testproject'
20
+
21
+ task :default => 'test:compile'
22
+
23
+ namespace :test do
24
+
25
+ desc 'Compilation'
26
+ _task = task :compile do |t|
27
+ puts 'task %s executed' % t.name
28
+ end
29
+
30
+ desc 'Preparation'
31
+ task :prepare, :useresources, :options do |t, opts|
32
+ _task = Rake::Task['test:compile']
33
+ dpr = Rake.application.define_task(Rake::Delphi::Project, (_task.shortname + ':delphi').to_sym)
34
+ dpr[:resources_additional] = 'resources' unless opts[:useresources]
35
+ options = opts[:options] || {}
36
+ if options.kind_of?(String)
37
+ options = eval(options)
38
+ end
39
+ options.each do |k, v|
40
+ dpr[k] = v
41
+ end
42
+ dpr_vars = {}
43
+ dpr_vars[:bin_path] = options[:bin] || File.expand_path(File.dirname(__FILE__) + '/bin')
44
+
45
+ dpr_vars[:bin] = File.expand_path2(dpr_vars[:bin_path])
46
+ dpr.init(Module.nesting, File.expand_path(__FILE__), dpr_vars, 0)
47
+
48
+ directory dpr_vars[:bin_path]
49
+ _task.enhance [dpr_vars[:bin_path], dpr]
50
+ end
51
+
52
+ end
53
+
54
+ end
@@ -0,0 +1,17 @@
1
+ unit LibUnit;
2
+
3
+ interface
4
+
5
+ uses
6
+ SysUtils;
7
+
8
+ function LibUnitFunction: string;
9
+
10
+ implementation
11
+
12
+ function LibUnitFunction: string;
13
+ begin
14
+ Result := '-=WITH LIBS=-';
15
+ end;
16
+
17
+ end.
@@ -0,0 +1 @@
1
+ -=WITH RESOURCES=-
@@ -0,0 +1 @@
1
+ -DRELEASE_CFG
@@ -0,0 +1 @@
1
+ LOCAL_RESOURCES RCDATA local.resources.txt