mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 14:02:21 -04:00
get PyQt working directly with ./run on macOS
It's no longer necessary to copy everything into bazel-copy, and you can safely remove that folder.
This commit is contained in:
parent
424bb5bc68
commit
e58646909f
6 changed files with 22 additions and 40 deletions
|
@ -11,10 +11,10 @@ so it installs the command line tools.
|
||||||
|
|
||||||
Install Homebrew from <https://brew.sh/>
|
Install Homebrew from <https://brew.sh/>
|
||||||
|
|
||||||
Then install deps:
|
Then install Bazel:
|
||||||
|
|
||||||
```
|
```
|
||||||
$ brew install rsync bazelisk
|
$ brew install bazelisk
|
||||||
```
|
```
|
||||||
|
|
||||||
**Python**:
|
**Python**:
|
||||||
|
|
|
@ -21,6 +21,9 @@ if TYPE_CHECKING:
|
||||||
|
|
||||||
|
|
||||||
def aqt_data_folder() -> str:
|
def aqt_data_folder() -> str:
|
||||||
|
# running in Bazel on macOS?
|
||||||
|
if path := os.getenv("AQT_DATA_FOLDER"):
|
||||||
|
return path
|
||||||
# running in place?
|
# running in place?
|
||||||
dir = os.path.join(os.path.dirname(__file__), "data")
|
dir = os.path.join(os.path.dirname(__file__), "data")
|
||||||
if os.path.exists(dir):
|
if os.path.exists(dir):
|
||||||
|
|
|
@ -43,3 +43,17 @@ def fix_extraneous_path_in_bazel():
|
||||||
# source folder conflicts with bazel-out source
|
# source folder conflicts with bazel-out source
|
||||||
if sys.path[0].endswith("qt"):
|
if sys.path[0].endswith("qt"):
|
||||||
del sys.path[0]
|
del sys.path[0]
|
||||||
|
|
||||||
|
|
||||||
|
def fix_run_on_macos():
|
||||||
|
if not sys.platform.startswith("darwin"):
|
||||||
|
return
|
||||||
|
exec_folder = os.path.dirname(sys.argv[0])
|
||||||
|
qt_version = 5 if "runanki_qt5" in exec_folder else 6
|
||||||
|
pyqt_repo = os.path.join(exec_folder, f"../../../../../../../external/pyqt{qt_version}")
|
||||||
|
if os.path.exists(pyqt_repo):
|
||||||
|
# pyqt must point to real folder, not a symlink
|
||||||
|
sys.path.insert(0, pyqt_repo)
|
||||||
|
# set the correct data folder base
|
||||||
|
data = os.path.join(exec_folder, "aqt", "data")
|
||||||
|
os.environ["AQT_DATA_FOLDER"] = data
|
||||||
|
|
|
@ -10,6 +10,7 @@ try:
|
||||||
|
|
||||||
bazelfixes.fix_pywin32_in_bazel()
|
bazelfixes.fix_pywin32_in_bazel()
|
||||||
bazelfixes.fix_extraneous_path_in_bazel()
|
bazelfixes.fix_extraneous_path_in_bazel()
|
||||||
|
bazelfixes.fix_run_on_macos()
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
20
run
20
run
|
@ -2,23 +2,5 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
run_linux() {
|
|
||||||
bazel run $BUILDARGS //qt:runanki -- $*
|
|
||||||
}
|
|
||||||
|
|
||||||
run_mac() {
|
|
||||||
# QtWebEngineProcess is unable to locate icudtl.dat from a symlinked tree,
|
|
||||||
# so we need to copy the files into a working folder before running on a Mac.
|
|
||||||
workspace=$(dirname $0)
|
|
||||||
bazel build $BUILDARGS //qt:runanki && \
|
|
||||||
rsync -aiL --exclude=anki/external --delete -f'-p __pycache__' \
|
|
||||||
$workspace/bazel-bin/qt/runanki* $workspace/bazel-copy/ && \
|
|
||||||
$workspace/bazel-copy/runanki $*
|
|
||||||
}
|
|
||||||
|
|
||||||
export PYTHONWARNINGS=default
|
export PYTHONWARNINGS=default
|
||||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
bazel run $BUILDARGS //qt:runanki -- $*
|
||||||
run_mac $*
|
|
||||||
else
|
|
||||||
run_linux $*
|
|
||||||
fi
|
|
||||||
|
|
20
run-qt5
20
run-qt5
|
@ -2,23 +2,5 @@
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
run_linux() {
|
|
||||||
bazel run $BUILDARGS //qt:runanki_qt5 -- $*
|
|
||||||
}
|
|
||||||
|
|
||||||
run_mac() {
|
|
||||||
# QtWebEngineProcess is unable to locate icudtl.dat from a symlinked tree,
|
|
||||||
# so we need to copy the files into a working folder before running on a Mac.
|
|
||||||
workspace=$(dirname $0)
|
|
||||||
bazel build $BUILDARGS //qt:runanki_qt5 && \
|
|
||||||
rsync -aiL --exclude=anki/external --delete -f'-p __pycache__' \
|
|
||||||
$workspace/bazel-bin/qt/runanki* $workspace/bazel-copy/ && \
|
|
||||||
$workspace/bazel-copy/runanki_qt5 $*
|
|
||||||
}
|
|
||||||
|
|
||||||
export PYTHONWARNINGS=default
|
export PYTHONWARNINGS=default
|
||||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
bazel run $BUILDARGS //qt:runanki_qt5 -- $*
|
||||||
run_mac $*
|
|
||||||
else
|
|
||||||
run_linux $*
|
|
||||||
fi
|
|
||||||
|
|
Loading…
Reference in a new issue