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

  1. Follow prep instructions on README
  • brew install cmake freetype libvorbis sdl2 libpng jpeg libarchive libiconv
  • git clone https://github.com/Drewol/unnamed-sdvx-clone
  • cd unnamed-sdvx-clone
  • git submodule update --init --recursive
  1. Use VS Code to replace all instances of /usr/local in the project folder with /opt/homebrew.
  2. Attempt to build the project
  • ./mac-cmake.sh
  • make

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

Most upvoted comments

I managed to get a successful build on my M1 Mac! All it took was, without doing any aforementioned VS Code path changing:

  • creating a couple aliases
    • /usr/local/include —> /opt/homebrew/include
    • /usr/local/opt —> /opt/homebrew/opt
  • commenting out the datatype checks in third_party/nuklear/nuklear.h (lines 415-423)
// NK_STATIC_ASSERT(sizeof(nk_short) == 2);
// NK_STATIC_ASSERT(sizeof(nk_ushort) == 2);
// NK_STATIC_ASSERT(sizeof(nk_uint) == 4);
// NK_STATIC_ASSERT(sizeof(nk_int) == 4);
// NK_STATIC_ASSERT(sizeof(nk_byte) == 1);
// NK_STATIC_ASSERT(sizeof(nk_flags) >= 4);
// NK_STATIC_ASSERT(sizeof(nk_rune) >= 4);
// NK_STATIC_ASSERT(sizeof(nk_size) >= sizeof(void*)); // commenting just this and next line would have sufficed according to my previous comment's error message
// NK_STATIC_ASSERT(sizeof(nk_ptr) >= sizeof(void*));

However, this is a workaround and the symlink may need to be removed to keep things clean.