Coder Social home page Coder Social logo

cocos2d-x-3rd-party-libs-src's Introduction

cocos2d-x 3rd party libs

This repository includes the source code of the 3rd party libraries (binary) that are bundled with cocos2d-x.

This repository is needed for cocos2d-x developers and/or people who want to:

  • generate a updated version of a certain library (eg: upgrade libpng 1.6.2 to 1.6.14)
  • port cocos2d-x to other platforms (eg: port it to Android ARM64, or Tizen, etc)
  • generate DEBUG versions of all the 3rd party library

Note:

  • We use MacOSX to build all the static libraries for iOS, Android, Mac and Tizen.

  • We use Ubuntu to build all the static libraries for Linux.

  • Windows is not supported yet

Other configuration were not tested. Compiling the Android binaries from a Linux or Windows machine were not tested, so we don't know if it works or not.

Download

$ git clone https://github.com/cocos2d/cocos2d-x-3rd-party-libs-src.git

Prerequisite

For Mac users

  • If you want to use these scripts, you should install Git 1.8+, CMake 2.8+, autoconf and libtool. If you are a Homebrew user, you could simply run the following commands to install these tools:
brew update
brew install git
brew install cmake
brew install autoconf
brew install automake
brew install libtool

Note: If you have an old version autoconf installed, you may need uninstall it first, then reinstall the new version. Directly upgrade to new version by brew upgrade command may cause build always failed.

  • If you want to build static libraries for iOS and Mac, you should install the latest version of XCode. You should also install the Command Line Tools bundled with XCode.

  • If you want to build static libraries for Android, you should install NDK. NDK r16 is required at the moment and you should also specify the ANDROID_NDK environment variable in your shell.

  • If you want to build static libraries for Tizen, you should download and install Tizen SDK. And you should also add a environment variable named TIZEN_SDK in your shell.

For Linux(Ubuntu) users

  • If you want to use these scripts, you should instll autoconf:
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install cmake
sudo apt-get install libtool
sudo apt-get install git
  • If you want to build 32-bit libs on a 64-bit linux system, you should install gcc-multilib and g++-multilib
sudo apt-get update
sudo apt-get install gcc-multilib
sudo apt-get install g++-multilib

Then use command as follow to build 32-bit libs

./build.sh -p=platform --libs=libs --arch=i386 --mode=mode

Windows 10 Universal (win10) App users

