rakelib/setup.rake
author Jan Vrany <jan.vrany@labware.com>
Mon, 27 Jun 2022 15:27:52 +0100
changeset 326 42a9250a00b2
parent 309 6e39986dfabb
child 334 eb15c224410b
permissions -rw-r--r--
Rakefiles: propagate phase-changes back to staging repository When pusshing changes to upstream, a changesets' phase may change (from draft to public). These phase-changes need to be propagated back to 'staging' repository so it cannot ve changed anymore.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
     1
unless defined? BUILD_DIR;     BUILD_DIR = 'build'; end
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
     2
unless defined? BUILD_ID;      BUILD_ID = (ENV['BUILD_NUMBER'] ? "build#{ENV['BUILD_NUMBER']}" : "#{Time.now.strftime('%Y%m%d')}"); end
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
     3
unless defined? ARTIFACTS_DIR; ARTIFACTS_DIR = 'artifacts'; end
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
     4
unless defined? REPORT_DIR;    REPORT_DIR = 'reports'; end
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
     5
unless defined? TMP_DIR;       TMP_DIR = 'tmp'; end
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
     6
unless defined? DEBUG;         DEBUG = nil; end
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
144
30d9a0025ae7 Rakefiles: renamed (generated) `config.rb` to `stx-config.rb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
     8
load BUILD_DIR / 'stx-config.rake' if File.exist?(BUILD_DIR / 'stx-config.rake')
3
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
     9
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
    10
unless defined? PROJECT;       PROJECT = 'stx:jv-branch'; end
7
b6fe3a90f6e0 Added `zip()` & `unzip()` extensions to easily create / extract archives from build scripts.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 4
diff changeset
    11
169
f9f519bb10b6 Use GNU target triplets to specify build targets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
    12
f9f519bb10b6 Use GNU target triplets to specify build targets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
    13
245
b02b6cf48a23 Rakefiles: use `config.guess` from autotools for aut-detect `BUILD_TARGET`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 238
diff changeset
    14
# Guess the value of BUILD_TARGET for system on which we're currently 
b02b6cf48a23 Rakefiles: use `config.guess` from autotools for aut-detect `BUILD_TARGET`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 238
diff changeset
    15
# running in form of GNU target triplet, such as `x86_64-pc-linux-gnu`.
b02b6cf48a23 Rakefiles: use `config.guess` from autotools for aut-detect `BUILD_TARGET`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 238
diff changeset
    16
# Essentially a wrapper for config.guess used with autotools. 
251
492082f2f11d Windows 10 target guess workaround (mapping unknown target to known one)
patrik.svestka@gmail.com
parents: 245
diff changeset
    17
def build_target_guess
492082f2f11d Windows 10 target guess workaround (mapping unknown target to known one)
patrik.svestka@gmail.com
parents: 245
diff changeset
    18
  target = `sh config.guess`.chop
492082f2f11d Windows 10 target guess workaround (mapping unknown target to known one)
patrik.svestka@gmail.com
parents: 245
diff changeset
    19
  # Workaround for MSYS2 / MINGW environment. When using MSYS2 environment to build 
492082f2f11d Windows 10 target guess workaround (mapping unknown target to known one)
patrik.svestka@gmail.com
parents: 245
diff changeset
    20
  # Smalltalk/X, GNU config.guess reports `x86_64-pc-msys` rather than `i686-pc-mingw32`
492082f2f11d Windows 10 target guess workaround (mapping unknown target to known one)
patrik.svestka@gmail.com
parents: 245
diff changeset
    21
  # or `x86_64-w64-mingw32` which are the values used by CI and/or third-party libraries. 
492082f2f11d Windows 10 target guess workaround (mapping unknown target to known one)
patrik.svestka@gmail.com
parents: 245
diff changeset
    22
  # Therefore we unify the value here (at least for now).
492082f2f11d Windows 10 target guess workaround (mapping unknown target to known one)
patrik.svestka@gmail.com
parents: 245
diff changeset
    23
  case target
492082f2f11d Windows 10 target guess workaround (mapping unknown target to known one)
patrik.svestka@gmail.com
parents: 245
diff changeset
    24
    when 'x86_64-pc-msys'
492082f2f11d Windows 10 target guess workaround (mapping unknown target to known one)
patrik.svestka@gmail.com
parents: 245
diff changeset
    25
      target = 'x86_64-w64-mingw32'
492082f2f11d Windows 10 target guess workaround (mapping unknown target to known one)
patrik.svestka@gmail.com
parents: 245
diff changeset
    26
  end  
492082f2f11d Windows 10 target guess workaround (mapping unknown target to known one)
patrik.svestka@gmail.com
parents: 245
diff changeset
    27
  # /Workaround
492082f2f11d Windows 10 target guess workaround (mapping unknown target to known one)
patrik.svestka@gmail.com
parents: 245
diff changeset
    28
  return target
3
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    29
end
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    30
298
4e3234986e01 Rakefiles: allow to override `make` command using environment variable
Jan Vrany <jan.vrany@labware.com>
parents: 254
diff changeset
    31
if not defined? BUILD_TARGET;
4e3234986e01 Rakefiles: allow to override `make` command using environment variable
Jan Vrany <jan.vrany@labware.com>
parents: 254
diff changeset
    32
  BUILD_TARGET = ENV['BUILD_TARGET'] || build_target_guess;
4e3234986e01 Rakefiles: allow to override `make` command using environment variable
Jan Vrany <jan.vrany@labware.com>
parents: 254
diff changeset
    33
end
4e3234986e01 Rakefiles: allow to override `make` command using environment variable
Jan Vrany <jan.vrany@labware.com>
parents: 254
diff changeset
    34
ENV['BUILD_TARGET'] = BUILD_TARGET
169
f9f519bb10b6 Use GNU target triplets to specify build targets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
    35
249
20b718d60bba Rakefiles: automagically checkout revisions for given branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 245
diff changeset
    36
# "Guess" the current "branch".
20b718d60bba Rakefiles: automagically checkout revisions for given branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 245
diff changeset
    37
def build_branch_guess()
20b718d60bba Rakefiles: automagically checkout revisions for given branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 245
diff changeset
    38
  repo =  HG::Repository.new('.')
20b718d60bba Rakefiles: automagically checkout revisions for given branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 245
diff changeset
    39
  return repo.bookmark() || repo.branch()
20b718d60bba Rakefiles: automagically checkout revisions for given branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 245
diff changeset
    40
end
20b718d60bba Rakefiles: automagically checkout revisions for given branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 245
diff changeset
    41
20b718d60bba Rakefiles: automagically checkout revisions for given branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 245
diff changeset
    42
BUILD_BRANCH = build_branch_guess()
20b718d60bba Rakefiles: automagically checkout revisions for given branch
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 245
diff changeset
    43
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    44
unless defined? TOOLCHAIN
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    45
  if ENV.has_key? 'TOOLCHAIN'
3
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    46
    TOOLCHAIN = ENV['TOOLCHAIN']
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    47
  else
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    48
    if unix?
3
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    49
      TOOLCHAIN='gcc'
169
f9f519bb10b6 Use GNU target triplets to specify build targets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
    50
    elsif win32?    
f9f519bb10b6 Use GNU target triplets to specify build targets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 144
diff changeset
    51
      if /x86_64/ =~ BUILD_TARGET
3
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    52
        TOOLCHAIN='mingw64'
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    53
      else
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    54
        TOOLCHAIN='mingw32'
3
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    55
      end
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    56
    else
139
9ba260bbbdf0 Fixed slip in commit 2507036dfee8 causing runtime error when building 32bit Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
    57
      raise Exception.new('Unsupported operating system')
3
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    58
    end
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    59
  end
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    60
end
18c56730fabf Renamed `amd64?` to `x86_64?` for consistency
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 0
diff changeset
    61
144
30d9a0025ae7 Rakefiles: renamed (generated) `config.rb` to `stx-config.rb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
    62
unless File.exist? BUILD_DIR / 'stx-config.rake'
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
  if defined? PROJECT
144
30d9a0025ae7 Rakefiles: renamed (generated) `config.rb` to `stx-config.rb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
    64
    mkdir_p BUILD_DIR
30d9a0025ae7 Rakefiles: renamed (generated) `config.rb` to `stx-config.rb`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
    65
    File.open(BUILD_DIR / 'stx-config.rake', 'w') do | f |
18
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    66
      f.puts <<COMMENT
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    67
# This file contans a default build configuration. It is created automatically
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    68
# when `rake` is called for the very first time. You may still override values
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    69
# on command line, i.e., 
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    70
#
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    71
#     rake PROJECT=some-other-project 
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    72
#
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    73
# This file SHOULD NOT be checked in a repository. 
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    74
#
647bee28090f Write default configuration to `config.rb` rather than to `.config.rake`.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 9
diff changeset
    75
COMMENT
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
    76
      f.puts "unless defined? PROJECT; PROJECT='#{PROJECT}'; end"
238
8d6be42520be Rakefiles: cleanup - removed `REPOSITORYSET` variable
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 234
diff changeset
    77
      f.puts "unless defined? BUILD_TARGET; BUILD_TARGET = '#{BUILD_TARGET}'; end"      
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
      if defined? PROJECT_DIRS
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
    79
        f.puts "unless defined? PROJECT_DIRS; PROJECT_DIRS='#{PROJECT_DIRS}'; end"
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
    end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
  end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
    85
unless defined? PROJECT_DIRS; PROJECT_DIRS = ''; end
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    86
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    87
case TOOLCHAIN
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    88
  when 'gcc'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    89
    OBJ_DIR = '.'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    90
    OBJ_SUFFIX = 'o'
298
4e3234986e01 Rakefiles: allow to override `make` command using environment variable
Jan Vrany <jan.vrany@labware.com>
parents: 254
diff changeset
    91
    MAKE=ENV['MAKE'] || 'make'
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    92
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    93
  when 'bcc'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    94
    OBJ_DIR = 'objbc'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    95
    OBJ_SUFFIX = 'obj'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    96
    MAKE='bmake.bat -DUSEBC'
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    98
  when 'mingw64'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
    99
    if File.exist? 'C:\mingw64\bin'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   100
      ENV['MINGW_DIR'] ='C:\MINGW64'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   101
      ENV['USEMINGW_ARG'] = '-DUSEMINGW64'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   102
    elsif File.exist? 'C:\MSYS64\MINGW64\bin\gcc.exe'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   103
      ENV['MINGW_DIR'] ='C:\MSYS64\MINGW64'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   104
      ENV['USEMINGW_ARG'] = '-DUSEMINGW64'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   105
    else
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   106
      raise Exception.new(%q{MINGW64 nor MSYS2 found in C:\MinGW64 nor C:\MSYS64!})
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   107
    end
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   108
    ENV['MINGW'] = '__MINGW64__'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   109
    OBJ_DIR = 'objmingw'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   110
    OBJ_SUFFIX = 'obj'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   111
    MAKE='mingwmake.bat'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   112
    ENV['PATH'] = "#{ENV['PATH']};#{ENV['MINGW_DIR']}\\bin"
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   113
139
9ba260bbbdf0 Fixed slip in commit 2507036dfee8 causing runtime error when building 32bit Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   114
  when 'mingw32'
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   115
    if File.exist? 'C:\mingw\bin'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   116
      ENV['MINGW_DIR'] ='C:\MINGW'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   117
      ENV['USEMINGW_ARG'] = '-DUSEMINGW32'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   118
    elsif File.exist? 'C:\MSYS64\MINGW32\bin\gcc.exe'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   119
      ENV['MINGW_DIR'] ='C:\MSYS64\MINGW32'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   120
      ENV['USEMINGW_ARG'] = '-DUSEMINGW32'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   121
      system 'set'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   122
    elsif File.exist? 'C:\MSYS\MINGW32\bin\gcc.exe'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   123
      ENV['MINGW_DIR'] ='C:\MSYS\MINGW32'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   124
      ENV['USEMINGW_ARG'] = '-DUSEMINGW32'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   125
    else
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   126
      raise Exception.new(%q{MINGW32 nor MSYS2 found in C:\MinGW nor C:\MSYS64 nor C:\MSYS!})
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   127
    end
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   128
    ENV['MINGW'] = '__MINGW32__'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   129
    OBJ_DIR = 'objmingw'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   130
    OBJ_SUFFIX = 'obj'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   131
    MAKE='mingwmake.bat'
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   132
    ENV['PATH'] = "#{ENV['PATH']};#{ENV['MINGW_DIR']}\\bin"
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   133
23
7dad21b22558 Added support to build under MSYS2 environment
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18
diff changeset
   134
  else
139
9ba260bbbdf0 Fixed slip in commit 2507036dfee8 causing runtime error when building 32bit Windows
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   135
    raise Exception.new("Unsupported toolchain: #{TOOLCHAIN}")
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   136
end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   137
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   138
task :setup => %i(setup:pre
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   139
                  setup:main
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   140
                  setup:post)
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   141
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   142
task :'setup:pre'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   143
task :'setup:post'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   144
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   145
task :'setup:main' => %i(setup:projects setup:project setup:tasks)
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   146
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   147
task :'setup:projects' do
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   148
  Rake::Stx::Configuration.read_specs(PROJECT_DIRS)
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   149
end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   150
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   151
task :'setup:project' => :'setup:projects' do
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   152
  unless defined? PROJECT; error('PROJECT variable not defined!') end
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   153
  project! PROJECT.to_sym
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   154
  project.apply_imports
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   155
  app_name = project.app_name || 'smalltalkx'
234
05943c900d5e Rakefiles: added new target `artifacts:source`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 216
diff changeset
   156
  app_version = project.app_version || '8.0.0'
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   157
234
05943c900d5e Rakefiles: added new target `artifacts:source`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 216
diff changeset
   158
  if not defined? BUILD_NAME; 
05943c900d5e Rakefiles: added new target `artifacts:source`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 216
diff changeset
   159
    BUILD_NAME = "#{app_name}-#{app_version}_#{BUILD_TARGET}"    
05943c900d5e Rakefiles: added new target `artifacts:source`
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 216
diff changeset
   160
  end  
93
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   161
end
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   162
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   163
task :'setup:dependencies' => :checkout do
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   164
  project.packages.each do |pkg|
309
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   165
    all = project.packages.collect { | pkg | pkg.name }
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   166
    if pkg.name == 'stx:stc' or pkg.name == 'stx:librun' or File.exist? (BUILD_DIR / pkg.directory / pkg.project_definition_file_name)
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   167
      unless pkg.test_package?
309
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   168
        prereqs_reqd = pkg.prereqs(mandatory: true)
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   169
        prereqs_refd = pkg.prereqs(referenced: true)
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   170
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   171
        # Now, check that all mandatory and required packages are defined.
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   172
        # This is merely a check to make sure we have all the code ready.
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   173
        prereqs_reqd.each do | dep |
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   174
          if not all.include? dep then
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   175
            error("Package #{pkg.name} requires #{dep} but it is not defined in spec!")
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   176
          end
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   177
        end
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   178
        prereqs_refd.each do | dep |
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   179
          if not all.include? dep then
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   180
            warn("Package #{pkg.name} references #{dep} but it is not defined in spec!")
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   181
          end
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   182
        end
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   183
93
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   184
        task "#{project.application.name}:dependencies" => pkg.name
309
6e39986dfabb Rakefiles: check that all required packages are defined
Jan Vrany <jan.vrany@labware.com>
parents: 298
diff changeset
   185
        task "#{pkg.name}:dependencies" => prereqs_reqd
93
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   186
      end
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   187
    end
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   188
  end
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   189
end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   190
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   191
task :'setup:tasks' => :'setup:tasks:internal'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   192
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   193
task :'setup:tasks:internal' => :'setup:project' do
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   194
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   195
  project.tasks.each {|t| t.define!}
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   196
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   197
  # compile task
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   198
  project.application ? (task :'compile:application' => project.application.name) : (task :'compile:application')
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   199
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   200
  info 'Defining tasks for packages...'
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   201
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   202
  project.packages_and_application.each do |pkg|
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   203
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   204
    info "Defining task for package #{pkg.name}"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   205
93
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   206
    if unix? #and not File.exist? BUILD_DIR / pkg.directory / 'makefile'    
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   207
      task pkg.name => [BUILD_DIR / pkg.directory / 'makefile']
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   208
      file BUILD_DIR / pkg.directory / 'makefile' do
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   209
        chdir BUILD_DIR / pkg.directory do
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
   210
          raise Exception.new("Cannot run stmkmf for #{pkg.directory}") unless system "#{pkg.top / 'stx' / 'rules' / 'stmkmf'}"
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   211
        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   212
      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   213
    end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   214
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   215
    #require 'find'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   216
    #[ 'bitmaps', 'resources' ].each do | dir |
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   217
    #  path = BUILD_DIR / pkg.directory() / dir
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   218
    #  if File.exist?(path)
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   219
    #    Find.find(File.expand_path(path)) do | file |
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   220
    #      if FileTest.directory?(file)
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   221
    #        if (File.basename(file) == '..') || (File.basename(file) == '.')
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   222
    #          Find.prune       # Don't look any further into this directory.
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   223
    #        else
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   224
    #          if File.exists?(File.join(file, '.svn'))
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   225
    #            rm_rf File.join(file, '.svn')
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   226
    #            #Find.prune
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   227
    #          end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   228
    #        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   229
    #      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   230
    #    end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   231
    #  end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   232
    #end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   233
131
edaf0258b9c2 Rakefiles: make per-package compilation task to setup its dependencies
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
   234
    task "#{pkg.name}" => [ :'setup:dependencies' , "#{pkg.name}:dependencies", "#{pkg.name}:pre", "#{pkg.name}:main", "#{pkg.name}:post" ]
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   235
133
8229af6e81df Rakefiles: update VM's symbol database after a package compiled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   236
    # For Smalltalk class libraries, we have to update VM symbol database
8229af6e81df Rakefiles: update VM's symbol database after a package compiled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   237
    # if changed...
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
   238
    if pkg.name != 'stx:stc' && pkg.name != 'stx:librun'
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
   239
      task "#{pkg.name}" => %w(stx:librun:symbols)
133
8229af6e81df Rakefiles: update VM's symbol database after a package compiled
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 132
diff changeset
   240
    end
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   241
131
edaf0258b9c2 Rakefiles: make per-package compilation task to setup its dependencies
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 113
diff changeset
   242
    task "#{pkg.name}:dependencies"
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   243
    task "#{pkg.name}:pre"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   244
    task "#{pkg.name}:post"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   245
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   246
    task "#{pkg.name}:main" do
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   247
      make_vars = ''
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   248
      d = win32? ? '-D' : ''
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   249
      q = win32? ? '"' : "'"
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   250
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   251
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
   252
      (make_vars += "STC=#{STC}") if unix?
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   253
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   254
      if pkg.application? and !win32?
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   255
        liblist=''
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   256
        libobjs=''
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   257
        link_libobjs=''
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   258
        project.packages.each do |p|
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   259
          if File.exist? (BUILD_DIR / p.directory / p.project_definition_file_name)
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   260
            if !p.application? and p.link and !p.test_package?
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   261
              liblist += "#{p.dll_name_without_suffix} "
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   262
              libobjs += "#{File.join(pkg.top, p.directory, p.dll_name)} "
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   263
              link_libobjs += "#{p.dll_name} "
93
650412e81596 Automatically extract package dependencies from project definition file
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 85
diff changeset
   264
            end
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   265
          end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   266
        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   267
        make_vars += " #{q}#{d}LIBLIST=#{liblist}#{q}"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   268
        make_vars += " #{q}#{d}LIBOBJS=#{libobjs}#{q}"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   269
        make_vars += " #{q}#{d}LINK_LIBOBJS=#{link_libobjs}#{q}"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   270
      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   271
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   272
      # Update stc flags,
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   273
      stc_flags = pkg.stc_flags
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   274
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
   275
      (make_vars += " #{q}#{d}STC_CMD_OPT=#{stc_flags}#{q}") if stc_flags
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   276
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   277
      (rm BUILD_DIR / pkg.directory / 'GNUmakefile') if File.exist? BUILD_DIR / pkg.directory / 'GNUmakefile'
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   278
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   279
      info "Compiling #{pkg.name}..."
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   280
      make_vars = "#{make_vars} #{DEBUG}"
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   281
      chdir BUILD_DIR / pkg.directory do
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   282
        if pkg.application? and win32?
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   283
          make 'exe'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   284
          make 'RESOURCEFILES'
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   285
        else
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   286
          if pkg.name == 'stx:stc'
102
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   287
            # Sigh, on UNIX makefile is generated. So if we're using
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   288
            # binary stc, we have to recreate it first.
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   289
            if unix?
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
   290
              (sh "'#{STX_TOP_DIR / 'rules' / 'stmkmf'}'") unless File.exist?('makefile')
102
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   291
            end
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   292
            make
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   293
          elsif pkg.name == 'stx:librun'
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
   294
             # A workaround for Windows 10 & ancient Borland make which 
111
767f2ace9b82 Win32: A nasty workaround to avoid Borland make to crash under Windows 10
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   295
            # tend to crash there when trying to recompile already compiled
767f2ace9b82 Win32: A nasty workaround to avoid Borland make to crash under Windows 10
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 102
diff changeset
   296
            # librun. Sigh, we have to move away from it as soon as possible!
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
   297
            (touch 'stxmain.c') if win32? and File.exist?('stxmain.c')
102
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   298
            make
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
   299
            if !pkg.application? and win32?                            
132
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   300
              cp 'objmingw' / 'librun.dll',
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   301
                 pkg.top /  project.application.directory 
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   302
            end
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   303
          else
102
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   304
            # Somewhat stupid detection whether we run recent St/X or not
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   305
            # ('recent' mean more recent than 3 years or so)
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   306
            # TODO: Remove this hack
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   307
            if File.exist? BUILD_DIR / 'stx' / 'libbasic2' / 'Makefile.init'
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   308
              make "#{make_vars} full"
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   309
            else
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   310
              make "#{make_vars}"
fc572bd895f2 Cleanup: treat stx:stc & stx:librun as normal packages
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 101
diff changeset
   311
            end
132
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   312
            # On Windows, copy the DLL application directory
138
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
   313
            if !pkg.application? and win32?
Patrik Svestka <patrik.svestka@gmail.com>
parents: 137 134
diff changeset
   314
              if !uptodate? pkg.top / project.application.directory, [ OBJ_DIR / pkg.dll_name ]
216
ca243e8d46c8 Rakefiles: on Windows also copy debug info files (`.dll.debug`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   315
                cp OBJ_DIR / pkg.dll_name, pkg.top /  project.application.directory                
ca243e8d46c8 Rakefiles: on Windows also copy debug info files (`.dll.debug`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   316
              end
ca243e8d46c8 Rakefiles: on Windows also copy debug info files (`.dll.debug`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   317
              if !uptodate? pkg.top / project.application.directory, [ OBJ_DIR / "#{pkg.dll_name}.debug" ]
ca243e8d46c8 Rakefiles: on Windows also copy debug info files (`.dll.debug`)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   318
                cp OBJ_DIR / "#{pkg.dll_name}.debug", pkg.top /  project.application.directory                
132
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   319
              end
076776f79023 Rakefiles: copy built `.dll to application directory after package is compiled.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 131
diff changeset
   320
            end
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   321
          end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   322
        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   323
      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   324
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   325
      if pkg.application? and unix?
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   326
        chdir BUILD_DIR / 'stx' / 'librun' do; make; end
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   327
      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   328
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   329
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   330
    end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   331
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   332
    if pkg.application?
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   333
      if win32?
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   334
        task pkg.name => BUILD_DIR / pkg.directory / 'modules.stx'
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   335
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   336
        task BUILD_DIR / pkg.directory / 'modules.stx' do |t|
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   337
          rm t.name if File.exist? t.name
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   338
          File.open(t.name, 'w') do |f|
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   339
            project.packages.each do |p|
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   340
              if !p.application? and p.link and !p.test_package? and p.name != 'stx:stc' and p.name != 'stx:librun' and File.exist? BUILD_DIR / p.directory / OBJ_DIR / p.dll_name
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   341
                f.puts p.dll_name_without_suffix
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   342
              end
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   343
            end
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   344
          end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   345
        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   346
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   347
        project.packages.each do |p|
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   348
          if !p.application? and !p.test_package?
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   349
            task pkg.name => BUILD_DIR / pkg.directory / p.dll_name
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   350
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   351
            file BUILD_DIR / pkg.directory / p.dll_name do
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   352
              if !p.application? and p.link and !p.test_package? and File.exist? BUILD_DIR / p.directory / OBJ_DIR / p.dll_name
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   353
                cp BUILD_DIR / p.directory / OBJ_DIR / p.dll_name,
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   354
                   BUILD_DIR / pkg.directory / p.dll_name
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   355
              end
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   356
            end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   357
          end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   358
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   359
          if win32_wine?
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   360
            file BUILD_DIR / pkg.directory / p.dll_name do
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   361
              cp BUILD_DIR / p.directory / OBJ_DIR / p.dll_name,
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   362
                 BUILD_DIR / pkg.directory / p.dll_name
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   363
            end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   364
          end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   365
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   366
        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   367
      else # UNIX
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   368
        task "#{pkg.name}:main" => BUILD_DIR / pkg.directory / 'modulList.stc'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   369
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   370
        task BUILD_DIR / pkg.directory / 'modulList.stc' do |t|
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   371
          rm t.name if File.exist? t.name
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   372
        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   373
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   374
        task "#{pkg.name}:main" => BUILD_DIR / pkg.directory / 'modulList.c'
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   375
137
e665031cade7 Cleaning up code and having it more rubyish
Patrik Svestka <patrik.svestka@gmail.com>
parents: 113
diff changeset
   376
        task BUILD_DIR / pkg.directory / 'modulList.c' do |t|
0
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   377
          rm t.name if File.exist? t.name
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   378
        end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   379
      end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   380
    end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   381
  end
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   382
f46260ba26b1 Initial shot of "new" rake-based builder
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   383
end