Giter VIP home page Giter VIP logo

openrct2-dependencies-android's Introduction

OpenRCT2 logo

OpenRCT2

An open-source re-implementation of RollerCoaster Tycoon 2, a construction and management simulation video game that simulates amusement park management.


OpenRCT2.org Group Park 5


Download

Latest release Latest development build
OpenRCT2.org OpenRCT2.org

Chat

Chat takes place on Discord. You will need to create a Discord account if you don't yet have one.

If you want to help make the game, join the developer channel.

If you need help, want to talk to the developers, or just want to stay up to date then join the non-developer channel for your language.

If you want to help translate the game to your language, please stop by the Localisation channel.

Language Non Developer Developer Localisation Asset Replacement
English Discord
Discord
Discord Discord Discord
Discord
Nederlands Discord

Contents


1. Introduction

OpenRCT2 is an open-source re-implementation of RollerCoaster Tycoon 2 (RCT2). The gameplay revolves around building and maintaining an amusement park containing attractions, shops and facilities. The player must try to make a profit and maintain a good park reputation whilst keeping the guests happy. OpenRCT2 allows for both scenario and sandbox play. Scenarios require the player to complete a certain objective in a set time limit whilst sandbox allows the player to build a more flexible park with optionally no restrictions or finance.

RollerCoaster Tycoon 2 was originally written by Chris Sawyer in x86 assembly and is the sequel to RollerCoaster Tycoon. The engine was based on Transport Tycoon, an older game which also has an equivalent open-source project, OpenTTD. OpenRCT2 attempts to provide everything from RCT2 as well as many improvements and additional features, some of these include support for modern platforms, an improved interface, improved guest and staff AI, more editing tools, increased limits, and cooperative multiplayer. It also re-introduces mechanics from RollerCoaster Tycoon that were not present in RollerCoaster Tycoon 2. Some of those include; mountain tool in-game, the "have fun" objective, launched coasters (not passing-through the station) and several buttons on the toolbar.


2. Downloading the game (pre-built)

OpenRCT2 requires original files of RollerCoaster Tycoon 2 to play. It can be bought at either Steam or GOG.com. If you have the original RollerCoaster Tycoon and its expansion packs, you can point OpenRCT2 to these in order to play the original scenarios.

OpenRCT2.org offers precompiled builds and installers of the latest master and the develop branch. There is also a Launcher available for Windows and Linux that will automatically update your build of the game so that you always have the latest version.

Flathub offers flatpaks for Linux distributions that support this application distribution system:

Some Linux distributions offer native packages already. These packages are usually third-party, but we're trying to resolve issues they are facing.

Some *BSD operating systems offer native packages. These packages are usually third-party, but we're trying to resolve issues they are facing.


3. Building the game

3.1 Building prerequisites

OpenRCT2 requires original files of RollerCoaster Tycoon 2 to play. It can be bought at either Steam or GOG.com.

Windows prerequisites
  • Visual Studio 2022 (Enterprise / Professional / Community (Free))
    • Desktop development with C++
  • MSYS2 MinGW Toolchain. The toolchains with supported dependencies are mingw-x86_64, mingw-xi686, ucrt-x86_64, clang-x86_64, and clang-xi686, each of these require the $MINGW_PACKAGE_PREFIX and msys and clangarm-64 are lacking packages for some dependencies
    • sdl2 (only for UI client)
    • freetype (can be disabled)
    • fontconfig (can be disabled)
    • libzip (>= 1.0)
    • libpng (>= 1.2)
    • speexdsp (only for UI client)
    • curl (only if building with http support)
    • nlohmann-json (>= 3.6.0)
    • openssl (>= 1.0; only if building with multiplayer support)
    • icu (>= 59.0)
    • zlib
    • gl (commonly provided by Mesa or GPU vendors; only for UI client, can be disabled)
    • cmake
    • benchmark (optional)
    • innoextract (optional runtime dependency; used for GOG installer extraction during setup)
    • libogg
    • libvorbis
    • flac

See the wiki for the actual package names used in pacman.

macOS prerequisites
  • Xcode Command Line Tools
  • Homebrew
  • CMake (available through Homebrew)
Linux prerequisites
  • gcc (>= 8.0) or clang (>= 10.0) (for C++20 support)
  • sdl2 (only for UI client)
  • freetype (can be disabled)
  • fontconfig (can be disabled)
  • libzip (>= 1.0)
  • libpng (>= 1.2)
  • speexdsp (only for UI client)
  • curl (only if building with http support)
  • nlohmann-json (>= 3.6.0)
  • openssl (>= 1.0; only if building with multiplayer support)
  • icu (>= 59.0)
  • zlib
  • gl (commonly provided by Mesa or GPU vendors; only for UI client, can be disabled)
  • cmake
  • innoextract (optional runtime dependency; used for GOG installer extraction during setup)