The build script for Windows 10.0 Universal (win10) external dependencies in in build\build_win10_uwp.bat. The script will build all of the dependencies using a customized version of [vcpkg] (https://github.com/Microsoft/vcpkg). After build_win10_uwp.bat is complete, the external dependencies will be in contrib\install-win10\external.

For Windows (Win32) App users

To build static libraries for Win32 is straightfoward, you could just setup a new static libary project with VisualStudio and import all the needed source files and header files into the project.

Note: Some libraries use configure system to generate the required header files for Windows platform. If you find some header files are missing, please check the README file of the 3rd libs. In general, it will provide a VS project to build the static libs for Windows. Some libs also provide a CMakeLists.txt file, you could use CMake GUI tool to generate a static library project. Don't forgt to Google the error messages when you can't compile the libs successfully.

For Tizen Users

To build static libraries for Tizen, you should install Tizen Studio at first. At the time of writing, the latest version of Tizen Studio is v1.1.0, you could download it from here.

Note: By default, we use Tizen SDK 2.4 to build static libs. If you want to build static libraries with other Tizen SDK version, you should change cfg_default_tizen_sdk_version in tizen.ini file.

After downloading the Tizen Studio, you should also install the native packages with the Tizen Update Manager from the Tools/Package Manager menu in Tizen Studio.

When finished the above setup, you should set a TIZEN_STUDIO_HOME environment variable to your shell configure file. (Normally .bash_profile for bash and .zshrc for zsh).

How to use

We have one build script for each platform, it is under build directory.

The usage would be:

./build.sh -p=platform --libs=libs --arch=arch --mode=mode --list
  • platform: specify a platform. Supported platforms: ios, mac, android, linux and tizen

    libs:

    • use all to build all the 3rd party libraries.
    • use comma separated library names, for example, png,lua,jpeg,webp, no space between the comma to select one or more libs

    arch:

    • use all to build all the supported architectures.
    • for iOS, they are "armv7, arm64, i386, x86_64"
    • for Android, they are "arm,armv7,arm64,x86"
    • for Mac, they are "x86_64"
    • for Tizen, they are "armv7"
    • use comma separated arch name, for example, armv7, arm64, no space between the comma.
  • mode:

    • release: Build library on release mode. This is the default option. We use -O3 -DNDEBUG flags to build release library.
    • debug: Build library on debug mode. we use -O0 -g -DDEBUG flag to build debug library.
  • list:

    • Use these option to list all the supported library names and versions.

Build png on iOS platform

For building libpng fat library with all arch x86_64, i386, armv7, arm64 on release mode:

cd build
./build.sh -p=ios --libs=png

After running this command, it will generate a folder named png:

The folder structure would be:

-png
--include(this folder contains the exported header files)
- prebuilt(this folder contains the fat library)

All the other libraries share the same folder structure.

For building libpng fat library with arch armv7 and arm64 on debug mode:

cd build
./build.sh -p=ios --libs=png --arch=armv7,arm64 --mode=debug

Build for Android arm64

  1. Download Android NDK r10c+ and set the ANDROID_NDK to point to the Android NDK path. Don't forget to source ~/.bash_profile.

  2. Make sure the cfg_default_arm64_build_api is 21+(The default is 21) and cfg_default_gcc_version is 4.9 in android.ini config.

  3. Pass --arch=arm64 to build the libraries with arm64 support.

Note: If you build webp with arm64, you will get cpu-features.h header file not found error. This is a known issue of Android NDK r10c. You could simply create a empty header file named cpu-features.h under {ANDROID_NDK}/platforms/android-21/arch-arm64/usr/include.

Enable bitcode for iOS

On default, when building static libs for TVOS, it will enable bitcode, but iOS doesn't.

You should change cgf_build_bitcode in ios.ini to -fembed-bitcode.

Here is the example code:

cfg_build_bitcode="-fembed-bitcode"

How to build a DEBUG and RELEASE version

You can add flag "--mode=[debug | release]" for building DEBUG and RELEASE version.

How to do build clean?

You could simply turn on the flag cfg_is_cleanup_after_build to "yes" in main.ini file. After each build, you could also delete the generated folders under contrib directory.

How to upgrade a existing library

If you find a 3rd party library has some critical bug fix, you might need to update it. You can following the README file to do this job.

How to add new 3rd party libraries

Please refer to README

cocos2d-x-3rd-party-libs-src's People

Contributors

antidotcb avatar ayuusweetfish avatar cirosantilli avatar elnormous avatar filipe-lemos avatar fusijie avatar giginet avatar hulefei avatar martell avatar minggo avatar patricejiang avatar pyrosphere avatar ricardoquesada avatar rubonnek avatar stammen avatar steerlink avatar stevetranby avatar super626 avatar watson1978 avatar xiaofeng11 avatar zilongshanren 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cocos2d-x-3rd-party-libs-src's Issues

can not compile openssl 1.1.0i for both iOS and android

I tried to edit

  • contrib/src/openssl/rules.mak:
    OPENSSL_VERSION := 1.1.0i
  • contrib/src/openssl/SHA512SUMS to
    4a9d454031f644a3072a980f4ea20df976f6c5c58178549dfa62fd4dcf1417509e3be517d2ccb265c87688836f2993531b142fc5971bac5c41d33060057627df openssl-1.1.0i.tar.gz
    then run:
    ./build.sh -p=ios --libs=openssl --arch=all --mode=release
    It return some error,
    Hunk #1 FAILED at 59. 1 out of 1 hunk FAILED -- saving rejects to file crypto/aes/asm/aesv8-armx.pl.rej patching file crypto/armv4cpuid.pl Hunk #1 FAILED at 27. 1 out of 1 hunk FAILED -- saving rejects to file crypto/armv4cpuid.pl.rej patching file crypto/modes/asm/ghashv8-armx.pl Hunk #1 FAILED at 67. 1 out of 1 hunk FAILED -- saving rejects to file crypto/modes/asm/ghashv8-armx.pl.rej patching file crypto/armcap.c Hunk #1 succeeded at 130 with fuzz 2 (offset 19 lines). patching file crypto/aes/asm/bsaes-armv7.pl Hunk #1 FAILED at 1365. 1 out of 1 hunk FAILED -- saving rejects to file crypto/aes/asm/bsaes-armv7.pl.rej make: *** [openssl] Error 1

try for android:
./build.sh: line 306: /build/tools/make-standalone-toolchain.sh: No such file or directory

please help I need to update openssl

handleTouchesMove error for Android arm64

I have used this project to build 64bit versions of the cocos 3rd party libraries. However, when I then try to build my project with ABI := arm64-v8a on a Mac running Yosemite with NDK r10c, I get the following errors pasted below. These are only present when building for arm64-v8a, armeabi still builds correctly. Any help understanding/fixing these errors would be very helpful.

jni/../../../3rd-party/cocos2d-x/cocos/platform/android/../../platform/CCGLViewProtocol.h:165:18: note: no known conversion for argument 2 from 'jint* {aka int_}' to 'intptr_t_ {aka long int_}'
jni/../../../3rd-party/cocos2d-x/cocos/platform/android/jni/TouchesJni.cpp: In function 'void Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeTouchesMove(JNIEnv_, jobject, jintArray, jfloatArray, jfloatArray)':
jni/../../../3rd-party/cocos2d-x/cocos/platform/android/jni/TouchesJni.cpp:52:92: error: no matching function for call to 'cocos2d::GLView::handleTouchesMove(int&, jint [size], jfloat [size], jfloat [size])'
cocos2d::Director::getInstance()->getOpenGLView()->handleTouchesMove(size, id, x, y);
^
jni/../../../3rd-party/cocos2d-x/cocos/platform/android/jni/TouchesJni.cpp:52:92: note: candidate is:
In file included from jni/../../../3rd-party/cocos2d-x/cocos/platform/android/CCGLView.h:34:0,
from jni/../../../3rd-party/cocos2d-x/cocos/platform/android/jni/TouchesJni.cpp:26:
jni/../../../3rd-party/cocos2d-x/cocos/platform/android/../../platform/CCGLViewProtocol.h:164:18: note: virtual void cocos2d::GLViewProtocol::handleTouchesMove(int, intptr_t_, float_, float_)
virtual void handleTouchesMove(int num, intptr_t ids[], float xs[], float ys[]);
^
jni/../../../3rd-party/cocos2d-x/cocos/platform/android/../../platform/CCGLViewProtocol.h:164:18: note: no known conversion for argument 2 from 'jint [size] {aka int [size]}' to 'intptr_t_ {aka long int_}'
jni/../../../3rd-party/cocos2d-x/cocos/platform/android/jni/TouchesJni.cpp: In function 'void Java_org_cocos2dx_lib_Cocos2dxRenderer_nativeTouchesCancel(JNIEnv_, jobject, jintArray, jfloatArray, jfloatArray)':
jni/../../../3rd-party/cocos2d-x/cocos/platform/android/jni/TouchesJni.cpp:65:94: error: no matching function for call to 'cocos2d::GLView::handleTouchesCancel(int&, jint [size], jfloat [size], jfloat [size])'
cocos2d::Director::getInstance()->getOpenGLView()->handleTouchesCancel(size, id, x, y);
^
jni/../../../3rd-party/cocos2d-x/cocos/platform/android/jni/TouchesJni.cpp:65:94: note: candidate is:
In file included from jni/../../../3rd-party/cocos2d-x/cocos/platform/android/CCGLView.h:34:0,
from jni/../../../3rd-party/cocos2d-x/cocos/platform/android/jni/TouchesJni.cpp:26:
jni/../../../3rd-party/cocos2d-x/cocos/platform/android/../../platform/CCGLViewProtocol.h:166:18: note: virtual void cocos2d::GLViewProtocol::handleTouchesCancel(int, intptr_t_, float_, float_)
virtual void handleTouchesCancel(int num, intptr_t ids[], float xs[], float ys[]);
^
jni/../../../3rd-party/cocos2d-x/cocos/platform/android/../../platform/CCGLViewProtocol.h:166:18: note: no known conversion for argument 2 from 'jint [size] {aka int [size]}' to 'intptr_t_ {aka long int_}'
make: *_* [obj/local/arm64-v8a/objs-debug/cocos2dxandroid_static/jni/TouchesJni.o] Error 1

cannot compile curl on MacOS Mojave

Cloning the latest version and attempting to run
./build.sh -p=mac --libs=curl --arch=x86_64 --mode=release

Results in the error:

connect.c:1087:12: error: 'connectx' is only available on macOS 10.11 or newer
[-Werror,-Wunguarded-availability]

Which seems to be related to a libcurl issue that has since been patched:
curl/curl#2080

I'm not well versed enough in how this build process works but if someone could possibly take a look as to what needs to be changed to use latest libcurl this will likely fix the issue.

Thanks!

It is wrong to compile box2d on Mac.

cd box2d && CXXFLAGS=" -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk -arch armv7 -miphoneos-version-min=6.0 -mcpu=cortex-a8 -I/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/install-ios/armv7/include -O3 -DNDEBUG -std=c++11" CFLAGS=" -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk -arch armv7 -miphoneos-version-min=6.0 -mcpu=cortex-a8 -I/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/install-ios/armv7/include -O3 -DNDEBUG " cmake . -DCMAKE_TOOLCHAIN_FILE=/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/toolchain.cmake -DCMAKE_INSTALL_PREFIX=/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/install-ios/armv7
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d
cd box2d && /Applications/Xcode.app/Contents/Developer/usr/bin/make
[ 2%] Building CXX object CMakeFiles/box2d.dir/Box2D/Box2D/Collision/Shapes/b2ChainShape.cpp.o
In file included from /Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2ChainShape.cpp:19:
/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2ChainShape.h:62:52: warning:
'override' keyword is a C++11 extension [-Wc++11-extensions]
b2Shape* Clone(b2BlockAllocator* allocator) const override;
^
/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2ChainShape.h:65:30: warning:
'override' keyword is a C++11 extension [-Wc++11-extensions]
int32 GetChildCount() const override;
^
/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2ChainShape.h:72:70: warning:
'override' keyword is a C++11 extension [-Wc++11-extensions]
bool TestPoint(const b2Transform& transform, const b2Vec2& p) const override;
^
/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2ChainShape.h:76:60: warning:
'override' keyword is a C++11 extension [-Wc++11-extensions]
const b2Transform& transform, int32 childIndex) const override;
^
/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2ChainShape.h:79:87: warning:
'override' keyword is a C++11 extension [-Wc++11-extensions]
void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const override;
^
/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2ChainShape.h:83:64: warning:
'override' keyword is a C++11 extension [-Wc++11-extensions]
void ComputeMass(b2MassData* massData, float32 density) const override;
^
/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2ChainShape.h:99:15: error:
use of undeclared identifier 'nullptr'
m_vertices = nullptr;
^
In file included from /Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2ChainShape.cpp:20:
/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2EdgeShape.h:36:52: warning:
'override' keyword is a C++11 extension [-Wc++11-extensions]
b2Shape* Clone(b2BlockAllocator* allocator) const override;
^
/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2EdgeShape.h:39:30: warning:
'override' keyword is a C++11 extension [-Wc++11-extensions]
int32 GetChildCount() const override;
^
/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2EdgeShape.h:42:70: warning:
'override' keyword is a C++11 extension [-Wc++11-extensions]
bool TestPoint(const b2Transform& transform, const b2Vec2& p) const override;
^
/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2EdgeShape.h:46:59: warning:
'override' keyword is a C++11 extension [-Wc++11-extensions]
const b2Transform& transform, int32 childIndex) const override;
^
/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2EdgeShape.h:49:87: warning:
'override' keyword is a C++11 extension [-Wc++11-extensions]
void ComputeAABB(b2AABB* aabb, const b2Transform& transform, int32 childIndex) const override;
^
/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2EdgeShape.h:52:64: warning:
'override' keyword is a C++11 extension [-Wc++11-extensions]
void ComputeMass(b2MassData* massData, float32 density) const override;
^
/Users/liudb/GitHub/cocos2d-x-3rd-party-libs-src/contrib/ios-armv7/box2d/Box2D/Box2D/Collision/Shapes/b2ChainShape.cpp:32:15: error:
use of undeclared identifier 'nullptr'
m_vertices = nullptr;
^
12 warnings and 2 errors generated.
make[3]: *** [CMakeFiles/box2d.dir/Box2D/Box2D/Collision/Shapes/b2ChainShape.cpp.o] Error 1
make[2]: *** [CMakeFiles/box2d.dir/all] Error 2
make[1]: *** [all] Error 2
make: *** [.box2d] Error 2

suggest add -fPIC to linux.ini

hi .
if i want to make cocos2d-x to dynamic library , I need to make all static library to add -fPIC
so i suggest add -fPIC to linux.ini

such that
cfg_build_release_mode="-O3 -fPIC -DNDEBUG"
cfg_build_debug_mode="-O0 -fPIC -g -DDEBUG"

How to make these libs working on Android 19?

I've compiled and made libs successfully on Mac.
But they are only working on Android-21(Lollipop) and over versions.
We have still many Kitkat users so,
I want to know how you guys solved this problem.

Add a options to use -mthumb when building android ABI

Some libraries compile with thumb instructions will cause linker fails, such as libcurl

so we should add a option to specify which library should omit -mthumb option.

On default, all libraries should use -mthumb, since it is recommended by NDK.

Unable to build tiff library for iOS platform

The compile command is

./build.sh -p=ios --libs=tiff

The error is:

create fat library libtiff for 
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: no input files specified
fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: Usage: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo [input_file] ... [-arch <arch_type> input_file] ... [-info] [-detailed_info] [-output output_file] [-create] [-arch_blank <arch_type>] [-thin <arch_type>] [-remove <arch_type>] ... [-extract <arch_type>] ... [-extract_family <arch_type>] ... [-verify_arch <arch_type> ...] [-replace <arch_type> <file_name>] ...
fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: can't open input file: ios/tiff/prebuilt/libtiff.a (No such file or directory)

