From f4f630e7d08b1a1dfd3b2844a78ad451d608657c Mon Sep 17 00:00:00 2001 From: Campbell Barton <ideasman42@gmail.com> Date: Wed, 9 Apr 2014 08:30:54 +1000 Subject: [PATCH] Menu item to update the Blender project file --- .../externaltools/qtc_project_update.py | 35 +++++++++++++++++++ .../externaltools/qtc_project_update.xml | 10 ++++++ 2 files changed, 45 insertions(+) create mode 100755 utils_ide/qtcreator/externaltools/qtc_project_update.py create mode 100644 utils_ide/qtcreator/externaltools/qtc_project_update.xml diff --git a/utils_ide/qtcreator/externaltools/qtc_project_update.py b/utils_ide/qtcreator/externaltools/qtc_project_update.py new file mode 100755 index 0000000..7ea5b8a --- /dev/null +++ b/utils_ide/qtcreator/externaltools/qtc_project_update.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 + +""" +This is just a wrapper to run Blender's QtCreator project file generator, +knowing only the CMake build path. + + qtc_project_update.py <project_path> +""" + +import sys +import os + +PROJECT_DIR = sys.argv[-1] + +def cmake_find_source(path): + import re + match = re.compile(r"^CMAKE_HOME_DIRECTORY\b") + cache = os.path.join(path, "CMakeCache.txt") + with open(cache, 'r', encoding='utf-8') as f: + for l in f: + if re.match(match, l): + return l[l.index("=") + 1:].strip() + return "" + +SOURCE_DIR = cmake_find_source(PROJECT_DIR) + +cmd = ( + "python", + os.path.join(SOURCE_DIR, "build_files/cmake/cmake_qtcreator_project.py"), + PROJECT_DIR, + ) + +print(cmd) +os.system(" ".join(cmd)) + diff --git a/utils_ide/qtcreator/externaltools/qtc_project_update.xml b/utils_ide/qtcreator/externaltools/qtc_project_update.xml new file mode 100644 index 0000000..7dcbf7f --- /dev/null +++ b/utils_ide/qtcreator/externaltools/qtc_project_update.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<externaltool id="qtc_project_update"> + <description>Regenerate the project file</description> + <displayname>Project File Regenerate</displayname> + <category>Project</category> + <executable output="showinpane" error="showinpane" modifiesdocument="no"> + <path>qtc_project_update.py</path> + <arguments>%{CurrentProject:BuildPath}</arguments> + </executable> +</externaltool> -- GitLab