LinuxCommandLibrary

projucer

Create and manage JUCE projects

TLDR

Display information about a project

$ Projucer --status [path/to/project_file]
copy

Resave all files and resources in a project
$ Projucer --resave [path/to/project_file]
copy

Update the version number in a project
$ Projucer --set-version [version_number] [path/to/project_file]
copy

Generate a JUCE project from a PIP file
$ Projucer --create-project-from-pip [path/to/PIP] [path/to/output]
copy

Remove all JUCE-style comments (//=====, //----- or ///////)
$ Projucer --tidy-divider-comments [path/to/target_folder]
copy

Display help
$ Projucer --help
copy

SYNOPSIS

projucer [project_file.jucer]

PARAMETERS

[project_file.jucer]
    An optional path to a JUCE project file (ending with .jucer). If provided, Projucer will attempt to open this project directly upon launch. If omitted, it will start with its welcome screen, allowing the user to create a new project or open an existing one through the GUI.

DESCRIPTION

The Projucer is a cross-platform application developed by JUCE, a comprehensive C++ framework primarily for audio, graphics, and desktop applications. It serves as an integrated development environment (IDE) and project management tool, central to the JUCE workflow. Developers use Projucer to create new JUCE projects, manage source files, add or remove JUCE modules (essential code libraries), configure build settings (such as compiler flags, preprocessor macros, and linker settings), and generate project files for various target IDEs and build systems.

It supports a wide range of export targets, including Visual Studio (Windows), Xcode (macOS/iOS), Linux Makefiles, CMake, Android Studio, and more. While Projucer can be launched from the command line, its core functionality and project manipulation capabilities are exclusively accessed through its rich graphical user interface (GUI), making it an indispensable tool for efficient JUCE framework development.

CAVEATS

The Projucer is primarily a graphical user interface (GUI) application; it is not designed for command-line scripting or automated build processes. Its primary utility lies in interactive project setup and configuration. It is an integral part of the JUCE framework and is specific to managing JUCE projects, not general C++ projects. Installation typically involves downloading the JUCE framework, and the projucer executable may not be in standard system PATHs by default on all Linux distributions.

CROSS-PLATFORM PROJECT GENERATION

A key strength of the Projucer is its ability to generate native project files for a multitude of operating systems and IDEs from a single, unified .jucer project definition. This streamlines cross-platform development, allowing developers to abstract away many platform-specific build configurations and ensuring consistent project structure across Windows, macOS, Linux, iOS, and Android.

MODULE MANAGEMENT

One of the Projucer's core features is its intuitive system for managing JUCE modules. Developers can easily add or remove official JUCE modules (e.g., juce_audio_basics, juce_gui_basics) and even custom modules. The Projucer automatically handles the necessary header paths, source file inclusions, and compiler flags within the generated project files, significantly simplifying dependency management for JUCE projects.

HISTORY

The Projucer was initially developed by ROLI as an essential component of the JUCE C++ framework. Its development has consistently focused on simplifying the complex cross-platform project setup and maintenance workflows inherent in modern C++ development, particularly for audio and GUI applications. It has evolved alongside the JUCE framework, adapting to new platforms and build systems, becoming an indispensable tool for managing module dependencies and project configurations. In 2024, the JUCE framework and Projucer development were acquired by PACE Anti-Piracy, Inc.

SEE ALSO

juce_framework (framework), cmake(1), make(1), visual_studio (IDE), xcode (IDE), android_studio (IDE)

Copied to clipboard