specs/baseline.rbspec
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 14 Jan 2017 00:15:19 +0000
changeset 117 f163911eb7bc
parent 102 fc572bd895f2
child 119 816aa71b1e2e
child 122 6fcb351d23a7
permissions -rw-r--r--
Win32: Workarounds for bugs in eXept's Win32 makefiles as of 2017-01-13 As of 2017-01-13, mingwmake fails due to a slasg/backslash mess in OUTDIR and OUTDIR_SLASH variables (presumably). As a consequence, `objmingw` directory is either not created at all or an attemptp to create it fails because of invalid command syntax. To (temporarily, I hope) workaround it, checkout older makefiles (from 2017-01-01) which seems to work. How could eXept mess up things so badly without noticing?

project :'stx:baseline' do

  repository :'exept:public'
  package "stx:stc"
  package "stx:librun"
  package "stx:libbasic"
  package "stx:goodies/refactoryBrowser/helpers"
  package "stx:goodies/refactoryBrowser/parser"
  package "stx:libbasic2"
  package "stx:libcomp"
  package "stx:libcompat"
  package "stx:libview"
  package "stx:libbasic3"
  package "stx:libdb"
  package "stx:libdb/libodbc"
  package "stx:libdb/libsqlite"
  package "stx:libview2"
  package "stx:libboss"
  package "stx:goodies/refactoryBrowser/changes"
  package "stx:libwidg"
  package "stx:libhtml"
  package "stx:libwidg2"
  package "stx:libui"
  package "stx:libview3"
  package "stx:libwidg3"
  package "stx:libtool"
  package "stx:libjavascript"
  package "stx:goodies/refactoryBrowser/refactoring"
  package "stx:goodies/refactoryBrowser/lint"
  package "stx:goodies/refactoryBrowser/browser"
  package "stx:libtool2"
  package "stx:goodies/libdbase" if not win32?

  application 'stx:projects/smalltalk'

  tasks do

    task :'checkout:buildtools' => [ BUILD_DIR / 'stx' / "rules",
				     BUILD_DIR / 'stx' / "configurations",
				     BUILD_DIR / 'stx' / "support",
				     BUILD_DIR / 'stx' / "RELEASE",
				     # needed by applications for *.rc stuff
                                     BUILD_DIR / 'stx' / 'projects' / 'smalltalk',
                                     # documentation
                                     BUILD_DIR / 'stx' / 'doc' / 'online' / 'english',
                                     BUILD_DIR / 'stx' / 'doc' / 'online' / 'pictures',
                                     BUILD_DIR / 'stx' / 'doc' / 'online' / 'icons',
                                     # various icons (country flags etc)
                                     BUILD_DIR / 'stx' / 'goodies' / 'bitmaps'
				   ]

    file BUILD_DIR / 'stx' / 'rules'  => BUILD_DIR do | t |
      # As of 2017-01-13, Borland makefiles fail to compile Smalltalk/X
      # due to a slash/backslash mess in variables OUTDIR and OUTDIR_SLASH
      # To (temporarily) workaround that, checkout older version which 
      # is/was OK.
      # How could eXept mess up things so badly without noticing?
      checkout :'exept:public', 'stx/rules', revision: '2017-01-01'
      # the clear is here to avoid multiple checkouts
      t.clear()
    end

    file BUILD_DIR / 'stx' / 'RELEASE'  => BUILD_DIR do | t |
      checkout :'exept:public', 'stx/RELEASE'
      # the clear is here to avoid multiple checkouts
      t.clear()
    end

    file BUILD_DIR / 'stx' / 'configurations' => BUILD_DIR do | t |
      checkout :'exept:public', 'stx/configurations'
      # the clear is here to avoid multiple checkouts
      t.clear()
    end

    file BUILD_DIR / 'stx' / 'doc' / 'online' / 'english'  => BUILD_DIR do | t |
      checkout :'exept:public', 'stx/doc/online/english'
      # the clear is here to avoid multiple checkouts
      t.clear()
    end

    file BUILD_DIR / 'stx' / 'doc' / 'online' / 'pictures'  => BUILD_DIR do | t |
      checkout :'exept:public', 'stx/doc/online/pictures'
      # the clear is here to avoid multiple checkouts
      t.clear()
    end

    file BUILD_DIR / 'stx' / 'doc' / 'online' / 'icons'  => BUILD_DIR do | t |
      checkout :'exept:public', 'stx/doc/online/icons'
      # the clear is here to avoid multiple checkouts
      t.clear()
    end

    file BUILD_DIR / 'stx' / 'goodies' / 'bitmaps'   => BUILD_DIR do | t |
      checkout :'exept:public', 'stx/goodies/bitmaps'
      # the clear is here to avoid multiple checkouts
      t.clear()
    end

    file BUILD_DIR / 'stx' / 'support' => BUILD_DIR do | t |
      checkout :'exept:public', 'stx/support'
      # the clear is here to avoid multiple checkouts
      t.clear()
    end
    

    file BUILD_DIR / 'stx' / 'projects' / 'smalltalk' do | t |
      app = project.application
      repo = :'exept:public'
      branch = nil
      if (app.name == 'stx:projects/smalltalk' ) 
      	repo = app.repository
      	branch = app.branch
      end
      checkout repo, 'stx/projects/smalltalk', :branch => branch, :separator => '-'
      # the clear is here to avoid multiple checkouts
      t.clear()
    end

  end

end