expo-juce 0.2.13 → 0.2.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,19 +17,14 @@ Pod::Spec.new do |s|
17
17
 
18
18
  s.dependency 'ExpoModulesCore'
19
19
 
20
- # Only OUR source files not JUCE subdirectories.
21
- # JUCE headers must NOT be in source_files or CocoaPods adds them to the
22
- # module map, where they fail to compile standalone (missing FLT_MAX etc).
23
- # JuceModules.mm #includes the JUCE .cpp files via amalgamation;
24
- # JUCE headers are found via HEADER_SEARCH_PATHS.
20
+ # Our ARC-compatible source files (Swift, ObjC bridge, tone generator wrapper)
21
+ # JuceModules.mm is excluded here handled by the non-ARC subspec below
25
22
  s.source_files = "*.{h,m,mm,swift}"
26
- # JuceConfig.h is a C++ prefix header (uses <cfloat> etc.) — it must NOT
27
- # appear in the Clang module map or Swift/ObjC imports will fail.
28
- # It's applied to C++ via OTHER_CPLUSPLUSFLAGS -include instead.
29
- s.exclude_files = "JuceConfig.h"
23
+ s.exclude_files = ["JuceConfig.h", "JuceModules.mm"]
24
+ s.requires_arc = true
30
25
 
31
- # Keep JUCE sources on disk so the compiler can find them via #include
32
- s.preserve_paths = "juce_modules/**"
26
+ # Keep all JUCE sources on disk so #include directives resolve
27
+ s.preserve_paths = ["juce_modules/**"]
33
28
 
34
29
  # iOS frameworks required by JUCE modules + our AVAudioEngine code
35
30
  s.frameworks = 'AVFoundation', 'AudioToolbox', 'CoreAudio',
@@ -41,14 +36,23 @@ Pod::Spec.new do |s|
41
36
  'DEFINES_MODULE' => 'YES',
42
37
  'SWIFT_COMPILATION_MODE' => 'wholemodule',
43
38
  'CLANG_CXX_LANGUAGE_STANDARD' => 'c++17',
44
- 'CLANG_ENABLE_OBJC_ARC' => 'YES',
45
- # PODS_TARGET_SRCROOT already points to ios/ (where this podspec lives).
46
- # Only our dir in HEADER_SEARCH_PATHS — safe for the Clang module map.
47
- # JUCE's juce_modules/ goes in OTHER_CPLUSPLUSFLAGS so it only affects
48
- # C++/ObjC++ source compilation and can't shadow system headers during
49
- # module building (JUCE bundles its own zlib.h, etc.).
50
39
  'HEADER_SEARCH_PATHS' => '"$(PODS_TARGET_SRCROOT)"',
51
40
  'GCC_PREPROCESSOR_DEFINITIONS' => '$(inherited) JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1',
52
41
  'OTHER_CPLUSPLUSFLAGS' => '$(inherited) -I"$(PODS_TARGET_SRCROOT)/juce_modules" -include "$(PODS_TARGET_SRCROOT)/JuceConfig.h"',
53
42
  }
43
+
44
+ # Each JUCE module compiled as its own translation unit WITHOUT ARC
45
+ # (JUCE uses manual retain/release; modules have static symbols that collide
46
+ # if amalgamated into a single translation unit)
47
+ s.subspec 'JuceAmalgamation' do |juce|
48
+ juce.source_files = [
49
+ 'juce_modules/juce_core/juce_core.mm',
50
+ 'juce_modules/juce_events/juce_events.mm',
51
+ 'juce_modules/juce_data_structures/juce_data_structures.mm',
52
+ 'juce_modules/juce_audio_basics/juce_audio_basics.mm',
53
+ 'juce_modules/juce_audio_formats/juce_audio_formats.mm',
54
+ 'juce_modules/juce_dsp/juce_dsp.mm',
55
+ ]
56
+ juce.requires_arc = false
57
+ end
54
58
  end
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-juce",
3
- "version": "0.2.13",
3
+ "version": "0.2.15",
4
4
  "description": "Realtime DSP w/C++ & JUCE",
5
5
  "type": "module",
6
6
  "main": "build/index.js",