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
14.86k stars 1.93k forks source link

How to build the asm.js (Web) project? #1521

Closed ArionTT closed 5 years ago

ArionTT commented 5 years ago

there is nothing about to build the version on the platform except windows linux mac and Android. But the Readme said :

Supported platforms:
Android (14+, ARM, x86, MIPS)
asm.js/Emscripten (1.25.0)
FreeBSD
iOS (iPhone, iPad, AppleTV)
Linux
MIPS Creator CI20
OSX (10.12+)
RaspberryPi
SteamLink
Windows (XP, Vista, 7, 8, 10)
UWP (Universal Windows, Xbox One)

How to build to other platforms the bgfx supported?

bkaradzic commented 5 years ago

You have all info you need inside build scripts/tools...

If you type make:

$ make
Available targets:
clean                          Clean all intermediate files.
projgen                        Generate project files for all configurations.
android-arm-debug              Build - Android ARM Debug
android-arm-release            Build - Android ARM Release
android-arm                    Build - Android ARM Debug and Release
android-mips-debug             Build - Android MIPS Debug
android-mips-release           Build - Android MIPS Release
android-mips                   Build - Android MIPS Debug and Release
android-x86-debug              Build - Android x86 Debug and Release
android-x86-release            Build - Android x86 Debug and Release
android-x86                    Build - Android x86 Debug and Release
asmjs-debug                    Build - Emscripten Debug
asmjs-release                  Build - Emscripten Release
asmjs                          Build - Emscripten Debug and Release
linux-debug64                  Build - Linux x64 Debug
linux-release64                Build - Linux x64 Release
linux                          Build - Linux x86/x64 Debug and Release
freebsd-debug32                Build - FreeBSD x86 Debug
freebsd-release32              Build - FreeBSD x86 Release
freebsd-debug64                Build - FreeBSD x86 Debug
freebsd-release64              Build - FreeBSD x86 Release
freebsd                        Build - FreeBSD x86/x64 Debug and Release
mingw-gcc-debug32              Build - MinGW GCC x86 Debug
mingw-gcc-release32            Build - MinGW GCC x86 Release
mingw-gcc-debug64              Build - MinGW GCC x64 Debug
mingw-gcc-release64            Build - MinGW GCC x64 Release
mingw-gcc                      Build - MinGW GCC x86/x64 Debug and Release
mingw-clang-debug32            Build - MinGW Clang x86 Debug
mingw-clang-release32          Build - MinGW Clang x86 Release
mingw-clang-debug64            Build - MinGW Clang x64 Debug
mingw-clang-release64          Build - MinGW Clang x64 Release
mingw-clang                    Build - MinGW Clang x86/x64 Debug and Release
vs2015-debug32                 Build - VS2015 x86 Debug
vs2015-release32               Build - VS2015 x86 Release
vs2015-debug64                 Build - VS2015 x64 Debug
vs2015-release64               Build - VS2015 x64 Release
vs2015                         Build - VS2015 x86/x64 Debug and Release
vs2017-debug32                 Build - vs2017 x86 Debug
vs2017-release32               Build - vs2017 x86 Release
vs2017-debug64                 Build - vs2017 x64 Debug
vs2017-release64               Build - vs2017 x64 Release
vs2017                         Build - vs2017 x86/x64 Debug and Release
vs2017-winstore100-debug32     Build - vs2017-winstore100 x86 Debug
vs2017-winstore100-release32   Build - vs2017-winstore100 x86 Release
vs2017-winstore100-debug64     Build - vs2017-winstore100 x64 Debug
vs2017-winstore100-release64   Build - vs2017-winstore100 x64 Release
vs2017-winstore100             Build - vs2017-winstore100 x86/x64 Debug and Release
osx-debug64                    Build - OSX x64 Debug
osx-release64                  Build - OSX x64 Release
osx                            Build - OSX x86/x64 Debug and Release
ios-arm-debug                  Build - iOS ARM Debug
ios-arm-release                Build - iOS ARM Release
ios-arm                        Build - iOS ARM Debug and Release
ios-arm64-debug                Build - iOS ARM64 Debug
ios-arm64-release              Build - iOS ARM64 Release
ios-arm64                      Build - iOS ARM64 Debug and Release
ios-simulator-debug            Build - iOS Simulator Debug
ios-simulator-release          Build - iOS Simulator Release
ios-simulator                  Build - iOS Simulator Debug and Release
ios-simulator64-debug          Build - iOS Simulator Debug
ios-simulator64-release        Build - iOS Simulator Release
ios-simulator64                Build - iOS Simulator Debug and Release
rpi-debug                      Build - RasberryPi Debug
rpi-release                    Build - RasberryPi Release
rpi                            Build - RasberryPi Debug and Release
geometryc                      Build geometryc tool.
shaderc                        Build shaderc tool.
texturec                       Build texturec tool.
texturev                       Build texturev tool.
tools                          Build tools.
clean-tools                    Clean tools projects.

If you type genie:

$ genie
GENie - Project generator tool version 976 (commit 89bce2119e58c450fd57892fe16e0b66975ed28d)
https://github.com/bkaradzic/GENie

