Giter Club home page Giter Club logo

bgfx.cmake's People

Contributors

alexandrebeaudet avatar bkaradzic avatar brandonthehamm avatar bwrsandman avatar cykoder avatar dependabot[bot] avatar exdal avatar genuineaster avatar handsomematt avatar hartcw avatar jonnyptn avatar joshuabrookover avatar jsm174 avatar lectem avatar mattparks avatar mean-ui-thread avatar mempler avatar mrniu avatar npnp avatar object71 avatar onqtam avatar pezcode avatar pr0g avatar ravbug avatar samaursa avatar synxis avatar trojanfoe avatar widberg avatar xgalaxy avatar yaz0r avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

bgfx.cmake's Issues

examples-common project is added when BGFX_BUILD_EXAMPLES option is turned off.

When adding bgfx to a new cmake project using the following:

option(BGFX_BUILD_TOOLS "" OFF)
option(BGFX_BUILD_EXAMPLES "" OFF)
option(BGFX_BUILD_TESTS "" OFF)
option(BGFX_INSTALL "" OFF)
option(BGFX_CUSTOM_TARGETS "" OFF)
add_subdirectory("Libraries/bgfx.cmake")

The examples-common project is still added to my solution.

This can be fixed by wrapping add_example( common ... ... ... ) in a if(BGFX_BUILD_EXAMPLES) block in the examples.cmake file.

Building with BGFX_LIBRARY_TYPE=SHARED fails on Windows

Issue

When using CMake to compile bgfx on Windows with -DBGFX_LIBRARY_TYPE=SHARED, linking fails on example-common.lib and texturev and geometryv that use it. Things work correctly on macOS and Linux.

A lot of errors are reported so it's quite hard to make sense of what's causing it precisely, here's a snippet:

[1/2] Linking CXX executable cmake\bgfx\Debug\geometryv.exe
FAILED: cmake/bgfx/Debug/geometryv.exe
C:\Windows\system32\cmd.exe /C "cd . && "C:\Program Files\CMake\bin\cmake.exe" -E vs_link_exe --intdir=cmake\bgfx\CMakeFiles\geometryv.dir\Debug --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\arm64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\arm64\mt.exe --manifests  -- C:\PROGRA~1\MICROS~1\2022\COMMUN~1\VC\Tools\MSVC\1439~1.335\bin\HOSTAR~1\arm64\link.exe /nologo cmake\bgfx\CMakeFiles\geometryv.dir\Debug\__\__\bgfx\tools\geometryv\geometryv.cpp.obj  /out:cmake\bgfx\Debug\geometryv.exe /implib:cmake\bgfx\Debug\geometryv.lib /pdb:cmake\bgfx\Debug\geometryv.pdb /version:0.0 /machine:ARM64 /debug /INCREMENTAL /subsystem:console  cmake\bgfx\Debug\example-common.lib  cmake\bgfx\Debug\bgfx.lib  cmake\bimg\Debug\bimg.lib  cmake\bimg\Debug\bimg_decode.lib  cmake\bx\Debug\bx.lib  psapi.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
LINK Pass 1: command "C:\PROGRA~1\MICROS~1\2022\COMMUN~1\VC\Tools\MSVC\1439~1.335\bin\HOSTAR~1\arm64\link.exe /nologo cmake\bgfx\CMakeFiles\geometryv.dir\Debug\__\__\bgfx\tools\geometryv\geometryv.cpp.obj /out:cmake\bgfx\Debug\geometryv.exe /implib:cmake\bgfx\Debug\geometryv.lib /pdb:cmake\bgfx\Debug\geometryv.pdb /version:0.0 /machine:ARM64 /debug /INCREMENTAL /subsystem:console cmake\bgfx\Debug\example-common.lib cmake\bgfx\Debug\bgfx.lib cmake\bimg\Debug\bimg.lib cmake\bimg\Debug\bimg_decode.lib cmake\bx\Debug\bx.lib psapi.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:cmake\bgfx\CMakeFiles\geometryv.dir\Debug/intermediate.manifest cmake\bgfx\CMakeFiles\geometryv.dir\Debug/manifest.res" failed (exit code 1120) with the following output:
geometryv.cpp.obj : error LNK2019: unresolved external symbol "public: __cdecl bgfx::Init::Init(void)" (??0Init@bgfx@@QEAA@XZ) referenced in function _main_
geometryv.cpp.obj : error LNK2019: unresolved external symbol "bool __cdecl bgfx::init(struct bgfx::Init const &)" (?init@bgfx@@YA_NAEBUInit@1@@Z) referenced in function _main_
geometryv.cpp.obj : error LNK2019: unresolved external symbol "void __cdecl bgfx::shutdown(void)" (?shutdown@bgfx@@YAXXZ) referenced in function _main_
geometryv.cpp.obj : error LNK2019: unresolved external symbol "unsigned int __cdecl bgfx::frame(bool)" (?frame@bgfx@@YAI_N@Z) referenced in function _main_
example-common.lib(entry.cpp.obj) : error LNK2001: unresolved external symbol "unsigned int __cdecl bgfx::frame(bool)" (?frame@bgfx@@YAI_N@Z)
geometryv.cpp.obj : error LNK2019: unresolved external symbol "struct bgfx::Caps const * __cdecl bgfx::getCaps(void)" (?getCaps@bgfx@@YAPEBUCaps@1@XZ) referenced in function _main_
example-common.lib(imgui.cpp.obj) : error LNK2001: unresolved external symbol "struct bgfx::Caps const * __cdecl bgfx::getCaps(void)" (?getCaps@bgfx@@YAPEBUCaps@1@XZ)
geometryv.cpp.obj : error LNK2019: unresolved external symbol "void __cdecl bgfx::dbgTextClear(unsigned char,bool)" (?dbgTextClear@bgfx@@YAXE_N@Z) referenced in function _main_
geometryv.cpp.obj : error LNK2019: unresolved external symbol "struct bgfx::ProgramHandle __cdecl bgfx::createProgram(struct bgfx::ShaderHandle,struct bgfx::ShaderHandle,bool)" (?createProgram@bgfx@@YA?AUProgramHandle@1@UShaderHandle@1@0_N@Z) referenced in function _main_
example-common.lib(imgui.cpp.obj) : error LNK2001: unresolved external symbol "struct bgfx::ProgramHandle __cdecl bgfx::createProgram(struct bgfx::ShaderHandle,struct bgfx::ShaderHandle,bool)" (?createProgram@bgfx@@YA?AUProgramHandle@1@UShaderHandle@1@0_N@Z)
example-common.lib(debugdraw.cpp.obj) : error LNK2001: unresolved external symbol "struct bgfx::ProgramHandle __cdecl bgfx::createProgram(struct bgfx::ShaderHandle,struct bgfx::ShaderHandle,bool)" (?createProgram@bgfx@@YA?AUProgramHandle@1@UShaderHandle@1@0_N@Z)
example-common.lib(bgfx_utils.cpp.obj) : error LNK2001: unresolved external symbol "struct bgfx::ProgramHandle __cdecl bgfx::createProgram(struct bgfx::ShaderHandle,struct bgfx::ShaderHandle,bool)" (?createProgram@bgfx@@YA?AUProgramHandle@1@UShaderHandle@1@0_N@Z)
geometryv.cpp.obj : error LNK2019: unresolved external symbol "void __cdecl bgfx::destroy(struct bgfx::ProgramHandle)" (?destroy@bgfx@@YAXUProgramHandle@1@@Z) referenced in function _main_
example-common.lib(imgui.cpp.obj) : error LNK2001: unresolved external symbol "void __cdecl bgfx::destroy(struct bgfx::ProgramHandle)" (?destroy@bgfx@@YAXUProgramHandle@1@@Z)
example-common.lib(debugdraw.cpp.obj) : error LNK2001: unresolved external symbol "void __cdecl bgfx::destroy(struct bgfx::ProgramHandle)" (?destroy@bgfx@@YAXUProgramHandle@1@@Z)
geometryv.cpp.obj : error LNK2019: unresolved external symbol "void __cdecl bgfx::setViewRect(unsigned short,unsigned short,unsigned short,unsigned short,unsigned short)" (?setViewRect@bgfx@@YAXGGGGG@Z) referenced in function _main_
example-common.lib(imgui.cpp.obj) : error LNK2001: unresolved external symbol "void __cdecl bgfx::setViewRect(unsigned short,unsigned short,unsigned short,unsigned short,unsigned short)" (?setViewRect@bgfx@@YAXGGGGG@Z)
geometryv.cpp.obj : error LNK2019: unresolved external symbol "void __cdecl bgfx::setViewClear(unsigned short,unsigned short,unsigned int,float,unsigned char)" (?setViewClear@bgfx@@YAXGGIME@Z) referenced in function _main_
geometryv.cpp.obj : error LNK2019: unresolved external symbol "void __cdecl bgfx::setViewTransform(unsigned short,void const *,void const *)" (?setViewTransform@bgfx@@YAXGPEBX0@Z) referenced in function _main_
example-common.lib(imgui.cpp.obj) : error LNK2001: unresolved external symbol "void __cdecl bgfx::setViewTransform(unsigned short,void const *,void const *)" (?setViewTransform@bgfx@@YAXGPEBX0@Z)
geometryv.cpp.obj : error LNK2019: unresolved external symbol "unsigned int __cdecl bgfx::setTransform(void const *,unsigned short)" (?setTransform@bgfx@@YAIPEBXG@Z) referenced in function _main_
example-common.lib(bgfx_utils.cpp.obj) : error LNK2001: unresolved external symbol "unsigned int __cdecl bgfx::setTransform(void const *,unsigned short)" (?setTransform@bgfx@@YAIPEBXG@Z)
geometryv.cpp.obj : error LNK2019: unresolved external symbol "void __cdecl bgfx::touch(unsigned short)" (?touch@bgfx@@YAXG@Z) referenced in function _main_
geometryv.cpp.obj : error LNK2019: unresolved external symbol "struct bgfx::ShaderHandle __cdecl bgfx::createEmbeddedShader(struct bgfx::EmbeddedShader const *,enum bgfx::RendererType::Enum,char const *)" (?createEmbeddedShader@bgfx@@YA?AUShaderHandle@1@PEBUEmbeddedShader@1@W4Enum@RendererType@1@PEBD@Z) referenced in function _main_
example-common.lib(imgui.cpp.obj) : error LNK2001: unresolved external symbol "struct bgfx::ShaderHandle __cdecl bgfx::createEmbeddedShader(struct bgfx::EmbeddedShader const *,enum bgfx::RendererType::Enum,char const *)" (?createEmbeddedShader@bgfx@@YA?AUShaderHandle@1@PEBUEmbeddedShader@1@W4Enum@RendererType@1@PEBD@Z)
example-common.lib(debugdraw.cpp.obj) : error LNK2001: unresolved external symbol "struct bgfx::ShaderHandle __cdecl bgfx::createEmbeddedShader(struct bgfx::EmbeddedShader const *,enum bgfx::RendererType::Enum,char const *)" (?createEmbeddedShader@bgfx@@YA?AUShaderHandle@1@PEBUEmbeddedShader@1@W4Enum@RendererType@1@PEBD@Z)
example-common.lib(entry.cpp.obj) : error LNK2019: unresolved external symbol "void __cdecl bgfx::reset(unsigned int,unsigned int,unsigned int,enum bgfx::TextureFormat::Enum)" (?reset@bgfx@@YAXIIIW4Enum@TextureFormat@1@@Z) referenced in function "bool __cdecl entry::processEvents(unsigned int &,unsigned int &,unsigned int &,unsigned int &,struct entry::MouseState *)" (?processEvents@entry@@YA_NAEAI000PEAUMouseState@1@@Z)
example-common.lib(entry.cpp.obj) : error LNK2019: unresolved external symbol "void __cdecl bgfx::setDebug(unsigned int)" (?setDebug@bgfx@@YAXI@Z) referenced in function "int __cdecl entry::cmdGraphics(struct CmdContext *,void *,int,char const * const *)" (?cmdGraphics@entry@@YAHPEAUCmdContext@@PEAXHPEBQEBD@Z)
example-common.lib(entry.cpp.obj) : error LNK2019: unresolved external symbol "void __cdecl bgfx::requestScreenShot(struct bgfx::FrameBufferHandle,char const *)" (?requestScreenShot@bgfx@@YAXUFrameBufferHandle@1@PEBD@Z) referenced in function "int __cdecl entry::cmdGraphics(struct CmdContext *,void *,int,char const * const *)" (?cmdGraphics@entry@@YAHPEAUCmdContext@@PEAXHPEBQEBD@Z)
example-common.lib(entry_windows.cpp.obj) : error LNK2019: unresolved external symbol "enum bgfx::RenderFrame::Enum __cdecl bgfx::renderFrame(int)" (?renderFrame@bgfx@@YA?AW4Enum@RenderFrame@1@H@Z) referenced in function "public: int __cdecl entry::Context::run(int,char const * const *)" (?run@Context@entry@@QEAAHHPEBQEBD@Z)
example-common.lib(imgui.cpp.obj) : error LNK2019: unresolved external symbol "public: void __cdecl bgfx::Encoder::setState(unsigned __int64,unsigned int)" (?setState@Encoder@bgfx@@QEAAX_KI@Z) referenced in function "public: void __cdecl OcornutImguiContext::render(struct ImDrawData *)" (?render@OcornutImguiContext@@QEAAXPEAUImDrawData@@@Z)
example-common.lib(debugdraw.cpp.obj) : error LNK2001: unresolved external symbol "public: void __cdecl bgfx::Encoder::setState(unsigned __int64,unsigned int)" (?setState@Encoder@bgfx@@QEAAX_KI@Z)
...

Seems related to function(add_example ARG_NAME) most likely (in examples.cmake)

Repro

Clone the repo and its submodules, then run the below commands and see the error output

cmake -B build -G "Ninja Multi-Config" -DBGFX_LIBRARY_TYPE=SHARED
cmake --build build

I might be doing something stupid so please let me know if there's some other flag I need to pass or setting to change to get things to work.

Thanks!

Is it possible to define WL_EGL_PLATFORM through bgfx.cmake?

Hello !

Is it possible to define WL_EGL_PLATFORM through bgfx.cmake?

I tried looking at the source, yet I can't find any reference to this define.
Maybe I missed a way to set it directly?

If it's currently not possible it makes using bgfx.cmake on linux a little complicated.
I'm also not an expert at cmake so I may be approaching this the wrong way.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.