BIM Coordinator Program (INT) April 22, 2024

Find the next step in your career as a Graphisoft Certified BIM Coordinator!

Archicad C++ API
About Archicad add-on development using the C++ API.

ArchiCAD 16 Devkit & XCode 4

stefan
Expert
I try to follow the "step-by-step" instructions on http://www.graphisoft.com/ftp/techsupport/documentation/developer_docs/AC15/APIDevKit/APIHTMLLibrary...

I don't have a similar link for 16, but exactly the same page, dated 2008 (!) is in my local copy for the r16 DevKit. But it is indeed not at all reflecting the current state of XCode nor OSX (e.g. 10.4 sdk, /Developer/ folder for XCode libraries, architecture i386 etc).

When I open an example project in XCode (4.4.1) I get a "missing SDK" warning. I assume that is because I don't have the old 10.6 SDK anymore, as it was removed by the XCode 4 installer.

None of the pages in the Wiki reflect the current state of the SDK or ArchiCAD.

But the documentation clearly states that XCode 4 can be used.
On a MacTel Macintosh we support OS X 10.6 and later. The the necessary build environment is Xcode 3.2 and GCC 4.0. (Note, that ArchiCAD 16 is a Mach-O Cocoa application, and the add-ons are Mach-O bundles. Add-on developers must adapt the corresponding environment and rules.)

XCode 4.x , GCC 4.2 or the newer LLVM Compiler 3 should also create executables which are binary compatible with our libraries.
--- stefan boeykens --- bim-expert-architect-engineer-musician ---
Archicad27/Revit2023/Rhino8/Unity/Solibri/Zoom
MBP2023:14"M2MAX/Sonoma+Win11
Archicad-user since 1998
my Archicad Book
3 REPLIES 3
stefan
Expert
I was able to compile Geometry_Test and that seems to be working in ArchiCAD 16.

3D_Test also compiled fine. Do not remember how much I already tinkered to get it running, though. I had to change Base SDK (10.7 SDK) and Compiler (use LLVM GCC 4.2) to get that far.
But while it is shown in the menu, no output can be seen in the report window.

The Plan_Dump fails compilation with following errors:

Undefined symbols for architecture x86_64:
"Modeler::Body::GetConstEdge(unsigned int) const", referenced from:
DumpWriter::Wr_Morph(API_Element const*) in DumpWriter.o
"Modeler::Body::GetConstVertex(unsigned int) const", referenced from:
DumpWriter::Wr_Morph(API_Element const*) in DumpWriter.o
"Modeler::Body::GetConstPolygon(unsigned int) const", referenced from:
DumpWriter::Wr_Morph(API_Element const*) in DumpWriter.o
"Modeler::PGON::GetNormalVector(Modeler::Body const&, TRAN const*) const", referenced from:
DumpWriter::Wr_Morph(API_Element const*) in DumpWriter.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

Element_Test > apart from Base SDK & Compiler settings, the geometry.framework is using an absolute path on (what I assume) a machine from a GS employee.
/Volumes/TX/Users/somorjai/Work/DevMain/Bin.Mactel/Modules_GCC4_2_64_LLVM.dev/APIDevKit/Support/Frameworks/Geometry.framework
I can copy that from a working example.
Also "elements_trim.cpp" is also pointing to a non-available file.
And then hundreds of errors in several files...


So a really frustrating experience, once again. Documentation does not reflect current state of affairs and there is almost no info to be found online. I begin to think that this is black magic, after all. I hate to think what will happen when I replace my laptop with a new one, running only Mountain Lion and any uptodate XCode that Apple will provide to me.
--- stefan boeykens --- bim-expert-architect-engineer-musician ---
Archicad27/Revit2023/Rhino8/Unity/Solibri/Zoom
MBP2023:14"M2MAX/Sonoma+Win11
Archicad-user since 1998
my Archicad Book
Ralph Wessel
Mentor
stefan wrote:
So a really frustrating experience, once again. Documentation does not reflect current state of affairs and there is almost no info to be found online. I begin to think that this is black magic, after all. I hate to think what will happen when I replace my laptop with a new one, running only Mountain Lion and any uptodate XCode that Apple will provide to me.
We're running Mountain Lion, but have multiple Xcode installations including 3.2.6. It is still possible to download and install this version, but it requires a few minor hacks. We have been advised that Xcode 4 is probably compatible, but no guarantees. We're sticking to 3.2.6 for ArchiCAD development until GS advises that 4 is definitely the way to go.
Ralph Wessel BArch
stefan
Expert
Ralph. I was afraid that this would be the answer...

I dug up an old backup and copied 11 Gb of XCode 3.2.6. folders to compile the plugins. I could compile 'some' of the examples.

3D_Test without errors, although I had to unset a constant to see some output in the Report window in file "APICommon.c".
#define USE_DEBUG_WINDOW	0
And set the Developer ID obviously.

The Goodie_Functions compiled fine now.

The Plan_Dump worked (once I added the Model3D.framework which was missing).

The Element_Test did not, as there were several errors in source files outside the project (I'm guessing in GCC or Boost libraries or whatever gets compiled in > basic_string.tcc). Maybe we get a mixture of stuff from XCode 3.x and XCode 4.x era's?


So my conclusion: claiming XCode 4 is supported, as mentioned in the docs, is misleading as it seems to be hardly tested by GS.

That said, I'll stick with XCode 3.2.6 and have to make some room on my Windows partition to install Visual Studio 2005 (which I still have laying around somewhere on a DVD. Better hurry, as I assume my next laptop won't even have an optical drive anymore).
--- stefan boeykens --- bim-expert-architect-engineer-musician ---
Archicad27/Revit2023/Rhino8/Unity/Solibri/Zoom
MBP2023:14"M2MAX/Sonoma+Win11
Archicad-user since 1998
my Archicad Book
Learn and get certified!