From ff853758e0f1b26ba3db4c868d8d097808a06524 Mon Sep 17 00:00:00 2001 From: Andrew Newlands Date: Fri, 23 Nov 2018 13:51:08 +1100 Subject: [PATCH 1/2] Changes to enable the build process to work on Xcode 10.1 / OS X High Sierra. - The verify_noerr macro has been removed in High Sierra, so a macro has been added to utilize the alternative __Verify_noErr - The path to the compiled .kext module in build.rb did not match the location on disk where it was being built. This has been correct from Build/InstallerRoot/System/Library/Extensions/Soundflower.kext to Build/InstallerRoot/Library/Extensions/Soundflower.kext These appear to be the minimal changes required for the kernel module to build cleanly on the combination of Xcode 10.1 and High Sierra. --- SoundflowerBed/AppController.mm | 5 +++++ SoundflowerBed/AudioDevice.cpp | 5 +++++ SoundflowerBed/AudioDeviceList.cpp | 5 +++++ SoundflowerBed/AudioThruEngine.cpp | 5 +++++ SoundflowerBed/Soundflowerbed.xcodeproj/project.pbxproj | 4 ++++ 5 files changed, 24 insertions(+) diff --git a/SoundflowerBed/AppController.mm b/SoundflowerBed/AppController.mm index a558d7c..1c3abb6 100644 --- a/SoundflowerBed/AppController.mm +++ b/SoundflowerBed/AppController.mm @@ -7,6 +7,11 @@ #include #include +/* verify_noerr was deprecated and removed in OS X High Sierra */ +#ifndef verify_noerr +#define verify_noerr __Verify_noErr +#endif + @implementation AppController void CheckErr(OSStatus err) diff --git a/SoundflowerBed/AudioDevice.cpp b/SoundflowerBed/AudioDevice.cpp index fdf26bd..cfd0f9a 100644 --- a/SoundflowerBed/AudioDevice.cpp +++ b/SoundflowerBed/AudioDevice.cpp @@ -42,6 +42,11 @@ #include "AudioDevice.h" +/* verify_noerr was deprecated and removed in OS X High Sierra */ +#ifndef verify_noerr +#define verify_noerr __Verify_noErr +#endif + void AudioDevice::Init(AudioDeviceID devid, bool isInput) { mID = devid; diff --git a/SoundflowerBed/AudioDeviceList.cpp b/SoundflowerBed/AudioDeviceList.cpp index 562cfbb..84d3c5a 100644 --- a/SoundflowerBed/AudioDeviceList.cpp +++ b/SoundflowerBed/AudioDeviceList.cpp @@ -43,6 +43,11 @@ #include "AudioDeviceList.h" #include "AudioDevice.h" +/* verify_noerr was deprecated and removed in OS X High Sierra */ +#ifndef verify_noerr +#define verify_noerr __Verify_noErr +#endif + AudioDeviceList::AudioDeviceList(bool inputs) : mInputs(inputs) { diff --git a/SoundflowerBed/AudioThruEngine.cpp b/SoundflowerBed/AudioThruEngine.cpp index adff937..65f5382 100644 --- a/SoundflowerBed/AudioThruEngine.cpp +++ b/SoundflowerBed/AudioThruEngine.cpp @@ -49,6 +49,11 @@ AudioBufferList *gInputIOBuffer = NULL; #endif +/* verify_noerr was deprecated and removed in OS X High Sierra */ +#ifndef verify_noerr +#define verify_noerr __Verify_noErr +#endif + #define kSecondsInRingBuffer 2. AudioThruEngine::AudioThruEngine() : diff --git a/SoundflowerBed/Soundflowerbed.xcodeproj/project.pbxproj b/SoundflowerBed/Soundflowerbed.xcodeproj/project.pbxproj index 36a562c..c6da0fb 100644 --- a/SoundflowerBed/Soundflowerbed.xcodeproj/project.pbxproj +++ b/SoundflowerBed/Soundflowerbed.xcodeproj/project.pbxproj @@ -316,6 +316,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 22952B1E104EC967003AF61F /* Soundflower.xcconfig */; buildSettings = { + CLANG_CXX_LIBRARY = "libc++"; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; DEPLOYMENT_LOCATION = YES; @@ -326,6 +327,7 @@ GCC_SYMBOLS_PRIVATE_EXTERN = NO; INFOPLIST_FILE = Info.plist; INSTALL_PATH = /Applications/Soundflower; + MACOSX_DEPLOYMENT_TARGET = 10.7; PRODUCT_NAME = Soundflowerbed; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( @@ -340,6 +342,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 22952B1E104EC967003AF61F /* Soundflower.xcconfig */; buildSettings = { + CLANG_CXX_LIBRARY = "libc++"; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; DEPLOYMENT_LOCATION = YES; @@ -347,6 +350,7 @@ GCC_SYMBOLS_PRIVATE_EXTERN = NO; INFOPLIST_FILE = Info.plist; INSTALL_PATH = /Applications/Soundflower; + MACOSX_DEPLOYMENT_TARGET = 10.7; PRODUCT_NAME = Soundflowerbed; SECTORDER_FLAGS = ""; WARNING_CFLAGS = ( From 779358a2c05b716cb506be16410e08a826e12a7f Mon Sep 17 00:00:00 2001 From: Andrew Newlands Date: Fri, 23 Nov 2018 14:52:32 +1100 Subject: [PATCH 2/2] Reinstated the loading of the kernel module (before the next 'clean' blows it away at the end of the script!) --- Tools/build.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Tools/build.rb b/Tools/build.rb index d346e52..074b7af 100755 --- a/Tools/build.rb +++ b/Tools/build.rb @@ -51,12 +51,12 @@ `sudo chown -R root #{@svn_root}/Build/InstallerRoot/System/Library/Extensions/Soundflower.kext` `sudo chgrp -R wheel #{@svn_root}/Build/InstallerRoot/System/Library/Extensions/Soundflower.kext` -#if /BUILD SUCCEEDED/.match(out) -# puts " BUILD SUCCEEDED" -# puts `ruby #{@svn_root}/Tools/load.rb` -#else -# puts " BUILD FAILED" -#end +if /BUILD SUCCEEDED/.match(out) + puts " BUILD SUCCEEDED" + puts `ruby #{@svn_root}/Tools/load.rb` +else + puts " BUILD FAILED" +end ###################################################################