@suv - I'm sure everyone will agree with me, though, that you're one of the most valued members of the project... I really think that locking you out of compiling the latest development version should be our very last resort!
Best wishes,
Alex On 26 Aug 2015 2:16 pm, "su_v" <suv@...2204...> wrote:
On 2015-08-26 02:46 (+0200), Krzysztof Kosiński wrote:
Is Xcode the only way to compile anything on OS X? (I'm completely unfamiliar with that platform.)
Xcode and Xcode's CLT [1] are a prerequisite (default toolchain) for any of the major package managers on OS X (MacPorts, Fink, Homebrew, gtk-osx) which ease getting all the dependencies for GTK+ and Inkscape installed. Besides Apple's compiler toolchain (compatible with the system runtimes) Xcode provides the SDKs for building against Apple's frameworks.
- As likely mentioned a few times in earlier threads, it is technically
possible to build a custom (newer) compiler toolchain (be it for FSF GCC or Clang) from source; it is technically also possible to compile the dependencies as well as Inkscape itself from source using that custom compiler. As long as nothing pulls in system libs or frameworks which are linked against an incompatible system C++ runtime, this might produce stable inkscape binaries. Both can be attempted via MacPorts, too, though the part of rebuilding the tree itself with that custom compiler to avoid any mixing of different (incompatible) C++ runtimes is not an officially supported MacPorts configuration.
- On OS X 10.7 (Lion) and OS X 10.8 (Mountain Lion), it is technically
possible to recompile the dependency tree with Apple's system compiler (clang), and switch the C++ runtime from GCC's 4.2.1 libstdc++ to libc++ via CXXFLAGS or command line arguments passed to the compiler [2]. The success rate of this strategy is not known to me - Lion's libc++ is likely rather dated, and breakages of some of the dependencies to be expected (various build systems may make assumptions about what to use on OS X, and override/ignore custom configurations). Again not an officially supported configuration within MacPorts [3].
- Alternative package managers (e.g. Fink, Homebrew) may have developed
their own solutions to support modern C++11-based ports/packages on older versions of OS X (I haven't investigated in detail since MacPorts is my preferred tool for installing Inkscape's dependencies, and served me well for this purpose in the past) - the overall tendency though seems to be that full support for older versions of OS X is waning (i.e. depending on what individual developers and port/package maintainers are willing/able to sustain - some might choose to follow what appears to be Apple's policy: current and past two versions only).
It was my personal choice (for several reasons) not to attempt a strategy based on custom compiler toolchain(s) again - neither for local Unix-style trunk/release branch builds, nor for osx packaging (creating relocatable and fully self-contained application bundles).
Since having the role of a single person currently stuck with an outdated version of a proprietary OS who is holding back all of Inkscape's development makes me increasingly uncomfortable (some of the reasons I'm "stuck" like this are of personal nature and not strictly technical (or monetary)), I suggest that the project moves on, officially ends support for OS X < 10.9 (if someone volunteers to attempt to create pre-compiled packages for <= 10.8 that would be a bonus), and opens trunk for C++11 features without restrictions ASAP.
Once my personal circumstances change and I have access to a modern compiler toolchain with full C++11 support (preferably provided by the system), I'll likely pick up bug triage again, possibly packaging (or at least the osxmenu branch), too.
Regards, V
[1] CLT: Command Line Tools Package - available for download separately from Xcode which allows to do UNIX-style command line development in OS X. [2] https://trac.macports.org/wiki/LibcxxOnOlderSystems [3] recent example: "ncurses @6.0_0 fails to build on Lion with cxx_stdlib=libc++" https://trac.macports.org/ticket/48627#comment:9
On the Linux side, I think we can safely assume C++11 support no worse than in GCC 4.8.4 (the version from current Ubuntu LTS).
Regards, Krzysztof
2015-08-25 18:25 GMT+02:00 su_v <suv@...2204...>:
On 2015-08-25 16:59 (+0200), Alex Valavanis wrote:
The AX macro tests for a few C++11 features (not just support for the command-line flag) but it isn't comprehensive. Still, this looks like good progress. AFAIK, Xcode 5.0 would be needed for full C++11 support.
Do you know which is the earliest OS X version that will run Xcode 4.6?
Xcode 4.6: OS X 10.7 Lion Xcode 5.x: OS X 10.8 Mountain Lion Xcode 6.2: OS X 10.9 Mavericks Xcode 6.4: OS X 10.10 Yosemite
Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel