Examples¶
Some example use cases. Simply clone the repository to run the examples
Consistency between projects¶
If you have multiple projects using the Projucer, you can check if the common settings are set equal.
"""Multi Project Consistency
"""
import os
from juce.projucer import JucerFile
SCRIPT_DIRECTORY = os.path.dirname(os.path.abspath(__file__))
def main():
"""Entry point
"""
a = JucerFile('{}/pluginA.jucer'.format(SCRIPT_DIRECTORY))
b = JucerFile('{}/pluginB.jucer'.format(SCRIPT_DIRECTORY))
assert a.company == b.company
assert a.company_email == b.company_email
assert a.company_website == b.company_website
assert a.company_copyright == b.company_copyright
assert a.plugin_manufacturer == b.plugin_manufacturer
assert a.plugin_manufacturer_code == b.plugin_manufacturer_code
assert a.cpp_language_standard == b.cpp_language_standard
assert a.display_splash_screen == b.display_splash_screen
assert a.report_app_usage == b.report_app_usage
print("Check finished")
if __name__ == "__main__":
main()
Projucer Automation¶
"""Projucer Automation
"""
import os
from juce.projucer import Projucer
SCRIPT_DIRECTORY = os.path.dirname(os.path.abspath(__file__))
PROJECT_NAME = "AwesomeAudioApp"
PROJECT_DIRECTORY = "{}/{}".format(SCRIPT_DIRECTORY, PROJECT_NAME)
SOURCE_DIRECTORY = "{}/{}".format(PROJECT_DIRECTORY, "/Source")
JUCER_FILE_PATH = '{}/{}.jucer'.format(PROJECT_DIRECTORY, PROJECT_NAME)
def main():
"""Entry point"""
# Create object controlling the Projucer binary
# projucer = Projucer("/some/path")
projucer = Projucer()
print(projucer.which)
# Status
projucer.status(JUCER_FILE_PATH)
# Generate build files
projucer.resave(JUCER_FILE_PATH)
projucer.resave_resources(JUCER_FILE_PATH)
# Version
projucer.get_version(JUCER_FILE_PATH)
# projucer.git_tag_version(JUCER_FILE_PATH)
projucer.set_version(JUCER_FILE_PATH, "0.1.0")
projucer.get_version(JUCER_FILE_PATH)
projucer.bump_version(JUCER_FILE_PATH)
projucer.get_version(JUCER_FILE_PATH)
# Cleanup
projucer.fix_broken_include_paths(SOURCE_DIRECTORY)
projucer.trim_whitespace(SOURCE_DIRECTORY)
projucer.tidy_divider_comments(SOURCE_DIRECTORY)
projucer.remove_tabs(SOURCE_DIRECTORY)
# Other (Not tested yet)
# projucer.build_module("target", "module_name")
# projucer.build_all_modules("target", "module_folder")
# projucer.encode_binary("source", "target_cpp")
# projucer.obfuscated_string_code("Somestring")
# projucer.set_global_search_path("os", "identifier", "new/path")
# projucer.trans("target/folder")
# projucer.trans_finish("prefile", "postfile", "existing_file")
if __name__ == "__main__":
main()