[MacPorts] #67194: SendMIDI, ReceiveMIDI: The 10.14 SDK (Xcode 10.1+) is required to build JUCE apps
MacPorts
noreply at macports.org
Wed Apr 5 05:25:02 UTC 2023
#67194: SendMIDI, ReceiveMIDI: The 10.14 SDK (Xcode 10.1+) is required to build
JUCE apps
-------------------------------------------------+-------------------------
Reporter: ryandesign | Owner: ryandesign
Type: defect | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version: 2.8.1
Keywords: mavericks yosemite elcapitan sierra | Port: SendMIDI
highsierra | ReceiveMIDI
-------------------------------------------------+-------------------------
SendMIDI and ReceiveMIDI fail to build with Xcode versions earlier than 10
(i.e. High Sierra and earlier):
{{{
In file included from
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Source/ScriptMidiMessageClass.cpp:19:
In file included from
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Source/ScriptMidiMessageClass.h:21:
In file included from
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Builds/MacOSX/../../JuceLibraryCode/JuceHeader.h:17:
In file included from
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Builds/MacOSX/../../JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.h:54:
In file included from
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Builds/MacOSX/../../JuceLibraryCode/modules/juce_core/juce_core.h:66:
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Builds/MacOSX/../../JuceLibraryCode/modules/juce_core/system/juce_TargetPlatform.h:152:8:
error: "The 10.14 SDK (Xcode 10.1+) is required to build JUCE apps. You
can create apps that run on macOS 10.9+ by changing the deployment
target."
#error "The 10.14 SDK (Xcode 10.1+) is required to build JUCE apps.
You can create apps that run on macOS 10.9+ by changing the deployment
target."
^
In file included from
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Source/ScriptMidiMessageClass.cpp:19:
In file included from
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Source/ScriptMidiMessageClass.h:21:
In file included from
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Builds/MacOSX/../../JuceLibraryCode/JuceHeader.h:17:
In file included from
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Builds/MacOSX/../../JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.h:54:
In file included from
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Builds/MacOSX/../../JuceLibraryCode/modules/juce_core/juce_core.h:204:
/opt/local/var/macports/build/_opt_bblocal_var_buildworker_ports_build_ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Builds/MacOSX/../../JuceLibraryCode/modules/juce_core/system/juce_StandardHeader.h:66:10:
fatal error: 'optional' file not found
#include <optional>
^~~~~~~~~~
2 errors generated.
}}}
The first issue should be easy to solve by using the MacOSX10.14.sdk port:
{{{
if {${os.platform} eq "darwin" && [vercmp ${configure.sdk_version} <
10.14]} {
configure.sdk_version 10.14
configure.sdkroot
${prefix}/Developer/SDKs/MacOSX${configure.sdk_version}.sdk
depends_build-append port:MacOSX${configure.sdk_version}.sdk
}
}}}
The second issue should be fixable by using the newer MacPorts libc++
which can be done using legacy support:
{{{
PortGroup legacysupport 1.1
}}}
{{{
legacysupport.newest_darwin_requires_legacy 17
legacysupport.use_mp_libcxx yes
}}}
However even just enabling legacy support, without using MacPorts libc++,
reveals a bug in the xcode portgroup regarding how it handles environment
variables that contain more than one value, for which I will submit a fix:
{{{
sh: -lMacportsLegacySupport: command not found
}}}
Once that's fixed, if MacPorts libc++ is used, the build fails with a
zillion error such as:
{{{
In file included from /opt/local/var/macports/build
/_Volumes_Shared_macports-
ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Source/ScriptMidiMessageClass.cpp:19:
In file included from /opt/local/var/macports/build
/_Volumes_Shared_macports-
ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Source/ScriptMidiMessageClass.h:21:
In file included from /opt/local/var/macports/build
/_Volumes_Shared_macports-
ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Builds/MacOSX/../../JuceLibraryCode/JuceHeader.h:17:
In file included from /opt/local/var/macports/build
/_Volumes_Shared_macports-
ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Builds/MacOSX/../../JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.h:54:
In file included from /opt/local/var/macports/build
/_Volumes_Shared_macports-
ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Builds/MacOSX/../../JuceLibraryCode/modules/juce_core/juce_core.h:204:
In file included from /opt/local/var/macports/build
/_Volumes_Shared_macports-
ports_multimedia_ReceiveMIDI/ReceiveMIDI/work/ReceiveMIDI-1.3.1/Builds/MacOSX/../../JuceLibraryCode/modules/juce_core/system/juce_StandardHeader.h:50:
In file included from /opt/local/include/libcxx/v1/algorithm:641:
In file included from /opt/local/include/libcxx/v1/cstring:60:
In file included from /opt/local/include/LegacySupport/string.h:25:
/opt/local/include/libcxx/v1/string.h:73:64: error: use of undeclared
identifier 'strchr'
char* __libcpp_strchr(const char* __s, int __c) {return (char*)strchr(__s,
__c);}
^
/opt/local/include/libcxx/v1/string.h:80:75: error: use of undeclared
identifier 'strpbrk'
char* __libcpp_strpbrk(const char* __s1, const char* __s2) {return
(char*)strpbrk(__s1, __s2);}
^
/opt/local/include/libcxx/v1/string.h:87:65: error: use of undeclared
identifier 'strrchr'; did you mean 'strchr'?
char* __libcpp_strrchr(const char* __s, int __c) {return
(char*)strrchr(__s, __c);}
^
/opt/local/include/libcxx/v1/string.h:75:13: note: 'strchr' declared here
const char* strchr(const char* __s, int __c) {return __libcpp_strchr(__s,
__c);}
^
/opt/local/include/libcxx/v1/string.h:94:76: error: use of undeclared
identifier 'memchr'
void* __libcpp_memchr(const void* __s, int __c, size_t __n) {return
(void*)memchr(__s, __c, __n);}
^
/opt/local/include/libcxx/v1/string.h:101:74: error: use of undeclared
identifier 'strstr'; did you mean 'strchr'?
char* __libcpp_strstr(const char* __s1, const char* __s2) {return
(char*)strstr(__s1, __s2);}
^
/opt/local/include/libcxx/v1/string.h:77:13: note: 'strchr' declared here
char* strchr( char* __s, int __c) {return __libcpp_strchr(__s,
__c);}
^
/opt/local/include/libcxx/v1/string.h:101:74: error: no matching function
for call to 'strchr'
char* __libcpp_strstr(const char* __s1, const char* __s2) {return
(char*)strstr(__s1, __s2);}
^
/opt/local/include/libcxx/v1/string.h:77:13: note: candidate disabled: <no
message provided>
char* strchr( char* __s, int __c) {return __libcpp_strchr(__s,
__c);}
^
/opt/local/include/libcxx/v1/string.h:101:81: error: cannot initialize a
parameter of type 'char *' with an lvalue of type 'const char *'
char* __libcpp_strstr(const char* __s1, const char* __s2) {return
(char*)strstr(__s1, __s2);}
^~~~
/opt/local/include/libcxx/v1/string.h:77:32: note: passing argument to
parameter '__s' here
char* strchr( char* __s, int __c) {return __libcpp_strchr(__s,
__c);}
^
}}}
--
Ticket URL: <https://trac.macports.org/ticket/67194>
MacPorts <https://www.macports.org/>
Ports system for macOS
More information about the macports-tickets
mailing list