gammasoft71 / xtd

Free open-source modern C++17 / C++20 framework to create console, GUI (forms like WinForms) and unit test applications and libraries on Microsoft Windows, Apple macOS and Linux.
https://gammasoft71.github.io/xtd
MIT License
735 stars 57 forks source link

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

Closed jimorc closed 1 year ago

jimorc commented 1 year ago

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 bytools/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.

gammasoft71 commented 1 year ago

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

Regards, Gammasoft

jimorc commented 1 year ago

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.

gammasoft71 commented 1 year ago

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