build.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/bin/sh
  2. set -e
  3. # You can execute this script with different parameters:
  4. # components - compiling components needed for doublecmd
  5. # doublecmd - compiling doublecmd only (release mode)
  6. # plugins - compiling all doublecmd plugins
  7. # debug - compiling components, plugins and doublecmd (debug mode)
  8. # release - compile in release mode (using by default)
  9. # path to lazbuild
  10. export lazbuild=$(which lazbuild)
  11. # Set up widgetset: gtk2 or qt or qt5 or cocoa
  12. # Set up processor architecture: i386 or x86_64
  13. if [ $2 ]
  14. then export lcl=$2
  15. fi
  16. if [ $lcl ] && [ $CPU_TARGET ]
  17. then export DC_ARCH=$(echo "--widgetset=$lcl")" "$(echo "--cpu=$CPU_TARGET")
  18. elif [ $lcl ]
  19. then export DC_ARCH=$(echo "--widgetset=$lcl")
  20. elif [ $CPU_TARGET ]
  21. then export DC_ARCH=$(echo "--cpu=$CPU_TARGET")
  22. fi
  23. build_doublecmd()
  24. {
  25. # Build Double Commander
  26. $lazbuild src/doublecmd.lpi --bm=release $DC_ARCH
  27. # Build Dwarf LineInfo Extractor
  28. $lazbuild tools/extractdwrflnfo.lpi
  29. # Extract debug line info
  30. chmod a+x tools/extractdwrflnfo
  31. if [ -f doublecmd.dSYM/Contents/Resources/DWARF/doublecmd ]; then
  32. mv -f doublecmd.dSYM/Contents/Resources/DWARF/doublecmd $(pwd)/doublecmd.dbg
  33. fi
  34. tools/extractdwrflnfo doublecmd.dbg
  35. # Strip debug info
  36. strip doublecmd
  37. }
  38. build_release()
  39. {
  40. components/build.sh
  41. plugins/build.sh
  42. build_doublecmd
  43. }
  44. build_debug()
  45. {
  46. components/build.sh
  47. plugins/build.sh
  48. # Build Double Commander
  49. $lazbuild src/doublecmd.lpi --bm=debug $DC_ARCH
  50. }
  51. case $1 in
  52. components) components/build.sh;;
  53. doublecmd) build_doublecmd;;
  54. plugins) plugins/build.sh;;
  55. debug) build_debug;;
  56. *) build_release;;
  57. esac