unnamed-sdvx-clone: [Bug] Unable to build on Mac M1 due to Homebrew's different default install path
Describe the bug
Since Homebrew installs itself onto /opt/homebrew on Mac M1, the build script fails when trying to build on Mac M1. Even after using VS Code to replace all instances of /usr/local with /opt/homebrew, the build still fails but a little further down the road.
To Reproduce
- Follow prep instructions on README
brew install cmake freetype libvorbis sdl2 libpng jpeg libarchive libiconvgit clone https://github.com/Drewol/unnamed-sdvx-clonecd unnamed-sdvx-clonegit submodule update --init --recursive
- Use VS Code to replace all instances of
/usr/localin the project folder with/opt/homebrew. - Attempt to build the project
./mac-cmake.shmake
Expected behavior An executable appears in the bin folder.
make log (before replacing /usr/local)
...
[ 38%] Building CXX object Shared/CMakeFiles/Shared.dir/src/Config.cpp.o
[ 39%] Building CXX object Shared/CMakeFiles/Shared.dir/src/ConfigEntry.cpp.o
[ 39%] Building CXX object Shared/CMakeFiles/Shared.dir/src/FileStream.cpp.o
[ 40%] Building CXX object Shared/CMakeFiles/Shared.dir/src/Interpolation.cpp.o
[ 40%] Building CXX object Shared/CMakeFiles/Shared.dir/src/Jobs.cpp.o
[ 41%] Building CXX object Shared/CMakeFiles/Shared.dir/src/Log.cpp.o
/Users/alex/git/unnamed-sdvx-clone/Shared/src/Log.cpp:145:9: warning: enumeration value '_Length' not handled in switch [-Wswitch]
switch(severity)
^
/Users/alex/git/unnamed-sdvx-clone/Shared/src/Log.cpp:145:9: note: add missing switch cases
switch(severity)
^
1 warning generated.
[ 41%] Building CXX object Shared/CMakeFiles/Shared.dir/src/Math.cpp.o
[ 42%] Building CXX object Shared/CMakeFiles/Shared.dir/src/MemoryStream.cpp.o
[ 42%] Building CXX object Shared/CMakeFiles/Shared.dir/src/Path.cpp.o
[ 43%] Building CXX object Shared/CMakeFiles/Shared.dir/src/Random.cpp.o
[ 43%] Building CXX object Shared/CMakeFiles/Shared.dir/src/String.cpp.o
[ 43%] Building CXX object Shared/CMakeFiles/Shared.dir/src/StringEncodingConverter.cpp.o
/Users/alex/git/unnamed-sdvx-clone/Shared/src/StringEncodingConverter.cpp:9:10: fatal error: 'archive_entry.h' file not found
#include "archive_entry.h"
^~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [Shared/CMakeFiles/Shared.dir/src/StringEncodingConverter.cpp.o] Error 1
make[1]: *** [Shared/CMakeFiles/Shared.dir/all] Error 2
make: *** [all] Error 2
make log (after replacing /usr/local)
...
[ 45%] Building CXX object Shared/CMakeFiles/Shared.dir/src/TextStream.cpp.o
[ 45%] Building CXX object Shared/CMakeFiles/Shared.dir/src/Transform.cpp.o
[ 46%] Building CXX object Shared/CMakeFiles/Shared.dir/src/UTF8.cpp.o
[ 46%] Building CXX object Shared/CMakeFiles/Shared.dir/src/VectorMath.cpp.o
[ 47%] Building CXX object Shared/CMakeFiles/Shared.dir/src/MacOS/Thread.cpp.o
[ 47%] Building CXX object Shared/CMakeFiles/Shared.dir/src/Unix/Debug.cpp.o
[ 48%] Building CXX object Shared/CMakeFiles/Shared.dir/src/Unix/File.cpp.o
[ 48%] Building CXX object Shared/CMakeFiles/Shared.dir/src/Unix/Files.cpp.o
[ 49%] Building CXX object Shared/CMakeFiles/Shared.dir/src/Unix/Path.cpp.o
/Users/alex/git/unnamed-sdvx-clone/Shared/src/Unix/Path.cpp:104:1: warning: non-void function does not return a value in all control paths [-Wreturn-type]
}
^
1 warning generated.
[ 49%] Building CXX object Shared/CMakeFiles/Shared.dir/stdafx.cpp.o
[ 50%] Linking CXX static library ../lib/libShared_Release.a
[ 50%] Built target Shared
[ 50%] Building CXX object Graphics/CMakeFiles/Graphics.dir/src/Font.cpp.o
[ 51%] Building CXX object Graphics/CMakeFiles/Graphics.dir/src/Gamepad_Impl.cpp.o
[ 51%] Building CXX object Graphics/CMakeFiles/Graphics.dir/src/Image.cpp.o
/Users/alex/git/unnamed-sdvx-clone/Graphics/src/Image.cpp:8:10: fatal error: 'libpng16/png.h' file not found
#include "libpng16/png.h"
^~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [Graphics/CMakeFiles/Graphics.dir/src/Image.cpp.o] Error 1
make[1]: *** [Graphics/CMakeFiles/Graphics.dir/all] Error 2
make: *** [all] Error 2
System MacBook Air 2020 M1 Apple Silicon 256 GB SSD 8 GB RAM
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 22 (5 by maintainers)
Commits related to this issue
- Set MacOS libraries in CMakeLists.txt Fixes #471 Fixes #654 — committed to SkyLeite/unnamed-sdvx-clone by SkyLeite 6 months ago
I managed to get a successful build on my M1 Mac! All it took was, without doing any aforementioned VS Code path changing:
/usr/local/include—>/opt/homebrew/include/usr/local/opt—>/opt/homebrew/optthird_party/nuklear/nuklear.h(lines 415-423)However, this is a workaround and the symlink may need to be removed to keep things clean.