How to properly add custom modules (switching from Projucer to CMake)?
I have a folder /Libraries (sibling to JUCE) with my modules (and following CMakeLists.txt).
juce_add_modules(ALIAS_NAMESPACE spaghettis
spaghettis_core
spaghettis_engine
spaghettis_gui)
I use CMakeLists.txt above.
cmake_minimum_required(VERSION 3.26)
project(Spaghettis VERSION 0.9)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN TRUE)
set(JUCE_ENABLE_MODULE_SOURCE_GROUPS TRUE CACHE BOOL ââ FORCE)
add_subdirectory(JUCE)
add_subdirectory(Libraries)
file(READ â${CMAKE_CURRENT_SOURCE_DIR}/Resources/plist.txtâ PLIST_CONTENT)
juce_add_gui_app(Spaghettis
COMPANY_NAME âSpaghettisâ
COMPANY_COPYRIGHT âCopyright (c) 1997 Miller Puckette and others.â
ICON_BIG â${CMAKE_CURRENT_SOURCE_DIR}/Resources/Icons/PNG/spaghettis_icon.pngâ
PRODUCT_NAME âSpaghettisâ
MICROPHONE_PERMISSION_ENABLED TRUE
MICROPHONE_PERMISSION_TEXT âSpaghettis requires access to the Microphone.â
HARDENED_RUNTIME_ENABLED TRUE
HARDENED_RUNTIME_OPTIONS com.apple.security.device.audio-input
com.apple.security.cs.debugger
com.apple.security.cs.disable-library-validation
PLIST_TO_MERGE â${PLIST_CONTENT}â
BUNDLE_ID org.puredata.spaghettis)
juce_generate_juce_header(Spaghettis)
target_sources(Spaghettis PRIVATE Source/Main.cpp)
target_compile_definitions(Spaghettis
PRIVATE
JUCE_STRICT_REFCOUNTEDPOINTER=1
JUCE_WEB_BROWSER=0
JUCE_USE_CURL=0)
set_target_properties(Spaghettis PROPERTIES ENABLE_EXPORTS TRUE)
target_link_libraries(Spaghettis
PRIVATE
juce::juce_core
juce::juce_data_structures
juce::juce_events
juce::juce_graphics
juce::juce_gui_basics
juce::juce_gui_extra
spaghettis::spaghettis_core
spaghettis::spaghettis_engine
spaghettis::spaghettis_gui
PUBLIC
juce::juce_recommended_config_flags
juce::juce_recommended_lto_flags
juce::juce_recommended_warning_flags)
But it fails to compile. Apparently an include path is missing somewhereâŠ
nicolasdanet@Air-de-Nicolas Spaghettis % cmake --build build
[ 6%] Generating Spaghettis_artefacts/JuceLibraryCode/Spaghettis/PkgInfo
[ 12%] Generating Spaghettis_artefacts/JuceLibraryCode/JuceHeader.h
[ 18%] Building CXX object CMakeFiles/Spaghettis.dir/Source/Main.cpp.o
In file included from /Users/nicolasdanet/Work/S/Spaghettis/Source/Main.cpp:9:
In file included from /Users/nicolasdanet/Work/S/Spaghettis/Source/Main.hpp:9:
/Users/nicolasdanet/Work/S/Spaghettis/build/Spaghettis_artefacts/JuceLibraryCode/JuceHeader.h:20:10: fatal error: âspaghettis_core/spaghettis_core.hâ file not found
#include <spaghettis_core/spaghettis_core.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [CMakeFiles/Spaghettis.dir/Source/Main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Spaghettis.dir/all] Error 2
make: *** [all] Error 2
I have no clue what i did wrong, and what should i do. An idea?