Refer to https://github.com/OpenRCT2/OpenRCT2/wiki/Building-OpenRCT2-on-Linux#required-packages-general for more information about installing the packages.


3.2 Compiling and running

Windows:

Show instructions
  1. Check out the repository, this can be done using GitHub Desktop or other tools

  2. Open a new Developer Command Prompt for VS 2022

  3. Navigate to the repository (e.g. cd C:\GitHub\OpenRCT2)

  4. To build the x64 version, use msbuild openrct2.proj /t:build /p:platform=x64 To build the x86 version, use msbuild openrct2.proj /t:build /p:platform=Win32 To build the Arm64 version, use msbuild openrct2.proj /t:build /p:platform=arm64

    Note: The file g2.dat may not be generated on cross-compilation (e.g. building for Arm64 on a x64 machine). In this case g2.dat must be copied from a x86/x64 build.

  5. Run the game, bin\openrct2

Once you have ran msbuild once, further development can be done within Visual Studio by opening openrct2.sln. Make sure to select the correct target platform for which you ran the build in point #3 (Win32 for the x86 version, x64 for the x64 version, arm64 for the Arm64 version), otherwise the build will fail in Visual Studio.

Other examples:

set platform=x64
msbuild openrct2.proj /t:clean
msbuild openrct2.proj /t:rebuild /p:configuration=release
msbuild openrct2.proj /t:g2
msbuild openrct2.proj /t:PublishPortable

macOS:

Show instructions

CMake can build either a self-contained application bundle, which includes all the necessary game files and dependencies, or it can build a command line version that links against system installed dependencies. CMake will retrieve the dependencies from Dependencies automatically. You can build the macOS app using CMake using the following commands:

cmake -S . -B build
cmake --build build --target install

Then you can run the game by opening OpenRCT2.app

To build the command line version, you'll need to disable the macOS app bundle:


cmake -S . -B build -DMACOS_BUNDLE=off
cmake --build build
cmake --build build --target install
ln -s ../data data

Then you can run the game by running ./openrct2.

To link against system dependencies instead of letting CMake download the dependencies from Dependencies, add -DMACOS_USE_DEPENDENCIES=off to your cmake args.

Detailed instructions can be found on Building OpenRCT2 on macOS using CMake.

Linux:

Show instructions

The standard CMake build procedure is to install the required libraries, then:

cmake -S . -B build -DCMAKE_INSTALL_PREFIX=. # set your standard cmake options, e.g. build type here - For example, -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build # you can parallelise your build job with e.g. -j 8 or consider using ninja
cmake --build build --target install # the install target creates all the necessary files in places we expect them

You can also use Ninja in place of Make using -G Ninja in the first command, if you prefer, see Wiki for details.

Detailed instructions can be found on Building OpenRCT2 on Linux.

Note: the cmake -S . -B build syntax is available for CMake >= 3.14. For older versions use:

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=. # set your standard cmake options, e.g. build type here - For example, -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build . --target install

4. Contributing

OpenRCT2 uses the gitflow workflow. If you are implementing a new feature or logic from the original game, please branch off and perform pull requests to develop. If you are fixing a bug for the next release, please branch off and perform pull requests to the correct release branch. master only contains tagged releases, you should never branch off this.

Please read our contributing guidelines for information.

4.1 Bug fixes

A list of bugs can be found on the issue tracker. Feel free to work on any bug and submit a pull request to the develop branch with the fix. Mentioning that you intend to fix a bug on the issue will prevent other people from trying as well.

4.2 New features

Please talk to the OpenRCT2 team first before starting to develop a new feature. We may already have plans for or reasons against something that you'd like to work on. Therefore contacting us will allow us to help you or prevent you from wasting any time. You can talk to us via Discord, see links at the top of this page.

4.3 Translation

You can translate the game into other languages by editing the language files in data/language directory. Please join discussions in the #localisation channel on Discord and submit pull requests to OpenRCT2/Localisation.

4.4 Graphics

You can help create new graphics for the game by visiting the OpenGraphics project. 3D modellers needed!

4.5 Audio

You can help create the music and sound effects for the game. Check out the OpenMusic repository and drop by our #open-sound-and-music channel on Discord to find out more.

4.6 Scenarios

We would also like to distribute additional scenarios with the game, when the time comes. For that, we need talented scenario makers! Check out the OpenScenarios repository.


5. Licence

OpenRCT2 is licensed under the GNU General Public License version 3.


6. More information

Similar Projects

OpenLoco OpenTTD openage OpenRA
icon_x128
Chris Sawyer's Locomotion Transport Tycoon Deluxe Age of Empires 2 Red Alert

7. Sponsors

Companies that kindly allow us to use their stuff:

DigitalOcean JetBrains Backtrace
do_logo_vertical_blue svg jetbrains backtrace
Hosting of various services CLion and other products Minidump uploads and inspection

openrct2-dependencies-android's People

Contributors

janisozaur avatar marijnvdwerf avatar

Stargazers

 avatar  avatar  avatar

Watchers

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

openrct2-dependencies-android's Issues

Add boringssl

This adds boringssl to all architectures.

I couldn't rebuild all the libraries, it failed on my system, so libpng and sdl2 are still outdated.

With this and OpenRCT2/OpenRCT2#6760 I could connect to a multiplayer server:
screenshot_20171202-221121

I had to manually copy the key from my desktop, as OpenRCT2 crashed with the one generated on device, as it had 0 bytes.

It crashed on this line:

https://github.com/OpenRCT2/OpenRCT2/blob/33d0fa9b8c506c6d56777df940fbb2228268d9aa/src/openrct2/network/NetworkKey.cpp#L315

The stack trace was:

/home/janisozaur/workspace/OpenRCT2/src/openrct2/network/Network.cpp: Connecting to 65.29.70.58:11753
/home/janisozaur/workspace/OpenRCT2/src/openrct2/network/NetworkKey.cpp: Failed to set keygen params
/home/janisozaur/workspace/OpenRCT2/src/openrct2/network/NetworkKey.cpp: No key loaded
/home/janisozaur/workspace/OpenRCT2/src/openrct2/network/NetworkKey.cpp: No key loaded
Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 19538 (SDLThread)
debuggerd: handling request: pid=18948 uid=10174 gid=10174 tid=19538
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'OnePlus/OnePlus5/OnePlus5:7.1.1/NMF26X/10171617:user/release-keys'
Revision: '0'
ABI: 'arm64'
pid: 18948, tid: 19538, name: SDLThread  >>> website.openrct2.debug <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
    x0   0000000000000000  x1   0000000000000000  x2   0000000000000008  x3   0000000000000010
    x4   0000007f598f7c28  x5   000000000000007f  x6   0000000000000001  x7   0000000000000000
    x8   0000007f598f7c40  x9   43554a44a5f68009  x10  0000000000000000  x11  0101010101010101
    x12  0000000000000000  x13  0000000000000000  x14  0000000000000000  x15  00308da3e5ff5107
    x16  0000007f5a8ef148  x17  0000007f7be237a8  x18  000000000000000e  x19  0000007f734290c0
    x20  0000000000000001  x21  0000007f707bc740  x22  0000000000000000  x23  0000007f5ba2424d
    x24  0000000000000004  x25  43554a44a5f68009  x26  0000007f5b2b5a98  x27  0000007f7b890600
    x28  43554a44a5f68009  x29  0000007f598f7700  x30  0000007f5a1380c8
    sp   0000007f598f76f0  pc   0000007f7be237b8  pstate 0000000040000000

backtrace:
    #00 pc 000000000001b7b8  /system/lib64/libc.so (strlen+16)
    #01 pc 00000000001cb0c4  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so (_ZNSt6__ndk111char_traitsIcE6lengthEPKc+20)
    #02 pc 00000000002886c0  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so (_ZN10NetworkKey15PublicKeyStringEv+156)
    #03 pc 0000000000288a98  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so (_ZN10NetworkKey13PublicKeyHashEv+56)
    #04 pc 000000000025ae94  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so (_ZN7Network11BeginClientEPKct+744)
    #05 pc 00000000002710c0  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so (network_begin_client+40)
    #06 pc 00000000000a6adc  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2-ui.so
    #07 pc 00000000000a5a00  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2-ui.so
    #08 pc 0000000000148494  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so (window_event_dropdown_call+68)
    #09 pc 000000000012f4e0  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so (input_state_widget_pressed+1052)
    #10 pc 000000000012e94c  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so
    #11 pc 000000000012e3c4  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so (game_handle_input+124)
    #12 pc 0000000000749e40  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so (_ZN11TitleScreen6UpdateEv+260)
    #13 pc 00000000001c804c  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so (_ZN8OpenRCT27Context6UpdateEv+320)
    #14 pc 00000000001c7e1c  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so (_ZN8OpenRCT27Context13RunFixedFrameEv+196)
    #15 pc 00000000001c7c0c  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so (_ZN8OpenRCT27Context8RunFrameEv+108)
    #16 pc 00000000001c7ac0  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so (_ZN8OpenRCT27Context11RunGameLoopEv+76)
    #17 pc 00000000001c7a38  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so (_ZN8OpenRCT27Context6LaunchEv+940)
    #18 pc 00000000001c5af4  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2.so (_ZN8OpenRCT27Context11RunOpenRCT2EiPPKc+44)
    #19 pc 0000000000035194  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2-ui.so (main+224)
    #20 pc 0000000000035238  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2-ui.so (SDL_main+28)
    #21 pc 00000000000cbbf4  /data/app/website.openrct2.debug-2/lib/arm64/libopenrct2-ui.so (Java_org_libsdl_app_SDLActivity_nativeInit+320)
    #22 pc 00000000003f3508  /data/app/website.openrct2.debug-2/oat/arm64/base.odex (offset 0x3b8000)