Thanks for your help!!

How To change the version of liblua.a?

I can build the liblua.a on mac. but I found that the version of lua is 5.1.4 and which I need is 5.1 , I tried to change the version from 5.1.4 to 5.1 in the file rules.mak ,but I don't know how to change the SHA512SUMS file. Because I don't know how is the check code created. So how can I do next?

AppleTV compilation support

Hi,

I started to try to update the build scripts to compile for AppleTV, so far I think i have made a mistake somewhere in my changes, but was wondering have you already got in pipeline an updated build for AppleTV and if you was to would you do it so that Apple TV is a separate build than iOS although they seem to have a lot in common?

how to build websocket lib for ssl support?

I changed flag of 'DLWS_WITH_SSL' from 0 to 1 and proceed to build, which to support for ssl in websocket. But I failed to build because of error.

I got few question.

  • Is there anything else we need to do to support ssl without changing flag of 'DLWS_WITH_SSL'?
  • I got below error messge while I was doing bulind process. How to fix this error?

build command : ./build.sh -p=ios --libs=websockets
build error :
-- Configuring incomplete, errors occurred!
See also "/Users/kks/_works/cocos2d-x-3rd-party-libs-src/contrib/ios-x86_64/websockets/CMakeFiles/CMakeOutput.log".
See also "/Users/kks/_works/cocos2d-x-3rd-party-libs-src/contrib/ios-x86_64/websockets/CMakeFiles/CMakeError.log".
make: *** [.websockets] Error 1
/Users/kks/_works/cocos2d-x-3rd-party-libs-src/build
create folder for library with specify arch. ios/websockets/prebuilt/x86_64
cp: /Users/kks/_works/cocos2d-x-3rd-party-libs-src/build/../contrib/install-ios/x86_64/lib/libwebsockets.a: No such file or directory
copying dependent archives...
Copying needed heder files
cp: /Users/kks/_works/cocos2d-x-3rd-party-libs-src/build/../contrib/install-ios/x86_64/include/libwebsockets.h: No such file or directory
cleaning up
yes
create fat library libwebsockets for
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: no input files specified
fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: Usage: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo [input_file] ... [-arch <arch_type> input_file] ... [-info] [-detailed_info] [-output output_file] [-create] [-arch_blank <arch_type>] [-thin <arch_type>] [-remove <arch_type>] ... [-extract <arch_type>] ... [-extract_family <arch_type>] ... [-verify_arch <arch_type> ...] [-replace <arch_type> <file_name>] ...
fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: can't open input file: ios/websockets/prebuilt/libwebsockets.a (No such file or directory)
create fat library for dependent archives...
create fat library libz for ios/z/prebuilt/arm64/libz.a
ios/z/prebuilt/armv7/libz.a
ios/z/prebuilt/i386/libz.a
ios/z/prebuilt/x86_64/libz.a
Architectures in the fat file: ios/z/prebuilt/libz.a are: armv7 i386 x86_64 arm64

