Recent

Author Topic: How can I configure FPCup to avoid downloading files over and over again?  (Read 6090 times)

vfclists

  • Hero Member
  • *****
  • Posts: 1013
    • HowTos Considered Harmful?
I want to configure FPCup to avoid downloading stuff repeatedly.

The main things I see are

1. Build Tools -  bootstrap compiler, binutils, gdb etc.
  • Can they be downloaded into a fixed location and reused without having to be downloaded again, or at least occasionally. Even if they are installed separately for each build can the original downloaded files be kept and just copied over?
2. The repository - Make local mirrors and synchronize them regularly and checkout from it. This is something I did with Git and it takes just seconds to keep it up to date and checkout the revisions I want.
  • Is it possible to copy the whole repos and get FPCup to retrieve the branches or revisions from it, keeping the synchronized with the original repos?
  • In the case of the repos can subversion check them out via  a file system based method, rather than a local network mirror which may be more complicated to setup.
  • I notice that FPCup has a getfullrepo option. Can the full repo be refreshed regularly to avoid huge repeated downloads.
Lazarus 3.0/FPC 3.2.2

shobits1

  • Sr. Member
  • ****
  • Posts: 271
  • .
Quote
1. Build Tools -  bootstrap compiler, binutils, gdb etc.
use:
Code: [Select]
binutilsdir=...
fpcbootstrapdir=...
... is the path to directory

Quote
2. The repository - Make local mirrors and synchronize them regularly and checkout from it. This is something I did with Git and it takes just seconds to keep it up to date and checkout the revisions I want.
I use
Code: [Select]
getfullrepo=trueIt will do a regular svn checkout and get the full repo inside  `.svn` directory... refreshing won't take much time recompiling/building would.

you may take a look at
Code: [Select]
; Keeps changes you made to the svn checkout:
keeplocalchanges=true/false

vfclists

  • Hero Member
  • *****
  • Posts: 1013
    • HowTos Considered Harmful?
I use
Code: [Select]
getfullrepo=trueIt will do a regular svn checkout and get the full repo inside  `.svn` directory... refreshing won't take much time recompiling/building would.

When you use the getfullrepo option how do you configure the directory to be shared among multiple build configurations? For instance if I build fixes1.6 using fixes3.0 compiler, and I want to create another configuration using lazarus trunk and fpc trunk, how do I share the repo between them?
I want to have to separate source checkouts which will not clobber one another.

Thanks
Lazarus 3.0/FPC 3.2.2

shobits1

  • Sr. Member
  • ****
  • Posts: 271
  • .
you need to use
Code: [Select]
installdir=INSTALL_PATH
fpcdir=FPC_PATH
lazdir=LAZARUS_PATH

also you can share repos/brunch between builds, but you can't mix them up (didn't try it but should work).

to explain it more let say you have:
Build1: lazarus fixes1.6 + fpc 3.0.0
installdir=c:\dev
fpcdir=c:\dev\fpc300
lazdir=c:\dev\laz16

and you want to do second build
Build2: lazarus trunk + fpc 3.0.0
installdir=c:\dev
fpcdir=c:\dev\fpc300 -- > OK
lazdir=c:\dev\laz16   -- > WRONG, because repository already have URL of  lazarus fixes1.6 so you need to specify other directory.

so Build 1 & 2 can share fpc repo (same brunch) but can't share lazarus (different brunch)

PS: personally I prefer to not share repo/brunch between builds.

 

TinyPortal © 2005-2018