Build

From kJams Wiki
Jump to navigation Jump to search

to build kjams

Mac

Install Xcode
Install Qt
install pyDes
install p4 and get info from me on how to get connected
sync to head in p4
install kjams pro
install producer
install burner
install Lame
install Vorbis
install plcompile and setfileicon: see depot/kJams/External/PListCompiler0.4/"into /usr/bin" folder
run kjams
show preferences
click "importing"
click "exporting" these actions install necessary prefs
now quit
add these lines to your .bash_profile:

PYTHONPATH="${PYTHONPATH}:/Users/davec/Developer/depot/CF/python/"
export PYTHONPATH

Creating the NIB file on Mac

  1. using the 10.6 VM:
  2. edit the XIB file as necessary
  3. Open "kJams" xcodeproj, not "kJams6"
  4. set the target to "Pro | kJams | ppc" (not Lite, not Debug)
  5. go to the "Resources" group
  6. right click "kJams.xib" and pick "compile" (if kJams hasn't been built at all yet, just do a build, but you don't need to build the whole thing: as long as you see "CompileXIB" go by, you can stop there)
  7. building latest will now copy the file into place

Windows

See Windows Build instructions

info just for me

to create the installer for windows, see the instructions at: .../xplat/proj/win/Installer Editor/instructions.txt

install boost

make two copies, one for mac and one for windows, then combine the results into the stage dir

compile boost on both platforms with:

> cd path/to/boost_X.YY.Z

Then on mac:

> sudo ./bootstrap.sh
> ./b2 cxxflags="-arch i386 -arch x86_64" address-model=32_64 cxxflags="-mmacosx-version-min=10.9" linkflags="-mmacosx-version-min=10.9"

i had to rename "boost" to "boost~" at this path:

/usr/local/include/boost~

Or on win:

> bootstrap
> ./b2

doing so builds both 32 and 64bit and puts them in the "stage" dir. so no need to do this: http://informilabs.com/building-boost-32-bit-and-64-bit-libraries-on-windows/

After building, combine results into the "stage" folder where the mac stuff was staged, so both plats can get their stuff from the same place

VM Setup

sugarbear: (mac ARM hardware host for 64bit VMs)

  • mounts //taurus/Developer so it can launch build scripts in Windows VM
  • hosts VM: taurus (mac) (build with Qt) and
  • hosts VM: taurus-pc (build with Qt)

Bobina: (mac Intel hardware host for 32bit VMs)

  • mounts //taurus/Developer so it can launch build scripts in Windows VM
  • hosts VM: luna (mac) (build with Xcode)
  • hosts VM: luna-pc (build with MSDev)

taurus (mac VM inside Sugarbear):

  • hosts "source of truth" source code tree (depot) in drive: "Developer", and sub-folder "Build" for luna
  • instructs sugarbear to open '/Volumes/Developer/depot/kJams/Development/xplat/proj/win/Build kJams Taurus.app', which opens the build script inside the guest VM "taurus-pc"

taurus-pc (win VM inside Sugarbear):

  • mounts //taurus/Developer (and builds binaries to it)
  • does windows code signing for self and for luna-pc (has physical USB Code Sign Key from Sectigo)

luna (mac VM inside Bobina)

  • DOES NOT MOUNT //taurus/Developer
  • mounts LOCAL copy of /Developer (for build speed), but copies final results to //taurus/Build for publishing
  • builds 32bit mac with Xcode
  • i do not think we bother code signing the 32bit app??
  • instructs bobina to open '/Volumes/Developer/depot/kJams/Development/xplat/proj/win/Build kJams Luna.app', which opens the build script inside the guest VM "luna-pc"

luna-pc (win VM inside Bobina)

  • mounts //taurus/Developer (and builds binaries to it)
  • builds 32bit Windows with MSDev
  • instructs sugarbear to open '/Volumes/Developer/depot/kJams/Development/xplat/proj/win/code sign [path ]Taurus.app', which code signs inside the guest VM "taurus-pc"