build env.
osx version : 10.12
xcode version : 8.0

无法编译android arm64的chipmunk库

使用的命令:./build.sh -p=android --libs=chipmunk --arch=arm64

log信息
You don't specify a valid build mode, use release mode
build api is 21.
checking arm64 is in arm armv7 x86 arm64 mips
checking chipmunk is in png zlib lua luajit websockets curl freetype jpeg tiff webp chipmunk openssl rapidjson

build arm64 for chipmunk in android
toolchain path is /Users/zeromini/Documents/android/android-ndk-r10c/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64/bin
Creating configuration file... config.mak
The host is linux-android
check android sdk
we are using mthumb for arm64-v8a!!
Bootstrap completed.

Run "make" to start compilation.

Other targets:

  • make install same as "make"
  • make list list packages
  • make fetch fetch required source tarballs
  • make fetch-all fetch all source tarballs
  • make distclean clean everything and undo bootstrap
  • make mostlyclean clean everything except source tarballs
  • make clean clean everything
    (cd chipmunk && patch -fp1) < ../../contrib/src/chipmunk/cocos2d.patch
    patching file include/chipmunk/chipmunk.h
    Hunk #1 FAILED at 117.
    1 out of 1 hunk FAILED -- saving rejects to file include/chipmunk/chipmunk.h.rej
    patching file include/chipmunk/chipmunk_types.h
    Hunk #1 FAILED at 26.
    1 out of 1 hunk FAILED -- saving rejects to file include/chipmunk/chipmunk_types.h.rej
    patching file src/cpHastySpace.c
    Hunk #1 FAILED at 6.
    1 out of 1 hunk FAILED -- saving rejects to file src/cpHastySpace.c.rej
    make: *** [.chipmunk] Error 1

Failed to compile libwebsockets on mac

build output

-- The C compiler identification is AppleClang 9.1.0.9020039
-- Check for working C compiler: /usr/bin/xcrun
-- Check for working C compiler: /usr/bin/xcrun -- broken
CMake Error at /usr/local/Cellar/cmake/3.11.4/share/cmake/Modules/CMakeTestCCompiler.cmake:52 (message):
  The C compiler

    "/usr/bin/xcrun"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /Users/cocos/Github/cocos2d-x-3rd-party-libs-src/contrib/mac-x86_64/websockets/CMakeFiles/CMakeTmp
    
    Run Build Command:"/usr/bin/make" "cmTC_9d37a/fast"
    /Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_9d37a.dir/build.make CMakeFiles/cmTC_9d37a.dir/build
    Building C object CMakeFiles/cmTC_9d37a.dir/testCCompiler.c.o
    /usr/bin/xcrun cc   -isysroot;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk;-mmacosx-version-min=10.7;-DMACOSX_DEPLOYMENT_TARGET=10.7;-m64;-O3;-DNDEBUG;-I/Users/cocos/Github/cocos2d-x-3rd-party-libs-src/contrib/install-mac/x86_64/include;-O3;-DNDEBUG  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk   -o CMakeFiles/cmTC_9d37a.dir/testCCompiler.c.o   -c /Users/cocos/Github/cocos2d-x-3rd-party-libs-src/contrib/mac-x86_64/websockets/CMakeFiles/CMakeTmp/testCCompiler.c
    clang: error: argument to '-isysroot' is missing (expected 1 value)
    clang: error: no input files
    /bin/sh: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk: is a directory
    /bin/sh: -mmacosx-version-min=10.7: command not found
    /bin/sh: -DMACOSX_DEPLOYMENT_TARGET=10.7: command not found
    /bin/sh: -m64: command not found
    /bin/sh: -O3: command not found
    /bin/sh: -DNDEBUG: command not found
    /bin/sh: -I/Users/cocos/Github/cocos2d-x-3rd-party-libs-src/contrib/install-mac/x86_64/include: No such file or directory
    /bin/sh: -O3: command not found
    /bin/sh: -DNDEBUG: command not found
    make[2]: *** [CMakeFiles/cmTC_9d37a.dir/testCCompiler.c.o] Error 127
    make[1]: *** [cmTC_9d37a/fast] Error 2
  

bad toolchain.cmake generated

set(CMAKE_SYSTEM_NAME Darwin)
set(CMAKE_C_FLAGS  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.7 -DMACOSX_DEPLOYMENT_TARGET=10.7 -m64 -O3 -DNDEBUG -I/Users/cocos/Github/cocos2d-x-3rd-party-libs-src/contrib/install-mac/x86_64/include -O3 -DNDEBUG)
set(CMAKE_CXX_FLAGS  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.7 -DMACOSX_DEPLOYMENT_TARGET=10.7 -m64 -O3 -DNDEBUG -I/Users/cocos/Github/cocos2d-x-3rd-party-libs-src/contrib/install-mac/x86_64/include -O3 -DNDEBUG)
set(CMAKE_LD_FLAGS  -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -mmacosx-version-min=10.7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk -DMACOSX_DEPLOYMENT_TARGET=10.7 -m64 -L/Users/cocos/Github/cocos2d-x-3rd-party-libs-src/contrib/install-mac/x86_64/lib)
set(CMAKE_AR ar CACHE FILEPATH Archiver)
set(CMAKE_OSX_SYSROOT /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk)
set(CMAKE_C_COMPILER xcrun cc)
set(CMAKE_CXX_COMPILER xcrun c++)
set(CMAKE_FIND_ROOT_PATH /Users/cocos/Github/cocos2d-x-3rd-party-libs-src/contrib/install-mac/x86_64)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

Linux platform missing FontConfig OpenGL prebuilt static libraries for v4

Now the Linux platform still use system FontConfig and OpenGL libraries.

