bkaradzic / bgfx

Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
https://bkaradzic.github.io/bgfx/overview.html
BSD 2-Clause "Simplified" License
15.01k stars 1.94k forks source link

Mac build fails, _glcpp_parser_parse & _yylex undefined #1441

Open CaptainCrowbar opened 6 years ago

CaptainCrowbar commented 6 years ago

Running make osx-release64 fails:

(...many lines of successful compile skipped...)
validate_type_unique.cpp
Archiving spirv-opt
==== Building shaderc (release64) ====
Creating ../../osx64_clang/obj/x64/Release/shaderc
Creating ../../osx64_clang/obj/x64/Release/shaderc/src
Creating ../../osx64_clang/obj/x64/Release/shaderc/tools/shaderc
shader_spirv.cpp
vertexdecl.cpp
shaderc.cpp
shaderc_glsl.cpp
shaderc_hlsl.cpp
shaderc_pssl.cpp
shaderc_spirv.cpp
In file included from ../../../tools/shaderc/shaderc_spirv.cpp:15:
In file included from ../../../3rdparty/glslang/SPIRV/GlslangToSpv.h:41:
In file included from ../../../3rdparty/glslang/SPIRV/../glslang/Include/intermediate.h:55:
../../../3rdparty/glslang/glslang/Include/../Include/Common.h:41:29: warning: '_MSC_VER' is not defined, evaluates to 0
      [-Wundef]
#if defined(__ANDROID__) || _MSC_VER < 1700
                            ^
1 warning generated.
Linking shaderc
Undefined symbols for architecture x86_64:
  "_glcpp_parser_parse", referenced from:
      _glcpp_preprocess in libglsl-optimizerRelease.a(pp.o)
  "_yylex", referenced from:
      _yyparse in libglsl-optimizerRelease.a(glcpp-parse.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [shaderc.make:269: ../../osx64_clang/bin/shadercRelease] Error 1
make[1]: *** [Makefile:73: shaderc] Error 2
make[1]: Leaving directory '/Users/ross/Documents/Source/bgfx/.build/projects/gmake-osx'
make: *** [makefile:178: osx-release64] Error 2
stephenap07 commented 5 years ago

Ran into this same issue. Doing this fixed it:

cd 3rdparty/glsl-optimizer
./generateParsers.sh
cd -
make osx-release64