Skip to content

[Bug]: Tracktion Engine Won't Compile With Projucer in XCode #251

@dmann200

Description

@dmann200

Detailed steps on how to reproduce the bug

I've been trying for several days to get tracktion_engine to compile using Projucer. I'm on Max OS X 15.3. I'm trying to build an Xcode project which is a static framework. I mainly need the functionality of the tracktion_engine class. C++17 version.

I wish I could say that there was one error but there are many. Firstly, it did not include tracktion_core by default which I had to add manually. It complains about many missing files, but as soon as I supply one, it complains about another.

Tracktion2025-3 - App
/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_graph/tracktion_graph/tracktion_NodePlayer.h
/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_graph/tracktion_graph/tracktion_NodePlayer.h:80:62 No viable conversion from 'juce::Range<int64_t>' (aka 'Range') to 'int64_t' (aka 'long long')

/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_graph/tracktion_graph/tracktion_Utility.h
/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_graph/tracktion_graph/tracktion_Utility.h:26:38 No type named 'floating_point' in namespace 'std'

/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_graph/tracktion_graph/tracktion_Utility.h:42:12 No matching constructor for initialization of 'juce::Range<int64_t>' (aka 'Range')

/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_graph/tracktion_graph/tracktion_Utility.h:42:14 No matching function for call to 'timeToSample'

/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_graph/tracktion_graph/tracktion_Utility.h:43:14 No matching function for call to 'timeToSample'

/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_graph/tracktion_graph/tracktion_Utility.h:50:41 Member reference base type 'double' is not a structure or union

/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_graph/tracktion_graph/tracktion_Utility.cpp
/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_graph/tracktion_graph/tracktion_Utility.cpp:34:31 No matching function for call to 'timeToSample'

/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_graph/tracktion_graph/tracktion_Utility.cpp:51:31 No matching function for call to 'timeToSample'

/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_graph/utilities/tracktion_GlueCode.h
/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_graph/utilities/tracktion_GlueCode.h:35:56 No type named 'integral' in namespace 'std'

/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_graph/utilities/tracktion_GlueCode.h:35:82 No type named 'integral' in namespace 'std'

/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_core/utilities/tracktion_Maths.h
/Users/admin/Documents/Programming/Xcode/Prototype/Tracktion2025-2/JuceLibraryCode/modules/tracktion_core/utilities/tracktion_Maths.h:13:22 Inline nested namespace definition is a C++20 extension

I've also tried building with CMake and this was unsuccessful. These are the errors I got:
running cmake on modules/cmakelists.txt failed with error:
CMake Error at CMakeLists.txt:24 (juce_add_modules):
Unknown CMake command "juce_add_modules".

tried cmake on modules/juce and got many errors mainly:
CMake Error at extras/Build/juceaide/CMakeLists.txt:157 (message):
Failed to build juceaide
[ 9%] Building CXX object
extras/Build/juceaide/CMakeFiles/juceaide.dir/Main.cpp.o
In file included from
/Users/admin/tracktion_engine/modules/juce/extras/Build/juceaide/Main.cpp:35:

It is my understanding that Projucer should automatically supply the files that are needed and create the proper configuration. What am I doing wrong here?

By the way I'm happy to compensate any developer a healthy rate who wants to jump onboard and help get this thing compiled.

What is the expected behaviour?

I expect that when I build the project after generating it with Projucer there will be no errors.

Unit test to reproduce the error?

Sorry I don't have a unit test.

Operating systems

macOS

What versions of the operating systems?

10.15

Architectures

ARM

Stacktrace

Plug-in formats (if applicable)

No response

Plug-in host applications (DAWs) (if applicable)

None

Testing on the develop branch

The bug is present on the develop branch

Code of Conduct

  • I agree to follow the Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions