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()