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
developer_tools [2018/10/28 22:33]
rryan
developer_tools [2019/06/15 07:11] (current)
ferranpujolcamins [Using IDEs]
Line 18: Line 18:
  
 ===== Using IDEs ===== ===== Using IDEs =====
 +  * Set up [[Visual Studio Code]]
   * Set up [[eclipse|Eclipse]]   * Set up [[eclipse|Eclipse]]
   * Set up [[KDevelop]]   * Set up [[KDevelop]]
   * Set up [[emacs|Emacs]]   * Set up [[emacs|Emacs]]
-  * Set up [[QtCreator]] ​for developing on Mixxx +  * Set up [[QtCreator]] 
- +  * Set up [[Xcode]]
-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.+
  
 ====== Debugging Tools ====== ====== Debugging Tools ======
Line 35: Line 35:
   * 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.   * 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.
  
-====== ​Console development tools ====== +===== Debuggers ​=====
- +
-On Ubuntu Linux, G uses: +
- +
-===== grep (w/ color) ===== +
-  * [[http://​packages.ubuntu.com/​hardy/​grep|grep]] +
- +
-  export GREP_COLOR='​1;​33'​ +
-  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.1540780427.txt.gz · Last modified: 2018/10/28 22:33 by rryan