I don't know whether we could also provide a OpenGL prebuilt libraries for Linux.

BTW, the FMODX library is dynamic library. But FMODX is not free software. In the new audio plan, this module need to be removed. So let's just leave it here. After the engine doesn't rely on it, I will remove it from here.

Is this project broken?

I tried to compile this without success. Everything seems broken. I couldn't get a single library or arch to compile. All I get is:

Compiler error reporting is too harsh for ./configure (perhaps remove -Werror).

The first problem i encountered is that more recent NDK's have removed make-standalone-toolchain.sh and replaced it with make_standalone_toolchain.py. But even after overcoming that hurdle, it seems zlib is failing. The error output above is entirely unhelpful.

Manually going into contrib//build and running make on zlib results in this error:

./zconf.h:421:14: fatal error: 'sys/types.h' file not found
include <sys/types.h> /* for off_t */

Which is odd considering /usr/include/sys/types.h is clearly there.

Other libs also fail for various reasons. Clang is working fine on the terminal and through Android studio. The only conclusion i can come to is that this project is outdated and broken.

unable to build freetype libraries for ios platform on my Mac (OS X El Capitan)

The following fails on my Mac (running OS X El Capitan):
cd build
./build.sh -p=ios --libs=freetype

Errors:

libtool: compile:  xcrun clang -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk -arch i386 -miphoneos-version-min=6.0 -I/Users/gino/work8/cocos2d-x-3rd-party-libs-src/contrib/install-ios/i386/include -O3 -DNDEBUG -I/Users/gino/work8/cocos2d-x-3rd-party-libs-src/contrib/ios-i386/freetype/objs -I./builds/unix -I/Users/gino/work8/cocos2d-x-3rd-party-libs-src/contrib/ios-i386/freetype/include -c -Wall -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk -arch i386 -miphoneos-version-min=6.0 -I/Users/gino/work8/cocos2d-x-3rd-party-libs-src/contrib/install-ios/i386/include -O3 -DNDEBUG -DDARWIN_NO_CARBON -I/Users/gino/work8/cocos2d-x-3rd-party-libs-src/contrib/install-ios/i386/include -DFT_CONFIG_OPTION_SYSTEM_ZLIB "-DFT_CONFIG_CONFIG_H=<ftconfig.h>" -DFT2_BUILD_LIBRARY "-DFT_CONFIG_MODULES_H=<ftmodule.h>" -I/Users/gino/work8/cocos2d-x-3rd-party-libs-src/contrib/ios-i386/freetype/src/psnames /Users/gino/work8/cocos2d-x-3rd-party-libs-src/contrib/ios-i386/freetype/src/psnames/psnames.c  -fno-common -DPIC -o /Users/gino/work8/cocos2d-x-3rd-party-libs-src/contrib/ios-i386/freetype/objs/psnames.o

gcc       -o /Users/gino/work8/cocos2d-x-3rd-party-libs-src/contrib/ios-i386/freetype/objs/apinames /Users/gino/work8/cocos2d-x-3rd-party-libs-src/contrib/ios-i386/freetype/src/tools/apinames.c
/Users/gino/work8/cocos2d-x-3rd-party-libs-src/contrib/ios-i386/freetype/src/tools/apinames.c:19:19: fatal error: stdio.h: No such file or directory
 #include <stdio.h>
                   ^
compilation terminated.
make[1]: *** [/Users/gino/work8/cocos2d-x-3rd-party-libs-src/contrib/ios-i386/freetype/objs/apinames] Error 1
make: *** [.freetype] Error 2

As a comparison, I was successfully able to build the mac version using:
./build.sh -p=mac --libs=freetype

Could not compile mac i386.

The compile command is

./build.sh -p=mac --libs=all --arch=i386 --mode=release

The error is