Frames 1 through 4 of that stack trace resolve respectively:
# 01 ndk-bundle/sources/cxx-stl/llvm-libc++/include/__string:217
# 02 ndk-bundle/sources/cxx-stl/llvm-libc++/include/string:1569
# 03 src/openrct2/network/NetworkKey.cpp:L315
# 04 src/openrct2/network/Network.cpp:L253

The build command:

cmake -DANDROID_ABI=arm64-v8a -DBUILD_SHARED_LIBS=on -DCMAKE_BUILD_TYPE=relwithdebinfo \
      -DCMAKE_ASM_FLAGS="-DBORINGSSL_CLANG_SUPPORTS_DOT_ARCH" \
      -DCMAKE_TOOLCHAIN_FILE=/home/janisozaur/Android/Sdk/ndk-bundle/build/cmake/android.toolchain.cmake \
      -DANDROID_NATIVE_API_LEVEL=16 \
      -GNinja ..

The built libs use google/boringssl@bc37ad9

The binaries in question:
openrct2-libs-android-arm64-v8a.zip
openrct2-libs-android-armeabi-v7a.zip
openrct2-libs-android-x86.zip
openrct2-libs-android-x86_64.zip

SDL2 doesn't compile on x86_64

[1/118] Building C object CMakeFiles/SDL2.dir/src/SDL.c.o
[2/118] Building C object CMakeFiles/SDL2.dir/src/SDL_assert.c.o
[3/118] Building C object CMakeFiles/SDL2.dir/src/SDL_error.c.o
[4/118] Building C object CMakeFiles/SDL2.dir/src/SDL_hints.c.o
[5/118] Building C object CMakeFiles/SDL2.dir/src/SDL_log.c.o
[6/118] Building C object CMakeFiles/SDL2.dir/src/atomic/SDL_atomic.c.o
[7/118] Building C object CMakeFiles/SDL2.dir/src/atomic/SDL_spinlock.c.o
[8/118] Building C object CMakeFiles/SDL2.dir/src/audio/SDL_audio.c.o
[9/118] Building C object CMakeFiles/SDL2.dir/src/audio/SDL_audiocvt.c.o
[10/118] Building C object CMakeFiles/SDL2.dir/src/audio/SDL_audiodev.c.o
[11/118] Building C object CMakeFiles/SDL2.dir/src/audio/SDL_audiotypecvt.c.o
[12/118] Building C object CMakeFiles/SDL2.dir/src/audio/SDL_mixer.c.o
[13/118] Building C object CMakeFiles/SDL2.dir/src/audio/SDL_wave.c.o
[14/118] Building C object CMakeFiles/SDL2.dir/src/cpuinfo/SDL_cpuinfo.c.o
FAILED: /usr/local/opt/android-sdk/ndk-bundle/toolchains/x86_64-4.9/prebuilt/darwin-x86_64/bin/x86_64-linux-android-gcc  --sysroot=/usr/local/opt/android-sdk/ndk-bundle/platforms/android-21/arch-x86_64 -DSDL2_EXPORTS -DUSING_GENERATED_CONFIG_H -Iinclude -I/Users/marijn/deps/build/x86_64/build/sdl/src/sdl_ext/include -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security  -std=c99 -DGL_GLEXT_PROTOTYPES -D_REENTRANT -mfpmath=387 -msse2 -msse -m3dnow -mmmx -Wshadow -fvisibility=hidden -Wdeclaration-after-statement -Werror=declaration-after-statement -Wall  -O2 -DNDEBUG -O2 -DNDEBUG  -fPIC -MD -MT CMakeFiles/SDL2.dir/src/cpuinfo/SDL_cpuinfo.c.o -MF CMakeFiles/SDL2.dir/src/cpuinfo/SDL_cpuinfo.c.o.d -o CMakeFiles/SDL2.dir/src/cpuinfo/SDL_cpuinfo.c.o   -c /Users/marijn/deps/build/x86_64/build/sdl/src/sdl_ext/src/cpuinfo/SDL_cpuinfo.c
/Users/marijn/deps/build/x86_64/build/sdl/src/sdl_ext/src/cpuinfo/SDL_cpuinfo.c: In function 'CPU_OSSavesYMM':
/Users/marijn/deps/build/x86_64/build/sdl/src/sdl_ext/src/cpuinfo/SDL_cpuinfo.c:250:5: warning: implicit declaration of function 'asm' [-Wimplicit-function-declaration]
     asm(".byte 0x0f, 0x01, 0xd0" : "=a" (a) : "c" (0) : "%edx");
     ^
