Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Shoes 3.2.22 introduced a new way to set the paths and local options for building. So far, this only used for building on Windows (for Windows) or building on Linux for Windows. Those are rake file targets 'win7' and 'xwin7'. You specify your unique setting in win7-custom.yaml or xwin7-custom.yaml.
You can still modify the env.rb if you want but that turns out to be problem if two developers are pushing env.rb changes to github - he keeps his dependencies in C:\Sandbox and I keep mine in E:\shoesdepss\mingw. Or I have two dependencies locations (I do) and he has two different Ruby's. Any change made to env.rb has to be undone by the other party. Wasteful and annoying. So we invented *-custom.yaml which are little files that aren't sent or synchronized with github. It's your local settings that get plugged into env.rb.
Here's my win7-custom.yaml:
Deps: E:/shoesdeps/mingw Ruby: C:/Ruby21 MS-Theme: true
and my xwin7-custom.yaml
Deps: /home/ccoupe/Projects/shoesdeps/mingw Ruby: /home/ccoupe/Projects/shoesdeps/mingw/usr/local MS-Theme: true Debug: false
They both happen to build the same thing from the same deps but that is my setup. Now my setup isn't part of env.rb. If I want to build with all the debugging info included, I can set my custom.yaml to do that and no one knows or has to undo my changes to env.rb.
Deps: should be the full path name to where you unziped ShoesDeps.zip (where the bin, etc, include, lib, share folders are)
Ruby:should be the full path name to the Ruby toplevel folder (has bin, include, lib inside) that you want copied in the build. This may not be the location of the Ruby that it running the rake (the build) They can be two different Rubies. In the xwin7 case they have to be different.
Debug:Is 'true' or 'false'. If your *-custom.yaml doesn't have a Debug entry then it's going to assume 'false'
MS-Theme:is 'true' or 'false' (default is false). This setting only works for win7 and xwin7 builds. If set to false (default) the resulting Shoes will have the Look and Feel of earlier Shoes 3.2. If set to true it uses the new with 3.2.22 theme engine.
In the command line or a shell script or .bat you can set the environment variable ENV_CUSTOM with the path to the the .yaml file to use. If set it will be used instead of 'win7-custom.yaml' (or 'xwin7-custom.yaml'). Be careful and understand what you're doing if you use this option. I can imagine a few cases where it might be used - I can think of better ways, too.
custom-yaml for other platforms
This turned out to be half decent idea and has been implemented for all the Tight Shoes builds (mavericks, x86_64_linux, xi686_linux, and expanded to cover other developer/platform parameters. Quite a few other parameters. Like the gems to include in Shoes and where they are located and which version of GTK to use. Let's show what's being used in 3.2.25. This is my xwin7-custom.yaml
Deps: /home/ccoupe/Projects/shoesdeps/mingw Ruby: /home/ccoupe/Projects/shoesdeps/mingw/usr/local Gemloc: /home/ccoupe/Projects/gems/shoes Extloc: /home/ccoupe/Projects/gems/shoes Exts: - ftsearch - chipmunk Gems: - hpricot - sqlite3 InclGems: - sqlite3 - nokogiri-18.104.22.168-x86-mingw32 - mini_portile-0.6.2 - byebug-5.0.0 - columnize-0.9.0 - rb-readline-0.5.2 MS-Theme: true Debug: false GtkVersion: 3
Notice the file paths are absolute because it's important. If you're thinking of building you own Shoes and you don't care about sqlite3, chipmunk, byebug then don't include them in yours. You haven't changed any thing at github - those are your local settings. If you want to include a new gem in your Shoes, then you add it here (after building it and copying it to that GemLoc: place - there are wiki articles about that)
Notice the differences with mavericks-custom.yaml
Deps: /usr/local Zlib: /usr/local/opt/zlib/lib Gemloc: /Users/ccoupe/Projects/gems/shoes Extloc: /Users/ccoupe/Projects/gems/shoes Exts: - ftsearch - chipmunk Gems: - hpricot - sqlite3 InclGems: - mini_portile-0.6.2 - nokogiri-22.214.171.124 - sqlite3 - byebug-5.0.0 - columnize-0.9.0 - rb-readline-0.5.2 Debug: true CFLAGS: -DNEW_RADIO
Ruby: /usr/local Deps: Gemloc: /home/ccoupe/Projects/gems/shoes Extloc: /home/ccoupe/Projects/gems/shoes Exts: - ftsearch - chipmunk Gems: - sqlite3 - hpricot InclGems: - sqlite3 - mini_portile-0.6.2 - nokogiri-126.96.36.199 - byebug-5.0.0 - columnize-0.9.0 - rb-readline-0.5.2 Debug: false Gtk: gtk+-2.0
You do have to read the env.rb to see how the custom.yaml is processed for your platform of interest. Notice there is some consistency across Platforms but it's actually unique to the env.rb that reads it.