Undefined symbols for architecture x86_64:
  "_mod_exp_512", referenced from:
      _e_rsax_bn_mod_exp in libcrypto.a(eng_rsax.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[3]: *** [link_app.] Error 1
make[2]: *** [openssl] Error 2
make[1]: *** [build_apps] Error 1
make: *** [.openssl] Error 2

Support for android x86_64

Hi

We would like to support x86_64 for our game because of Google play's policy.
Could you add this support or give us a direction how to use this script to generate the libs?

Thanks

Please update libcurl to the latest version

Currently used libcurl library was released more than 2 years ago. There're so many bugfixes and changes that are integrated to latest libcurl library. Cocos2d-x should update the libcurl library.

能提供一下win32编译环境吗?感激不尽

#142 I now want to develop a small game under win32 USES coco2dx to support the xp want oneself to recompile the 3 rd, do you provide inside the bin has compiled win32 compilation library can provide the environment very grateful? Thank you very much!
我现在要在win32下开发个小游戏用到了coco2dx为了支持xp系统要自己重新编译3rd,你们提供的bin里面都有win32编译的库能提供一下编译环境吗感激不尽?我自己去github下载各个版本的库编译各种问题, 能提供下吗?感激不尽!
@zilongshanren @ricardoquesada @elnormous @dumganhar @minggo @xiaofeng11 @stammen @steerlink @martell @stevetranby @super626 @hulefei @fusijie @YamakiHirokazuXX @Watson1978

Command not found

/Applications/Xcode.app/Contents/Developer/usr/bin/make -C src
make[2]: arm-linux-androideabi-clang: Command not found
make[2]: arm-linux-androideabi-clang: Command not found
make[2]: arm-linux-androideabi-clang: Command not found
make[2]: arm-linux-androideabi-clang: Command not found
make[2]: arm-linux-androideabi-clang: Command not found
make[2]: arm-linux-androideabi-clang: Command not found
Makefile:268: *** Unsupported target architecture. Stop.
make[1]: *** [default] Error 2
make: *** [.luajit] Error 2

==== Building LuaJIT 2.1.0-beta3 ====
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C src
make[2]: aarch64-linux-android-clang: Command not found
make[2]: aarch64-linux-android-clang: Command not found
make[2]: aarch64-linux-android-clang: Command not found
make[2]: aarch64-linux-android-clang: Command not found
make[2]: aarch64-linux-android-clang: Command not found
make[2]: aarch64-linux-android-clang: Command not found
Makefile:268: *** Unsupported target architecture. Stop.
make[1]: *** [default] Error 2
make: *** [.luajit] Error 2

ndk version:android-ndk-r10e
osx: 10.13.6
I used osx to build LuaJIT 2.1.0-beta3, Can someone help me make it run normally. Thanks!

Win32 how to download the 3rd code

I would like to ask Win32 how to download the 3rd code, I tried a lot of methods are not able to download the code is very anxious, can not give a point to explain it, and now Windows development is not worth you to explain it?

WinRT Status

I've been reviewing the latest merge of the WinRT changes from @stammen and have a few questions.

  1. Is it in a complete state or still a work in progress?
  2. Is there a reason why some libraries use "%VS140COMNTOOLS%vsvars32 and others use "%VS120COMNTOOLS%vsvars32 (e.g. chipmunk vs zlib)?
  3. Why is openssl not built by build_winrt.bat?

How to update libpng from 1.6.16 to 1.6.36

I've followed setup instructions. I've found rules.mak file in contrib/src/png directory and changed the version here. Yet, running ./build.sh -p=android --libs=png --list

gives:

Supported libraries and versions:
libpng-1.6.16
zlib-1.2.8
LuaJIT-2.1.0-beta2
libwebsockets-master-7355750.tar.xz243aa746ab90e0c22eefec04c152f093d2e5264283c325bc4ed83c5e27683859cebeff2120b0b25f64ed3ad25a75fd089f0ccef6aa6d0862c6b431064
curl-7.52.1
freetype-2.5.5
jpegsrc.v9b
tiff-4.0.3

Chipmunk-7.0.1
openssl-1.1.0c
libbullet-git.tar.xzdc63efa816a846b1e0413a49ffa67f8f88726a81f28b4cfadda50244763b5389ae96d379e4afef2d0ee87a2ffd132a5a344107b6eb0e11081e235d1c9
Box2D-2.3.1.tar.gzc7921f993b9a99b3b9421fefadb039cd475c42d85f5b5a35d7c5401c70491349bb885a02fd31e527de06a8b40d9d49a1fdb92c964e13c04ae092c6b98

So it still thinks it's an older version. Anyway, I've tried to compile it:

./build.sh -p=android --libs=png

Which resulted:

You don't specify a valid build mode, use release mode
checking armv7 is in armv7 x86 arm64 mips
checking x86 is in armv7 x86 arm64 mips
checking arm64 is in armv7 x86 arm64 mips
checking png is in png zlib luajit websockets curl freetype jpeg tiff webp chipmunk openssl bullet box2d uv glsl_optimizer

build armv7 for png in android
generating android standalone toolchain for arm
./build.sh: line 306: /build/tools/make-standalone-toolchain.sh: No such file or directory

Indeed, there's no such file. What's more, I don't even have tools directory.

So, what's going on?

I just need newer libpng version.

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.