The notion that I might be able to build TextMate on my own machine is so cool that I thought I'd give it a try. I got a very long way (thanks to the wonderful instructions at the github site) but when the actual moment came to do some compiling, we choked up:
[1/1] Generate ‘build.ninja’… [3/993] Compile ‘Shared/PCH/prelude.mm’…
FAILED: '/Applications/Xcode51-Beta5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++' -c -pipe -fPIC -gdwarf-2 -m64 -mmacosx-version-min=10.7 -isysroot "/Applications/Xcode51-Beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk" -funsigned-char -D'NULL_STR="\uFFFF"' -Wall -Wwrite-strings -Wformat -Winit-self -Wmissing-include-dirs -Wno-parentheses -Wno-sign-compare -Wno-switch -Wno-address-of-temporary -IShared/include -fcolor-diagnostics -DNDEBUG -Os -fvisibility=hidden -std=c++11 -stdlib=libc++ -fobjc-abi-version=3 -fobjc-arc -Xclang -fobjc-default-synthesize-properties -fobjc-call-cxx-cdtors -x objective-c++-header -o /Users/mattneuburg/build/TextMate/Shared/PCH/prelude.mm.gch -MMD -MF /Users/mattneuburg/build/TextMate/Shared/PCH/prelude.mm.gch.d -I/Users/mattneuburg/build/TextMate/include Shared/PCH/prelude.mm
error: unknown argument: '-fobjc-default-synthesize-properties'
Is this just because I've installed the Xcode 5.1 beta? Thx - m.
-- matt neuburg, phd = matt@tidbits.com, http://www.apeth.net/matt/ pantes anthropoi tou eidenai oregontai phusei Programming iOS 7! http://shop.oreilly.com/product/0636920031017.do iOS 7 Fundamentals! http://shop.oreilly.com/product/0636920032465.do RubyFrontier! http://www.apeth.com/RubyFrontierDocs/default.html TidBITS, Mac news and reviews since 1990, http://www.tidbits.com
Answer: Yes! I was able to fix this problem in the following manner:
* Step 0. In Xcode (such as 5.1 beta), open Preferences, switch to Location pane, change Command Line Tools pop-up to Xcode 5.0.2. You will need to authenticate.
* Step 1. There is no Step 1! Just configure and ninja. You will now succeed. :)
It appears that clang has caused major breakage in Xcode 5.1 by turning things that used to be ignored or mere warnings into failures. I have had other problems related to this. See also, for example:
http://clang-developers.42468.n3.nabble.com/error-unknown-argument-ffoo-gt-r...
This is awesome. I built TextMate, and yet my computer did not explode. (Sure got hot though.)
One word of advice: Do NOT believe the github ReadMe when it says that you can omit installing hg (Mercurial). The build will fail and you cannot get past that point. Install hg when you do your various installs, and all will be well.
m.
On Feb 13, 2014, at 10:29 AM, Matt Neuburg matt@tidbits.com wrote:
The notion that I might be able to build TextMate on my own machine is so cool that I thought I'd give it a try. I got a very long way (thanks to the wonderful instructions at the github site) but when the actual moment came to do some compiling, we choked up:
[1/1] Generate ‘build.ninja’… [3/993] Compile ‘Shared/PCH/prelude.mm’…
FAILED: '/Applications/Xcode51-Beta5.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++' -c -pipe -fPIC -gdwarf-2 -m64 -mmacosx-version-min=10.7 -isysroot "/Applications/Xcode51-Beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk" -funsigned-char -D'NULL_STR="\uFFFF"' -Wall -Wwrite-strings -Wformat -Winit-self -Wmissing-include-dirs -Wno-parentheses -Wno-sign-compare -Wno-switch -Wno-address-of-temporary -IShared/include -fcolor-diagnostics -DNDEBUG -Os -fvisibility=hidden -std=c++11 -stdlib=libc++ -fobjc-abi-version=3 -fobjc-arc -Xclang -fobjc-default-synthesize-properties -fobjc-call-cxx-cdtors -x objective-c++-header -o /Users/mattneuburg/build/TextMate/Shared/PCH/prelude.mm.gch -MMD -MF /Users/mattneuburg/build/TextMate/Shared/PCH/prelude.mm.gch.d -I/Users/mattneuburg/build/TextMate/include Shared/PCH/prelude.mm
error: unknown argument: '-fobjc-default-synthesize-properties'
Is this just because I've installed the Xcode 5.1 beta? Thx - m.
-- matt neuburg, phd = matt@tidbits.com, http://www.apeth.net/matt/ pantes anthropoi tou eidenai oregontai phusei Programming iOS 7! http://shop.oreilly.com/product/0636920031017.do iOS 7 Fundamentals! http://shop.oreilly.com/product/0636920032465.do RubyFrontier! http://www.apeth.com/RubyFrontierDocs/default.html TidBITS, Mac news and reviews since 1990, http://www.tidbits.com
textmate mailing list textmate@lists.macromates.com http://lists.macromates.com/listinfo/textmate
-- matt neuburg, phd = matt@tidbits.com, http://www.apeth.net/matt/ pantes anthropoi tou eidenai oregontai phusei Programming iOS 7! http://shop.oreilly.com/product/0636920031017.do iOS 7 Fundamentals! http://shop.oreilly.com/product/0636920032465.do RubyFrontier! http://www.apeth.com/RubyFrontierDocs/default.html TidBITS, Mac news and reviews since 1990, http://www.tidbits.com
On Feb 13, 2014, at 11:28 AM, Matt Neuburg matt@tidbits.com wrote:
Answer: Yes! I was able to fix this problem in the following manner:
Step 0. In Xcode (such as 5.1 beta), open Preferences, switch to Location pane, change Command Line Tools pop-up to Xcode 5.0.2. You will need to authenticate.
Step 1. There is no Step 1! Just configure and ninja. You will now succeed. :)
It appears that clang has caused major breakage in Xcode 5.1
I have filed a bug on this change:
http://llvm.org/bugs/show_bug.cgi?id=18831
But the bug was closed immediately; the clang people (who are extremely nice) made clear that there is no going back. Thus it is crucial that TextMate 2 should remove '-fobjc-default-synthesize-properties' (and any other incorrect arguments) from its clang arguments in the build process, as this will stop compilation dead when people upgrade to Xcode 5.1. Previously, incorrect arguments were silently ignored; now they are fatal errors. m.
-- matt neuburg, phd = matt@tidbits.com, http://www.apeth.net/matt/ pantes anthropoi tou eidenai oregontai phusei Programming iOS 7! http://shop.oreilly.com/product/0636920031017.do iOS 7 Fundamentals! http://shop.oreilly.com/product/0636920032465.do RubyFrontier! http://www.apeth.com/RubyFrontierDocs/default.html TidBITS, Mac news and reviews since 1990, http://www.tidbits.com
On 14 Feb 2014, at 23:58, Matt Neuburg wrote:
[…] it is crucial that TextMate 2 should remove '-fobjc-default-synthesize-properties' (and any other incorrect arguments) […]
Thanks for looking into this, I have removed the option: https://github.com/textmate/textmate/commit/e2d2b1ef6ac4e4b3b90aec21be2ce7be...
It’s worth noting that the option was not illegal when it was added (September 2012), it was infact required. From the commit message of clang revision 191551 (September 2013) it does sound like it is still required for versions of clang prior to the change, but it works with clang-500.2.79 (latest non-beta Xcode).
On Feb 14, 2014, at 8:58 AM, Matt Neuburg matt@tidbits.com wrote:
I have filed a bug on this change:
http://llvm.org/bugs/show_bug.cgi?id=18831
But the bug was closed immediately; the clang people (who are extremely nice) made clear that there is no going back. Thus it is crucial that TextMate 2 should remove '-fobjc-default-synthesize-properties' (and any other incorrect arguments) from its clang arguments in the build process, as this will stop compilation dead when people upgrade to Xcode 5.1. Previously, incorrect arguments were silently ignored; now they are fatal errors. m.
And now my bug submitted to Apple has been closed as well; Apple confirms that this change is deliberate and will not be rolled back.
So both Apple and the clang people (of course there is some overlap) are quite willing to break the build process of lots of existing packages, going forward. It's official. m.
-- matt neuburg, phd = matt@tidbits.com, http://www.apeth.net/matt/ pantes anthropoi tou eidenai oregontai phusei Programming iOS 7! http://shop.oreilly.com/product/0636920031017.do iOS 7 Fundamentals! http://shop.oreilly.com/product/0636920032465.do RubyFrontier! http://www.apeth.com/RubyFrontierDocs/default.html TidBITS, Mac news and reviews since 1990, http://www.tidbits.com