User Tools

Site Tools


developer_tools

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
developer_tools [2016/06/02 11:31]
be.ing
developer_tools [2018/10/31 00:55]
rryan
Line 13: Line 13:
   * Git tools: [[https://​tortoisegit.org/​|Tortise Git]], [[http://​gitextensions.github.io/​|Git Extensions]]   * Git tools: [[https://​tortoisegit.org/​|Tortise Git]], [[http://​gitextensions.github.io/​|Git Extensions]]
  
-===== Mac OS X ===== +===== macOS ===== 
 +  * Integrated Development Environments (IDEs): [[http://​eclipse.org/​|Eclipse]],​ [[http://​wiki.qt.io/​Category:​Tools::​QtCreator|Qt Creator]], [[https://​developer.apple.com/​xcode/​|XCode]]
   * Text editors: [[https://​www.gnu.org/​software/​emacs/​|emacs]]   * Text editors: [[https://​www.gnu.org/​software/​emacs/​|emacs]]
  
 ===== Using IDEs ===== ===== Using IDEs =====
-  * Playing around with [[eclipse|Eclipse, CDT, and SconsBuilder plugin]] +  * Set up [[eclipse|Eclipse]] 
-  * Setup [[QtCreator]] ​for developing on Mixxx+  * Set up [[KDevelop]] 
 +  * Set up [[emacs|Emacs]] 
 +  * Set up [[QtCreator]] 
 +  * Set up [[Xcode]] 
 + 
 +====== Debugging Tools ======
  
-You can also use [[http://​qt-project.org/​downloads|Qt Creator]] for Mixxx development by creating a Qt project file for the source files. You can do this by running ''​qmake -project''​ under Mixxx'​s root directory. When using the created project file, you are able to use Creators editing features such as following symbols (F2) and switching between code and header files (F4). When compiling you will still have to resort to SCons as the project file will not resolve the dependencies. To accomplish this, switch to the project tab, remove any build steps and "Add Build Step"​->"​Custom Process Step". Enter ''​scons''​ as Command and any additional Command arguments (such as ''​qdebug=1''​ when in debug configuration). Respectively,​ follow the same procedure for the Clean Steps where you enter ''​-c''​ as Command argument. +===== GammaRay ​=====
-====== Console development tools ======+
  
-On Ubuntu LinuxG uses:+[[https://​www.kdab.com/​gammaray|KDAB'​s GammaRay]] is a tool for dynamically inspecting applications built with Qt. Its feature set is too long to listbut of particular use for Mixxx development is:
  
-===== grep (wcolor) ===== +  * The ability to see all current signals/slots being fired by Mixxx, with the ability to jump to the object that is firing them. 
-  * [[http://packages.ubuntu.com/​hardy/​grep|grep]]+  * The ability to inspect the tree of all QObjects that exist, and for each object being able to see its properties, methods and inbound/output connections. 
 +  * The ability to debug the render process of a QWidget, showing you at each step of a QPainter what the widget looks like, including performance details about each step.
  
-  export GREP_COLOR='​1;​33'​ +===== Debuggers =====
-  export GREP_OPTIONS=--color=auto+
  
-===== colordiff ===== +Debuggers allow you to inspect the state of Mixxx while its running (and after Mixxx has crashed, via a core dump file)
-  * [[http://​packages.ubuntu.com/​hardy/​colordiff|colordiff]]+
  
-  ​alias svndiff='​(echo "​Running SVN diff (your changes vsthe repo)..." && ​(svn -x -w diff|colordiff))|less -R' +  ​* [[https://​www.gnu.org/​software/​gdb/​|gdb]] ​(for gcc
-  ​alias svnbasediff='​(echo "​Running SVN diff against BASE:HEAD (changes in the repo since last \"svn update\"​)..." && ​(svn diff -x -w -rBASE:​HEAD|colordiff))|less -R'+  ​* [[https://lldb.llvm.org/​|lldb]] ​(for Clang) 
 +  * Visual Studio (Windows-only)
  
-  * diff -y with automatic adjustment for term width.+===== Profilers =====
  
-  alias ydiff='​y_diff'​ +See [[profiling]].
-  function y_diff() { +
-    diff --width=${COLUMNS} -b -y "​$1"​ "​$2"​ | colordiff | less -R +
-  }+
  
  
-===== colormake and colorgcc ​==== +====== Command-line Tools ======
-  * [[http://​packages.ubuntu.com/​hardy/​colormake|colormake]] & [[http://​packages.ubuntu.com/​hardy/​colorgcc|colorgcc]]+
  
-  ### Color GCC +===== grep / ack ag ripgrep =====
-  if [ -z "​`which colorgcc`"​ ]; then +
-    echo Installing ColorGCC ... +
-    sudo aptitude install colorgcc +
-  fi +
-  if [ ! -z "​`which colorgcc`"​ ]; then +
-    export CC="​colorgcc"​ +
-    alias gcc='​colorgcc'​ +
-    for C in `grep /usr/bin /etc/​colorgcc/​colorgccrc | sed -e 's/# //' -e '​s/:​.*//'​`;​ do +
-      if [ ! -e /​usr/​local/​bin/​${C} ]; then +
-        echo "​Installing colorgcc wrapper in /​usr/​local/​bin for ${C}... " +
-        sudo ln -s /​usr/​bin/​colorgcc /​usr/​local/​bin/​${C} +
-      fi +
-    done +
-  fi +
-  ### Color Make +
-  if [ -z "​`which colormake`"​ ]; then +
-    echo Installing ColorMake ... +
-    sudo aptitude install colormake +
-  fi +
-  if [ ! -z "​`which colormake`"​ ]; then +
-    alias make='​colormake'​ +
-    if [ ! -e /​usr/​local/​bin/​make ]; then +
-      sudo ln -s /​usr/​bin/​colormake /​usr/​local/​bin/​make +
-    fi +
-  fi+
  
-===== source-highlight ===== +''​grep''​ is nice for searching files with regexes, but it isn't designed specifically for looking through ​source ​codeThere are a number of tools that make searching through ​source ​repositories much nicer (e.g. they won't go searching in the ''​.git''​ subfolder, or digging through binary files for your regex).
-  * [[http://​packages.ubuntu.com/​hardy/​source-highlight|source-highlight]] +
-  * Usage:  +
-    * vs somefile.cpp +
-    * vs SConscript+
  
-  ​alias vs="​view_source"​ +  ​* [[https://​beyondgrep.com/|ack]] 
-  function view_source { +  * [[https://​blog.burntsushi.net/​ripgrep/​|ripgrep]
-    lang_def=""​ +  ​* [[https://geoff.greer.fm/​ag/​|ag / The Silver Searcher]]
-    case "​`basename $1`" in +
-      SConscript|SConstruct) lang_def=python.lang;; +
-      .bashrc|.bashrc-extra) lang_def=sh.lang;;​ +
-      # ​*) lang_def=cpp;;​ +
-    esac +
-    if ! -z "​${lang_def}" ​]; then lang_def="​--lang-def=${lang_def}";​ fi +
-  ​ +
-    echo -e "​\033]0;​view-source$1\007\c"​ +
-    source-highlight ${lang_def} --out-format=esc --output=STDOUT "​$1"​ 2>/dev/null less -RN +
-  }+
  
-===== Nano editor ===== 
  
-  * [[http://​nano-editor.org|nano editor]] with color syntax highlighting 
  
-  * Syntax color highlighting [[http://​stacktrace.org/​archive/​.nanorc|.nanorc file]], you may have to run dos2unix on it. 
  
-  * Usage: ​ 
-    * nano somefile.cpp:​326:​error:​ some compiler error message 
  
-  alias nano='​smart_nano'​ 
-  ## Smart nano jumps to a line number when you give it filename:​nnn where nnn is the line number (like compile warnings/​errors) 
-  function smart_nano() { 
-    if [ -z "​$(echo \"​[email protected]\"​ | egrep [a-zA-Z0-9]:​[0-9]+)"​ ]; then 
-      /​usr/​bin/​nano -w -c "​[email protected]"​ 
-      return 
-    fi 
-    unset args 
-    echo 
-    while (( "​$#"​ )); do 
-      if [ ! -z "​${1}"​ ] && [ ! -z "`echo ${1}|cut -d: -f2|grep -e '​^[0-9]*$'​`"​ ]; then 
-        args[${#​args[@]}]=+$(echo ${1}|cut -d: -f2|grep -e '​^[0-9]*$'​) # Line Number Offset 
-        args[${#​args[@]}]=$(echo ${1}|cut -d: -f1) # File Name 
-      elif [ -f "​${1}"​ ]; then 
-        args[${#​args[@]}]=$1 
-      else 
-        echo "Nano could not find: $1"; sleep .5 
-      fi 
-      shift 
-    done 
-    /​usr/​bin/​nano -w -c "​${args[@]}"​ 
-  } 
developer_tools.txt · Last modified: 2019/06/15 07:11 by ferranpujolcamins