gammasoft71/xtd

[QUESTION] Change required to xtd build or my toolset?

jimorc opened this issue · 3 comments

I recently upgraded from MacOS 12.3.6 to MacOS 13.0.1. Now when I attempt to build xtd, I get the following error:

make[2]: *** No rule to make target /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/lib/libexpat.tbd', needed by tools/keycodes/keycodes.app/Contents/MacOS/keycodes'. Stop.

This is repeated once or more per target.

The SDK has changed to MacOSX13.0.sdk. Is a change required in xtd, or is it buried somewhere in my toolset? I don't currently know how to proceed.

Hello,

I also upgraded to version 13.0.1 and Xcode 14.1 some time ago.

Yes, it seems to me that there was also a problem with the toolset. But as I work on xtd, I had to erase the CMake cache of xtd and of course I reinstalled it since I install it permanently.

Anyway, the easiest way, for you, is to clear the cache (CMake) of your project and restart the build. And if it doesn't work. You may have to restart the xtd install (by deleting the CMake cache too).

Remarks

  • Check that the "Command line" tool of Xcode" is up to date. Create a simple c++ project and check that cmake knows how to generate it with the correct clang version (14.0.0).
  • To be sure to clear the cache completely you can delete the build folder.

Regards,
Gammasoft

Yes, I had to update the Xcode command line tools.
What I normally do when updating xtd is:

rm -rf xtd
git clone https://github.com/gammasoft71/xtd.git
cd xtd
./install

But when I did that, I would get the error as I indicated above.

This time:

rm -rf xtd
rm -rf /usr/local/bin/wx
rm all xtd and wx lib files in .usr/local/lib

Now when I run

git clone https://github.com/gammasoft71/xtd.git
cd xtd
./install

there are no errors. It was necessary to rebuild the wxWidgets libraries to get the link errors to go away.

Thanks for the help. It pointed me in the right direction.

You are welcome ;-)

FYI this comes from the fact that by default xtd and wxWidgets are built in static lib.

When xtd is further developed, the default build mode will be shared lib.

The whole build is designed to switch easily from one mode to the other, but it will be necessary to do a test run to validate that everything works well (especially on Windows).

Regards,
Gammasoft