The only thing that didn't make the release this time was packages support for macOS.
Still doing .dmg releases. Which is funny, because drag and dropping plugins from DMG is fixed and working again as of Ventura.
Anyway, this PR bundles the following:
[x] Improves commenting around all CMake functionality
[x] Resolves #40
[x] Fixes #32
[x] Fixes #34
[x] Closes #35
[x] Fixes #36
[x] Fixes #37
[x] Fixes #39
[x] Fixes #31
[x] Closes #38
[x] Exposes PRODUCT_NAME_WITHOUT_VERSION (as JucePlugin_Name doesn't use the nicer PRODUCT_NAME)
[x] Exposes CMAKE_BUILD_TYPE
[x] Resolves #42
[x] Moves to using lowercase names for root level directories like source and tests (was scaring away the gen z'ers!)
f637d797cca2352fe3aa37bd56025109a5c3dbe9 attempted to fix #31 by putting the juce modules (and third party modules) back to PRIVATE visibility. See that issue for details on why this needs to be the case in JUCE.
Unfortunately, that fix doesn't account for the fact that differing compile definitions may be desired on each target. For example we might want to set JUCE_MODAL_LOOPS_PERMITTED=1 in tests to be able to run the MessageManager so callbacks fire, or set something like RUN_MY_TESTS=1 so that tests in source files and module directories will run. Trying to add additional definitions via target_compile_definitions wasn't working.
This PR implements @chrhaase's suggestion of sticking all app code and config in an INTERFACE target so that it can be shared between the various juce plugin targets as well as the Tests target.
This is a big bundle o 1.0 joy.
The only thing that didn't make the release this time was packages support for macOS.
Still doing .dmg releases. Which is funny, because drag and dropping plugins from DMG is fixed and working again as of Ventura.
Anyway, this PR bundles the following:
PRODUCT_NAME_WITHOUT_VERSION
(as JucePlugin_Name doesn't use the nicer PRODUCT_NAME)CMAKE_BUILD_TYPE
source
andtests
(was scaring away the gen z'ers!)Unfortunately, that fix doesn't account for the fact that differing compile definitions may be desired on each target. For example we might want to set
JUCE_MODAL_LOOPS_PERMITTED=1
in tests to be able to run the MessageManager so callbacks fire, or set something likeRUN_MY_TESTS=1
so that tests in source files and module directories will run. Trying to add additional definitions viatarget_compile_definitions
wasn't working.This PR implements @chrhaase's suggestion of sticking all app code and config in an INTERFACE target so that it can be shared between the various juce plugin targets as well as the
Tests
target.