Usage: genie [options] action [arguments]

OPTIONS

 --cc=VALUE        Choose a C/C++ compiler set; one of:
     gcc            GNU GCC (gcc/g++)
     ow             OpenWatcom
     ghs            Green Hills Software

 --debug-profiler  GENie script generation profiler.

 --dotnet=VALUE    Choose a .NET compiler set; one of:
     msnet          Microsoft .NET (csc)
     mono           Novell Mono (mcs)
     pnet           Portable.NET (cscc)

 --file=FILE       Read FILE as a Premake script; default is 'premake4.lua'

 --gcc=GCC         Choose GCC flavor; one of:
     android-arm    Android - ARM
     android-mips   Android - MIPS
     android-x86    Android - x86
     asmjs          Emscripten/asm.js
     freebsd        FreeBSD
     linux-gcc      Linux (GCC compiler)
     linux-gcc-afl  Linux (GCC + AFL fuzzer)
     linux-gcc-6    Linux (GCC-6 compiler)
     linux-clang    Linux (Clang compiler)
     linux-clang-afl Linux (Clang + AFL fuzzer)
     linux-mips-gcc Linux (MIPS, GCC compiler)
     linux-arm-gcc  Linux (ARM, GCC compiler)
     ios-arm        iOS - ARM
     ios-arm64      iOS - ARM64
     ios-simulator  iOS - Simulator
     ios-simulator64 iOS - Simulator 64
     tvos-arm64     tvOS - ARM64
     tvos-simulator tvOS - Simulator
     mingw-gcc      MinGW
     mingw-clang    MinGW (clang compiler)
     netbsd         NetBSD
     osx            OSX
     orbis          Orbis
     riscv          RISC-V
     rpi            RaspberryPi

 --help            Display this information

 --os=VALUE        Generate files for a different operating system; one of:
     bsd            OpenBSD, NetBSD, or FreeBSD
     linux          Linux
     macosx         Apple Mac OS X
     solaris        Solaris
     windows        Microsoft Windows

 --platform=VALUE  Add target architecture (if supported by action); one of:
     x32            32-bit
     x64            64-bit
     universal      Mac OS X Universal, 32- and 64-bit
     universal32    Mac OS X Universal, 32-bit only
     universal64    Mac OS X Universal, 64-bit only
     ps3            Playstation 3
     orbis          Playstation 4
     xbox360        Xbox 360
     durango        Xbox One
     ARM            ARM
     PowerPC        PowerPC

 --scripts=path    Search for additional scripts on the given path

 --version         Display version information

 --vs=toolset      Choose VS toolset; one of:
     vs2012-clang   Clang 3.6
     vs2013-clang   Clang 3.6
     vs2015-clang   Clang 3.9
     vs2017-clang   Clang with MS CodeGen
     vs2012-xp      Visual Studio 2012 targeting XP
     vs2013-xp      Visual Studio 2013 targeting XP
     vs2015-xp      Visual Studio 2015 targeting XP
     vs2017-xp      Visual Studio 2017 targeting XP
     winstore100    Universal Windows App 10.0
     durango        Durango
     orbis          Orbis

 --with-32bit-compiler Use 32-bit compiler instead 64-bit.

 --with-amalgamated Enable amalgamated build.

 --with-android=#  Set Android platform version (default: android-14).

 --with-avx        Use AVX extension.

 --with-combined-examples Enable building examples (combined as single executable).

 --with-dynamic-runtime Dynamically link with the runtime rather than statically

 --with-examples   Enable building examples.

 --with-glfw       Enable GLFW entry.

 --with-ios=#      Set iOS target version (default: 8.0).

 --with-macos=#    Set macOS target version (default 10.11).

 --with-profiler   Enable build with intrusive profiler.

 --with-scintilla  Enable building with Scintilla editor.

 --with-sdl        Enable SDL entry.

 --with-shared-lib Enable building shared library.

 --with-tools      Enable building tools.

 --with-tvos=#     Set tvOS target version (default: 9.0).

 --with-windows=#  Set the Windows target platform version (default: $WindowsSDKVersion or 8.1).

 --xcode=xcode_target Choose XCode target; one of:
     osx            OSX
     ios            iOS
     tvos           tvOS

ACTIONS

 cmake             Generate CMake project files
 gmake             Generate GNU makefiles for POSIX, MinGW, and Cygwin
 ninja             Generate Ninja build files
 qbs               Generate QBS build files
 vs2010            Generate Microsoft Visual Studio 2010 project files
 vs2012            Generate Microsoft Visual Studio 2012 project files
 vs2013            Generate Microsoft Visual Studio 2013 project files
 vs2015            Generate Microsoft Visual Studio 2015 project files
 vs2015-fastbuild  Generate FASTBuild configuration files for Visual Studio 2015.
 vs2017            Generate Microsoft Visual Studio 2017 project files
 xcode10           Generate Apple Xcode 10 project files (experimental)
 xcode8            Generate Apple Xcode 8 project files
 xcode9            Generate Apple Xcode 9 project files

For additional information, see https://github.com/bkaradzic/genie