Work around deadlock when destroying J2KEncoder with a full writer queue (#2784).
[dcpomatic.git] / run / dcpomatic
index 7ea08778c2ac3111abfca54eb2a0dae2867a4ed8..45f857ae2a9b695f0e6501c09baf2f46a676597e 100755 (executable)
@@ -1,15 +1,47 @@
 #!/bin/bash
 
-export LD_LIBRARY_PATH=build/src/lib:build/src/wx:build/src/asdcplib/src:$LD_LIBRARY_PATH
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+source $DIR/environment
+binary=$build/src/tools/dcpomatic2
+
+if [[ "$(uname -m)" == arm64 ]]; then
+    env=arm64/11.0
+else
+    env=x86_64/10.10
+fi
+
+export DYLD_LIBRARY_PATH=/Users/cah/osx-environment/$env/lib:/usr/local/lib
+
+# export ASAN_OPTIONS=verbosity=1:malloc_context_size=20:detect_leaks=1
+
 if [ "$1" == "--debug" ]; then
     shift
-    gdb --args build/src/tools/dcpomatic $*
+    if [[ "$(uname)" == Darwin ]]; then
+        /Applications/Xcode.app/Contents/Developer/usr/bin/lldb $binary $*
+    else
+        gdb --args $binary $*
+    fi
 elif [ "$1" == "--valgrind" ]; then
     shift
-    valgrind --tool="memcheck" build/src/tools/dcpomatic $*
+    valgrind --tool="memcheck" --suppressions=suppressions --track-fds=yes --show-leak-kinds=all --leak-check=full $binary $*
+elif [ "$1" == "--callgrind" ]; then
+    shift
+    valgrind --tool="callgrind" $binary $*
+elif [ "$1" == "--massif" ]; then
+    shift
+    valgrind --tool="massif" $binary $*
 elif [ "$1" == "--i18n" ]; then
     shift
-    LANGUAGE=fr_FR.UTF8 LANG=fr_FR.UTF8 build/src/tools/dcpomatic "$*"
+    LANGUAGE=de_DE.UTF8 LANG=de_DE.UTF8 LC_ALL=de_DE.UTF8 $binary "$*"
+elif [ "$1" == "--perf" ]; then
+    shift
+    perf record $binary $*
+elif [ "$1" == "--scaled" ]; then
+    shift
+    ~/src/run_scaled/run_scaled --sleep=5 --scale=0.5 $binary $*
+elif [ "$1" == "--screenshot" ]; then
+    shift
+    GTK_PATH=/usr/local/lib/gtk-3.0 GTK_MODULES=gtk-vector-screenshot $binary "$*"
 else
-    build/src/tools/dcpomatic $*
+    $binary $* 2> >(grep -v Gtk-CRITICAL | grep -v Gtk-WARNING)
 fi