Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

To CMake #22

Open
wants to merge 2 commits into
base: aa-embiq-merge
Choose a base branch
from
Open

Conversation

oholiba
Copy link

@oholiba oholiba commented Jul 27, 2023

A CMakeLists.txt file was created (https://github.com/juce-framework/JUCE/blob/master/examples/CMake/AudioPlugin/CMakeLists.txt was used as a template).
A few notes:

  • IMPORTANT: in this commit the .jucer file is deleted, as it is not possible to use cmake and the Projucer simultaneously.
  • the source files now point to a JuceHeader.h file generated by cmake. The original JuceHeader.h file generated by the Projucer can be deleted in a future commit as it becomes deprecated.
  • It is recommended to remove the JuceHeader.h generation in future commits (option in cmake) and include the necessary modules manually. During the process it would also be necessary to check that all includes are still necessary (some modules are included automatically because of cross-dependencies)
  • no thorough testing was made to ensure complete build stability. The only test done was building the VST3 plugin in VS2022. Therefore, this commit should be seen as the initial commit of a development branch as there will still be a lot of errors in the code.
  • the JUCE submodule is added to the repo as the add-subdirectory command in cmake should not include directories from parents. As a next step, all the plugins should be included as submodules in a single parent git repo. In this parent repo there will also be included JUCE as a submodule and a CMakeLists.txt which includes the JUCE submodule as a subdirectory and creates different targets for the different plugins and different platforms. The individual plugin CMakeLists.txt files then have to be modified and the JUCE submodule in the plugin directory can be removed.
  • again: the CMake workflow still needs a lot of testing before relying on it. After thorough testing, the cmake workflow can then be used to create a CI/CD environment (further ideas: include pluginval as an automated testing workflow; also cmake tests could be used for testing; Github jobs can be used as a starting point).

@seclorum
Copy link
Contributor

Great work, thanks for the effort on this. Before I merge this I would like to get builds tested on all the targets: Windows, MacOS, and iOS. I will work on testing these, this week .. stay tuned.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants