Closed eyeofstorm closed 3 years ago
Does AC no more support macOS 10.14?
the only macOS version supported is currently 10.15, see https://github.com/azerothcore/azerothcore-wotlk/blob/master/.github/SECURITY.md
If true, this is a bad news for those people who want to run the client an server in the same machine. Since the 10.14 is the last macOS version that support 32bit application, and WotLK has no 64bit application at all.
I run AC and the client using 10.15 with: https://www.mangosrumors.org/how-to-run-wow-32-bit-on-mac-os/
However... it would be nice to fix your issue and allow people to use AC on macOS 10.14 too.
@eyeofstorm what is your clang --version
?
Does AC no more support macOS 10.14?
the only macOS version supported is currently 10.15, see https://github.com/azerothcore/azerothcore-wotlk/blob/master/.github/SECURITY.md
If true, this is a bad news for those people who want to run the client an server in the same machine. Since the 10.14 is the last macOS version that support 32bit application, and WotLK has no 64bit application at all.
I run AC and the client using 10.15 with: https://www.mangosrumors.org/how-to-run-wow-32-bit-on-mac-os/
However... it would be nice to fix your issue and allow people to use AC on macOS 10.14 too.
Very helpful. I'll try it. Thanks.
@eyeofstorm what is your
clang --version
?
Apple clang version 11.0.0 (clang-1100.0.33.17) Target: x86_64-apple-darwin18.7.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
@eyeofstorm what is your
clang --version
?Apple clang version 11.0.0 (clang-1100.0.33.17) Target: x86_64-apple-darwin18.7.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
@eyeofstorm ok, clang-11 should be good enough.
maybe this can help:
Maybe the equivalent of #6889 just on MacOS and not on debian. I'm wondering whether PR #6914 also fixes building on MacOS 10.14 ...
Maybe the equivalent of #6889 just on MacOS and not on debian. I'm wondering whether PR #6914 also fixes building on MacOS 10.14 ...
I'm afraid can't. On macOS 10.14, It is another issue. As I mentioned before, when change build target to 10.15, Building will finished with no errors.
I'm running cmake on branch pr-6914, and then following error happens.
-- CMake version: 3.20.1
-- The CXX compiler identification is AppleClang 11.0.0.11000033
-- The C compiler identification is AppleClang 11.0.0.11000033
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
> Warning: module using deprecated add config file api
-- Running cmake hook: AFTER_LOAD_CONF
-- No hooks registered for AFTER_LOAD_CONF
-- Enabled С++17 support
-- Detected 64-bit platform
-- UNIX: Using default configuration directory
-- UNIX: Using default library directory
-- UNIX: Configuring uninstall target
-- UNIX: Created uninstall target
-- UNIX: Detected compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
-- Clang: Minimum version required is 10.0.0, found 11.0.0.11000033 - ok!
-- Performing Test CLANG_HAVE_PROPER_CHARCONV
-- Performing Test CLANG_HAVE_PROPER_CHARCONV - Success
-- Running cmake hook: AFTER_LOAD_CMAKE_MODULES
-- No hooks registered for AFTER_LOAD_CMAKE_MODULES
-- Found ACE library: /usr/local/lib/libACE.dylib
-- Found ACE headers: /usr/local/include
-- Using mysql-config: /usr/local/mysql/bin/mysql_config
-- Found MySQL library: /usr/local/mysql/lib/libmysqlclient.dylib
-- Found MySQL headers: /usr/local/mysql/include
-- Found MySQL executable: /usr/local/mysql/bin/mysql
-- Found git binary : /usr/bin/git
* AzerothCore revision : b6168c2d94c4 2021-07-13 22:01:32 +0900 (pr-6914 branch)
* AzerothCore buildtype : Release
* Install core to : /Users/xxxxxx/azeroth-wotlk-server
* Install libraries to : /Users/xxxxxx/azeroth-wotlk-server/lib
* Install configs to : /Users/xxxxxx/azeroth-wotlk-server/etc
* Build world/auth : Yes (default)
* Build with scripts : Yes (static)
* Build with modules : Yes (static)
* Build map/vmap tools : No (default)
* Build unit tests : No (default)
* Build core w/PCH : No
* Build scripts w/PCH : No
* Show compile-warnings : No (default)
* Use coreside debug : No (default)
* Use unix gperftools : No (default)
* Use GIT revision hash : Yes (default)
* Enable extra features : Yes (default)
* Enable vmap DisableMgr checks : Yes (default)
* Enable extra logging functions : No (default)
* Show source tree : No (For UNIX default)
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found Boost: /usr/local/lib/cmake/Boost-1.75.0/BoostConfig.cmake (found suitable version "1.75.0", minimum required is "1.67") found components: system filesystem program_options iostreams regex
-- Performing Test boost_filesystem_copy_links_without_NO_SCOPED_ENUM
-- Performing Test boost_filesystem_copy_links_without_NO_SCOPED_ENUM - Success
-- Found ZLIB: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib/libz.tbd (found version "1.2.11")
-- Looking for strtod_l
-- Looking for strtod_l - found
-- Found OpenSSL: /usr/local/opt/openssl@1.1/lib/libssl.dylib;/usr/local/opt/openssl@1.1/lib/libcrypto.dylib
-- Looking for C++ include filesystem
-- Looking for C++ include filesystem - found
-- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED
-- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED - Failed
-- Performing Test CXX_FILESYSTEM_STDCPPFS_NEEDED
-- Performing Test CXX_FILESYSTEM_STDCPPFS_NEEDED - Failed
-- Performing Test CXX_FILESYSTEM_CPPFS_NEEDED
-- Performing Test CXX_FILESYSTEM_CPPFS_NEEDED - Failed
CMake Error at src/cmake/macros/FindFilesystem.cmake:239 (message):
Cannot Compile simple program using std::filesystem
Call Stack (most recent call first):
deps/stdfs/CMakeLists.txt:12 (find_package)
-- Configuring incomplete, errors occurred!
thanks for your feedback @eyeofstorm
@necropola in your PR 6914, can you please exclude macOS from your script?
std::filesystem
-- Looking for C++ include filesystem
-- Looking for C++ include filesystem - found
-- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED
-- Performing Test CXX_FILESYSTEM_NO_LINK_NEEDED - Success
FindFilesystem
cmake module tries 3 ways to compile and link a simple C++ program which uses std::filesystem
and when all 3 fail, it exits with the above error messageI'll try to figure out, if there is a way to build on macOS 14 when std::filesystem
is required. If not, then there is not much we can do.
Update: Does not look good. After a bit of research, I come to the following conclusions:
std::filesystem
, i. e. using std::filesystem
in AC breaks building on/for macOS 10.14
https://developer.apple.com/documentation/xcode-release-notes/xcode-11-release-notes#Overview
tools
, e. g. mapextractor
, requires std::filesystem
for about 4 month now and probably couldn't be compiled on/for macOS 10.14 since thenboost::filesystem
to std::filesystem
in common
now also breaks building the server itself on/for macOS 10.14The only thing that we could actually do is to get rid of std::filesystem
entirely and use boost::filesystem
instead, i. e. revert the change in common
and also use boost::filesystem
in tools
. This would make my PR obsolete of course.
This was also one of the suggested solutions for the same problem on macOS 10.13 (https://stackoverflow.com/questions/49577343/filesystem-with-c17-doesnt-work-on-my-mac-os-x-high-sierra). Someone even made and suggested a lightweight header-only filesystem implementation specifically for macOS < 10.15 to avoid the (big) boost dependency: https://github.com/gulrak/filesystem
@Winfidonarleyan Do you have a better idea?
@eyeofstorm Wait ....
As I mentioned before, when change build target to 10.15, Building will finished with no errors.
Sorry, these questions are maybe stupid, but I'm not a mac user.
Can't you just install clang instead of Apple-clang fork, which would install a newer version of Libc++ containing the filesystem headers
@eyeofstorm the biggest issue of using macOS 10.14 is that we cannot run it in our CI so there is no way for us to know if any change would break it. So even if we fixed this completely, there could be easily something else that would break it tomorrow. That's why we recommend macOS 10.15 or higher. Did you give it a try? Using what I suggested to run the client (I do it with 10.15 and works fine for me, both client and server).
@necropola
So you have the SDK 10.15 and can set the build target to 10.15 or does the SDK 10.14 also allow to set the build target to 10.15?
I have the SDK 10.15 and can set the build target to 10.15 On My macOS 10.14 MacBook.
Isn't that the solution or does the result then no longer run on 10.14 (but on 10.15)?
Setting the build target to 10.15 will building AC with no errors, but can not running on macOS 10.14.
Does it also compile with my PR when you set the build target to 10.15?
No, cmake may failed. Actually, With or Without your PR-6914, 10.15 will pass through the building, But 10.14 can't. So your PR actually not effect to the macOS.
@eyeofstorm the biggest issue of using macOS 10.14 is that we cannot run it in our CI so there is no way for us to know if any change would break it. So even if we fixed this completely, there could be easily something else that would break it tomorrow. That's why we recommend macOS 10.15 or higher. Did you give it a try? Using what I suggested to run the client (I do it with 10.15 and works fine for me, both client and server).
Since macOS 10.15 is the only official supported version, I think the best way is switch to macOS 10.15. I'll try it. Thank you very much.
@eyeofstorm I'll close this, let us know how it goes with macOS 10.15. If you need any assistance, just ping us on the AC Discord
Current Behaviour
After merge the ACCore with the following commit.
https://github.com/azerothcore/azerothcore-wotlk/commit/ebb80145b3b213a126536246034969c7441d945f
Building on macOS 10.14 while running "make -j 4", following error happens.
'~path' is unavailable: introduced in macos 10.15
It seems that this commit uses some API introduced in 10.15. Revert to the parent commit above or change the build target to 10.15 will pass the compile.
Does AC no more support macOS 10.14? If true, this is a bad news for those people who want to run the client an server in the same machine. Since the 10.14 is the last macOS version that support 32bit application, and WotLK has no 64bit application at all.
Expected Blizzlike Behaviour
none
Source
None
Steps to reproduce the problem
Extra Notes
None
AC rev. hash/commit
ebb80145b3b213a126536246034969c7441d945f
Operating system
macOS Mojave 10.14.6
Custom changes or Modules
None