/Users/marijn/deps/build/x86_64/build/sdl/src/sdl_ext/src/cpuinfo/SDL_cpuinfo.c:250:34: error: expected ')' before ':' token
     asm(".byte 0x0f, 0x01, 0xd0" : "=a" (a) : "c" (0) : "%edx");
                                  ^
ninja: build stopped: subcommand failed.

speex doesn't compile on x86_64 and x86

In file included from resample.c:104:0:
resample_neon.h:142:21: error: redefinition of 'inner_product_single'
 static inline float inner_product_single(const float *a, const float *b, unsigned int len)
                     ^
In file included from resample.c:100:0:
resample_sse.h:40:21: note: previous definition of 'inner_product_single' was here
 static inline float inner_product_single(const float *a, const float *b, unsigned int len)
                     ^
make[2]: *** [resample.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
In file included from resample.c:104:0:
resample_neon.h:142:21: error: redefinition of 'inner_product_single'
 static inline float inner_product_single(const float *a, const float *b, unsigned int len)
                     ^
In file included from resample.c:100:0:
resample_sse.h:40:21: note: previous definition of 'inner_product_single' was here
 static inline float inner_product_single(const float *a, const float *b, unsigned int len)
                     ^
make[1]: *** [resample.lo] Error 1
make: *** [install-recursive] Error 1

SDL2 compiles more files than described in Android.mk

  src/SDL.c.o
  src/SDL_assert.c.o
  src/SDL_error.c.o
  src/SDL_hints.c.o
  src/SDL_log.c.o
  src/atomic/SDL_atomic.c.o
  src/atomic/SDL_spinlock.c.o
  src/audio/android/SDL_androidaudio.c.o
  src/audio/dummy/SDL_dummyaudio.c.o
  src/audio/SDL_audio.c.o
  src/audio/SDL_audiocvt.c.o
  src/audio/SDL_audiodev.c.o
  src/audio/SDL_audiotypecvt.c.o
  src/audio/SDL_mixer.c.o
  src/audio/SDL_wave.c.o
  src/core/android/SDL_android.c.o
  src/cpuinfo/SDL_cpuinfo.c.o
  src/dynapi/SDL_dynapi.c.o
  src/events/SDL_clipboardevents.c.o
  src/events/SDL_dropevents.c.o
  src/events/SDL_events.c.o
  src/events/SDL_gesture.c.o
  src/events/SDL_keyboard.c.o
  src/events/SDL_mouse.c.o
  src/events/SDL_quit.c.o
  src/events/SDL_touch.c.o
  src/events/SDL_windowevents.c.o
  src/file/SDL_rwops.c.o
  src/filesystem/android/SDL_sysfilesystem.c.o
  src/haptic/dummy/SDL_syshaptic.c.o
  src/haptic/SDL_haptic.c.o
  src/joystick/android/SDL_sysjoystick.c.o
  src/joystick/SDL_gamecontroller.c.o
  src/joystick/SDL_joystick.c.o
+ src/libm/e_atan2.c.o
+ src/libm/e_log.c.o
+ src/libm/e_pow.c.o
+ src/libm/e_rem_pio2.c.o
+ src/libm/e_sqrt.c.o
+ src/libm/k_cos.c.o
+ src/libm/k_rem_pio2.c.o
+ src/libm/k_sin.c.o
+ src/libm/k_tan.c.o
+ src/libm/s_atan.c.o
+ src/libm/s_copysign.c.o
+ src/libm/s_cos.c.o
+ src/libm/s_fabs.c.o
+ src/libm/s_floor.c.o
+ src/libm/s_scalbn.c.o
+ src/libm/s_sin.c.o
+ src/libm/s_tan.c.o
  src/loadso/dlopen/SDL_sysloadso.c.o
  src/power/android/SDL_syspower.c.o
  src/power/SDL_power.c.o
  src/render/direct3d/SDL_render_d3d.c.o
  src/render/direct3d11/SDL_render_d3d11.c.o
  src/render/opengl/SDL_render_gl.c.o
  src/render/opengl/SDL_shaders_gl.c.o
  src/render/opengles/SDL_render_gles.c.o
  src/render/opengles2/SDL_render_gles2.c.o
  src/render/opengles2/SDL_shaders_gles2.c.o
  src/render/psp/SDL_render_psp.c.o
  src/render/SDL_d3dmath.c.o
  src/render/SDL_render.c.o
  src/render/SDL_yuv_mmx.c.o
  src/render/SDL_yuv_sw.c.o
  src/render/software/SDL_blendfillrect.c.o
  src/render/software/SDL_blendline.c.o
  src/render/software/SDL_blendpoint.c.o
  src/render/software/SDL_drawline.c.o
  src/render/software/SDL_drawpoint.c.o
  src/render/software/SDL_render_sw.c.o
  src/render/software/SDL_rotate.c.o
  src/stdlib/SDL_getenv.c.o
  src/stdlib/SDL_iconv.c.o
  src/stdlib/SDL_malloc.c.o
  src/stdlib/SDL_qsort.c.o
  src/stdlib/SDL_stdlib.c.o
  src/stdlib/SDL_string.c.o
  src/thread/pthread/SDL_syscond.c.o
  src/thread/pthread/SDL_sysmutex.c.o
  src/thread/pthread/SDL_syssem.c.o
  src/thread/pthread/SDL_systhread.c.o
  src/thread/pthread/SDL_systls.c.o
  src/thread/SDL_thread.c.o
  src/timer/SDL_timer.c.o
  src/timer/unix/SDL_systimer.c.o
  src/video/android/SDL_androidclipboard.c.o
  src/video/android/SDL_androidevents.c.o
  src/video/android/SDL_androidgl.c.o
  src/video/android/SDL_androidkeyboard.c.o
  src/video/android/SDL_androidmessagebox.c.o
  src/video/android/SDL_androidmouse.c.o
  src/video/android/SDL_androidtouch.c.o
  src/video/android/SDL_androidvideo.c.o
  src/video/android/SDL_androidwindow.c.o
  src/video/SDL_blit.c.o
  src/video/SDL_blit_0.c.o
  src/video/SDL_blit_1.c.o
  src/video/SDL_blit_A.c.o
  src/video/SDL_blit_auto.c.o
  src/video/SDL_blit_copy.c.o
  src/video/SDL_blit_N.c.o
  src/video/SDL_blit_slow.c.o
  src/video/SDL_bmp.c.o
  src/video/SDL_clipboard.c.o
  src/video/SDL_egl.c.o
  src/video/SDL_fillrect.c.o
  src/video/SDL_pixels.c.o
  src/video/SDL_rect.c.o
  src/video/SDL_RLEaccel.c.o
  src/video/SDL_shape.c.o
  src/video/SDL_stretch.c.o
  src/video/SDL_surface.c.o
  src/video/SDL_video.c.o

libpng on arm64 doesn't compile

[1/33] Building C object CMakeFiles/png-fix-itxt.dir/contrib/tools/png-fix-itxt.c.o
[2/33] Generating scripts/symbols.out
[3/33] Generating pngprefix.h
[4/33] Generating pnglibconf.c
[5/33] Generating scripts/pnglibconf.c
[6/33] Generating pnglibconf.out
[7/33] Generating scripts/symbols.chk
[8/33] Linking C executable png-fix-itxt
[9/33] Generating pnglibconf.h
[10/33] Generating scripts/prefix.out
[11/33] Generating scripts/intprefix.out
[12/33] Generating scripts/sym.out
[13/33] Generating scripts/vers.out
[14/33] Generating libpng.sym
[15/33] Generating libpng.vers
[16/33] Building C object CMakeFiles/png.dir/png.c.o
[17/33] Building C object CMakeFiles/png.dir/pngerror.c.o
[18/33] Building C object CMakeFiles/png.dir/pngget.c.o
[19/33] Building C object CMakeFiles/png.dir/pngmem.c.o
[20/33] Building C object CMakeFiles/png.dir/pngpread.c.o
[21/33] Building C object CMakeFiles/png.dir/pngread.c.o
[22/33] Building C object CMakeFiles/png.dir/pngrio.c.o
[23/33] Building C object CMakeFiles/png.dir/pngrtran.c.o
[24/33] Building C object CMakeFiles/png.dir/pngrutil.c.o
[25/33] Building C object CMakeFiles/png.dir/pngset.c.o
[26/33] Building C object CMakeFiles/png.dir/pngtrans.c.o
[27/33] Building C object CMakeFiles/png.dir/pngwio.c.o
[28/33] Building C object CMakeFiles/png.dir/pngwrite.c.o
[29/33] Building C object CMakeFiles/png.dir/pngwtran.c.o
[30/33] Building C object CMakeFiles/png.dir/pngwutil.c.o
[31/33] Linking C shared library libpng16.so
FAILED: : && /usr/local/opt/android-sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin/aarch64-linux-android-gcc  --sysroot=/usr/local/opt/android-sdk/ndk-bundle/platforms/android-21/arch-arm64 -fPIC -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security  -O2 -DNDEBUG -O2 -DNDEBUG  -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now   -Wl,--version-script='/Users/marijn/deps/build/arm64-v8a/build/png/src/png_ext-build/libpng.vers' -shared -Wl,-soname,libpng16.so -o libpng16.so CMakeFiles/png.dir/png.c.o CMakeFiles/png.dir/pngerror.c.o CMakeFiles/png.dir/pngget.c.o CMakeFiles/png.dir/pngmem.c.o CMakeFiles/png.dir/pngpread.c.o CMakeFiles/png.dir/pngread.c.o CMakeFiles/png.dir/pngrio.c.o CMakeFiles/png.dir/pngrtran.c.o CMakeFiles/png.dir/pngrutil.c.o CMakeFiles/png.dir/pngset.c.o CMakeFiles/png.dir/pngtrans.c.o CMakeFiles/png.dir/pngwio.c.o CMakeFiles/png.dir/pngwrite.c.o CMakeFiles/png.dir/pngwtran.c.o CMakeFiles/png.dir/pngwutil.c.o  -lz -lm -lm && :
CMakeFiles/png.dir/pngrutil.c.o: In function `png_init_filter_functions':
/Users/marijn/deps/build/arm64-v8a/build/png/src/png_ext/pngrutil.c:3982: undefined reference to `png_init_filter_functions_neon'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

SDL2 doesn't compile on mips64 and arm64

[1/118] Building C object CMakeFiles/SDL2.dir/src/SDL.c.o
[2/118] Building C object CMakeFiles/SDL2.dir/src/SDL_assert.c.o
[3/118] Building C object CMakeFiles/SDL2.dir/src/SDL_error.c.o
[4/118] Building C object CMakeFiles/SDL2.dir/src/SDL_hints.c.o
[5/118] Building C object CMakeFiles/SDL2.dir/src/SDL_log.c.o
[6/118] Building C object CMakeFiles/SDL2.dir/src/atomic/SDL_atomic.c.o
FAILED: /usr/local/opt/android-sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/darwin-x86_64/bin/mips64el-linux-android-gcc  --sysroot=/usr/local/opt/android-sdk/ndk-bundle/platforms/android-21/arch-mips64 -DSDL2_EXPORTS -DUSING_GENERATED_CONFIG_H -Iinclude -I/Users/marijn/deps/build/mips64/build/sdl/src/sdl_ext/include -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security  -std=c99 -DGL_GLEXT_PROTOTYPES -D_REENTRANT -mfpmath=387 -Wshadow -fvisibility=hidden -Wdeclaration-after-statement -Werror=declaration-after-statement -Wall  -O2 -DNDEBUG -O2 -DNDEBUG  -fPIC -MD -MT CMakeFiles/SDL2.dir/src/SDL.c.o -MF CMakeFiles/SDL2.dir/src/SDL.c.o.d -o CMakeFiles/SDL2.dir/src/SDL.c.o   -c /Users/marijn/deps/build/mips64/build/sdl/src/sdl_ext/src/SDL.c
mips64el-linux-android-gcc: error: unrecognized command line option '-mfpmath=387'
FAILED: /usr/local/opt/android-sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/darwin-x86_64/bin/mips64el-linux-android-gcc  --sysroot=/usr/local/opt/android-sdk/ndk-bundle/platforms/android-21/arch-mips64 -DSDL2_EXPORTS -DUSING_GENERATED_CONFIG_H -Iinclude -I/Users/marijn/deps/build/mips64/build/sdl/src/sdl_ext/include -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security  -std=c99 -DGL_GLEXT_PROTOTYPES -D_REENTRANT -mfpmath=387 -Wshadow -fvisibility=hidden -Wdeclaration-after-statement -Werror=declaration-after-statement -Wall  -O2 -DNDEBUG -O2 -DNDEBUG  -fPIC -MD -MT CMakeFiles/SDL2.dir/src/SDL_assert.c.o -MF CMakeFiles/SDL2.dir/src/SDL_assert.c.o.d -o CMakeFiles/SDL2.dir/src/SDL_assert.c.o   -c /Users/marijn/deps/build/mips64/build/sdl/src/sdl_ext/src/SDL_assert.c
mips64el-linux-android-gcc: error: unrecognized command line option '-mfpmath=387'
FAILED: /usr/local/opt/android-sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/darwin-x86_64/bin/mips64el-linux-android-gcc  --sysroot=/usr/local/opt/android-sdk/ndk-bundle/platforms/android-21/arch-mips64 -DSDL2_EXPORTS -DUSING_GENERATED_CONFIG_H -Iinclude -I/Users/marijn/deps/build/mips64/build/sdl/src/sdl_ext/include -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security  -std=c99 -DGL_GLEXT_PROTOTYPES -D_REENTRANT -mfpmath=387 -Wshadow -fvisibility=hidden -Wdeclaration-after-statement -Werror=declaration-after-statement -Wall  -O2 -DNDEBUG -O2 -DNDEBUG  -fPIC -MD -MT CMakeFiles/SDL2.dir/src/SDL_error.c.o -MF CMakeFiles/SDL2.dir/src/SDL_error.c.o.d -o CMakeFiles/SDL2.dir/src/SDL_error.c.o   -c /Users/marijn/deps/build/mips64/build/sdl/src/sdl_ext/src/SDL_error.c
mips64el-linux-android-gcc: error: unrecognized command line option '-mfpmath=387'
FAILED: /usr/local/opt/android-sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/darwin-x86_64/bin/mips64el-linux-android-gcc  --sysroot=/usr/local/opt/android-sdk/ndk-bundle/platforms/android-21/arch-mips64 -DSDL2_EXPORTS -DUSING_GENERATED_CONFIG_H -Iinclude -I/Users/marijn/deps/build/mips64/build/sdl/src/sdl_ext/include -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security  -std=c99 -DGL_GLEXT_PROTOTYPES -D_REENTRANT -mfpmath=387 -Wshadow -fvisibility=hidden -Wdeclaration-after-statement -Werror=declaration-after-statement -Wall  -O2 -DNDEBUG -O2 -DNDEBUG  -fPIC -MD -MT CMakeFiles/SDL2.dir/src/SDL_hints.c.o -MF CMakeFiles/SDL2.dir/src/SDL_hints.c.o.d -o CMakeFiles/SDL2.dir/src/SDL_hints.c.o   -c /Users/marijn/deps/build/mips64/build/sdl/src/sdl_ext/src/SDL_hints.c
mips64el-linux-android-gcc: error: unrecognized command line option '-mfpmath=387'
FAILED: /usr/local/opt/android-sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/darwin-x86_64/bin/mips64el-linux-android-gcc  --sysroot=/usr/local/opt/android-sdk/ndk-bundle/platforms/android-21/arch-mips64 -DSDL2_EXPORTS -DUSING_GENERATED_CONFIG_H -Iinclude -I/Users/marijn/deps/build/mips64/build/sdl/src/sdl_ext/include -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security  -std=c99 -DGL_GLEXT_PROTOTYPES -D_REENTRANT -mfpmath=387 -Wshadow -fvisibility=hidden -Wdeclaration-after-statement -Werror=declaration-after-statement -Wall  -O2 -DNDEBUG -O2 -DNDEBUG  -fPIC -MD -MT CMakeFiles/SDL2.dir/src/SDL_log.c.o -MF CMakeFiles/SDL2.dir/src/SDL_log.c.o.d -o CMakeFiles/SDL2.dir/src/SDL_log.c.o   -c /Users/marijn/deps/build/mips64/build/sdl/src/sdl_ext/src/SDL_log.c
mips64el-linux-android-gcc: error: unrecognized command line option '-mfpmath=387'
FAILED: /usr/local/opt/android-sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/darwin-x86_64/bin/mips64el-linux-android-gcc  --sysroot=/usr/local/opt/android-sdk/ndk-bundle/platforms/android-21/arch-mips64 -DSDL2_EXPORTS -DUSING_GENERATED_CONFIG_H -Iinclude -I/Users/marijn/deps/build/mips64/build/sdl/src/sdl_ext/include -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security  -std=c99 -DGL_GLEXT_PROTOTYPES -D_REENTRANT -mfpmath=387 -Wshadow -fvisibility=hidden -Wdeclaration-after-statement -Werror=declaration-after-statement -Wall  -O2 -DNDEBUG -O2 -DNDEBUG  -fPIC -MD -MT CMakeFiles/SDL2.dir/src/atomic/SDL_atomic.c.o -MF CMakeFiles/SDL2.dir/src/atomic/SDL_atomic.c.o.d -o CMakeFiles/SDL2.dir/src/atomic/SDL_atomic.c.o   -c /Users/marijn/deps/build/mips64/build/sdl/src/sdl_ext/src/atomic/SDL_atomic.c
mips64el-linux-android-gcc: error: unrecognized command line option '-mfpmath=387'
ninja: build stopped: subcommand failed.

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.