summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD202
1 files changed, 120 insertions, 82 deletions
diff --git a/PKGBUILD b/PKGBUILD
index fd0c990e2324..66edf1ca7161 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,10 +1,10 @@
# Mantainer: Wilson E. Alvarez <wilson.e.alvarez1@gmail.com>
-# Submitter: Samuel FORGIONE <samuel.forgione@gmail.com>
+# Previous Maintainer: Samuel FORGIONE <samuel.forgione@gmail.com>
_appname=cocos2d-x
pkgname=cocos2d-x-src
-pkgver=3.14.1
-pkgrel=3
+pkgver=3.15
+pkgrel=1
pkgdesc="Cocos2D-X is a game engine that supports multiple platforms such as iOS, Android, WinXP/7/8, WP8, BlackBerry, MeeGo, Marmelade, WebOS, Mac OS X"
arch=('i686' 'x86_64')
url="http://cdn.cocos2d-x.org/"
@@ -17,10 +17,9 @@ source=(
"README"
"$_appname.sh"
"$_appname.csh"
-"CMakeLists.patch"
-"CCPhysicsBody.patch"
-"HelloWorldScene.cpp.patch"
-"HelloWorldScene.h.patch"
+"CMakeLists.txt.patch"
+"CCGLViewImpl-desktop.cpp.patch"
+"Cocos2dxActivity.java.patch"
"ccShader_3D_Color.frag.patch"
"ccShader_3D_ColorNormal.frag.patch"
"ccShader_3D_ColorNormalTex.frag.patch"
@@ -61,58 +60,55 @@ source=(
"ccShader_Position_uColor.frag.patch"
"ccShader_Position_uColor.vert.patch"
"ccShader_UI_Gray.frag.patch"
-"BugsTest.cpp.patch"
)
-sha1sums=(
-'66b7a6a93899abbcfc94e22a075c7c286a15135c'
-'2cff669a51b66d513824be811688aa9da553e400'
-'353bdefe07bdb6eb7f53aff20d20e83b488c1c05'
-'49b7919fc38803c1dd2f5b1d47fb0c75fde1fec6'
-'bcad039c11e29d4cbae9e371cb428d52f2eb15ff'
-'53d64b6246ba32f9f61817f505b30b4d67eeeb44'
-'2c6801bae13956394ddcd94080861aac8a25be99'
-'0d70b91142ceece19d90a620c707cb5f86f45d32'
-'49838c03951aa76524fb651dcb78834393a17682'
-'de5b8e9c89ead0ecffce6bc1450adf06e5c7e218'
-'7ffd26e2235ef54c854b079a0f8b3cd697d8c0d1'
-'f02f01ec38f0e1a5eb71078a612628c2e11a1413'
-'49eeda555783089778035ed124e6759abdea1b62'
-'c7fe0a570aebe7d4eda2fb263246823265642395'
-'d45e1c0b739087f9f82d9b1f871403764e4530e4'
-'356bca989f7861cff720ecd3a53f52fd1a0315af'
-'fa45ba55634b3af6fae6a1ad6a24abb51343f68b'
-'7ecd7bf3504f7b90bdaaee4994a44d102884e585'
-'91e32c7333705620803b058d9c5efd04d84e17ab'
-'6dbe3874af5295ccf48c9340be9426ef2e5e3760'
-'3e8c0f635f853d56901f625375d02c13458da087'
-'92d4fe63b27e5cf90ca1ce44cc25ede1ba94d234'
-'fca5767e100a3af23eb65f731c93f415d69dcb05'
-'4d971dd9f306f1ffad5f6203ecb8b1074543f926'
-'32fe66982514e9e3b5743c31673990d0d5c39d4f'
-'e08916384e815c551fb06c409ecb8a796b0eaf2d'
-'f09d34eba8ee67eb4a003829b6a3e5c7abcdd682'
-'c16f73e553d373aa5a6c64bc2a7a64273ca073c6'
-'52c7eb7fd0bb5c436578d6ba11359b0dd5f54ff0'
-'4b7925d294703e718e8627d807ed0f356b4828f0'
-'a2ff2f92cf8a535e37b64278161fd1ce3d679588'
-'c388ab06b5639d9fd5d179990cf03dabb470b356'
-'1d7dc7ea26aa75750e883ec31fbbb1b9c54d6174'
-'2a08b8532a42bb7fd647c3e01b803516430ad327'
-'02e5f3695ead2d34d7ad4013b2246cddbfbed863'
-'f83994a7da0311c193f3b3578ac59dc83d9f9700'
-'4c1b8cd3779ffea607ffff6b59e272b938b6acd4'
-'eae2679bc313b4368bfbf180f98985df71a9b3f9'
-'6837a4bb47269a17bdb498072670abcd5f437388'
-'4f93f13d4b8c6369fe97f94bed50e5d9649a7eda'
-'64b951ec9c2453fca2348a8a2bde483ada4a11f7'
-'43bbb35ed1e1c28f14a4ea333c463b87641e8238'
-'399ffc785562ee9ce25fb4b3dadb96fcc70bcfc6'
-'4d65c632745df2772f7c2c9507ba8bc228865c97'
-'166a5e48711c6c8f329af275e4a6e0a0203052df'
-'d8e81b49baec4fd9e04822e1c460dd43f85762bb'
-'ea81b894221a8cf42bd6eecd1ced44fff27ad5f4'
-'c8caec1e9626d222c67a7c883c8cb94101799956'
-'d324bb51453ecdadede650a34d66e966e0356523'
+sha256sums=(
+'5296091bf87d894475d2bbde39d2081612aea9ee855a91968e7523fbc6c84a5f'
+'09248ad9af9a94579b56c7c7dbf1b4276a59852c90423ad70c48b16355f28574'
+'f2f74a36538c43045894bd2b2415a2396bcb5c28f9241296b0e6d39a452b56b1'
+'3a7ae492fe9b2d7db8ef15c2d47e147746823942943e099d5a494c7076b2e92b'
+'9a5a73ed7a1fc0cc152b0d27878b973abd525dd1a5906757d6dd385178f69835'
+'3cc0e9666eeed8c0b4f7a8d0edfe1e5245c1cca53ca7e4a150660dc1bbf2a299'
+'b2575e466cbba3d1abf3f467b0ea4505a00c3645de5ee8f8908b693d708b3c67'
+'3f697c60080e85940a623a358a6d13ccab8a8f87346521c210196cc8ee48dcac'
+'e8418d25047914058adbddce65b5f9ca7abd88bf45a1e063d8eb69aa997d4a9c'
+'13de90070e6242d299232778f8a9d41c22c92d518e3a38e32501577826f52149'
+'0efc1d771e2b6a5bbca414732317e709c82a53878a0431c64aa2279b9f4321fe'
+'70351ae2d5a53fd42c96d5702efcef48d15a71ed7c4e55911c9678cfca7c4ab6'
+'f956e3b937c663a159a6c7bc92d5c951fd18836113dcc125bb0fe46147e62531'
+'3fb4eb3b15dd0f28e8d171719c779d9680329126ae6cc56ce10d0d3784b0aa15'
+'79b79366bc2690a01128fbfd0742f58ccf8f9f2ca1d7dd0a4b73d47c096ee7f6'
+'b8292b1c7971c285a7732e39b492f919df985c35a982a30bd9f004e9cd07f2fb'
+'572d86d285fa1bb6b72aa6d012244adfe3f3a304b66764fd555997dc8462baf4'
+'c56d1402ddfa5a7c5607a23b44768880797f84bc1081cbf773fa457be5b2be0a'
+'c7101ce86d01afa4c20efb4f89dd3e2b6d85059df233e57539648922c3eaca8f'
+'898e63f7352513848213e8fa929364acbd85707c9bbf054250c253499b65b4b7'
+'9b7f760d99844b456a2f56e2a875e5355a7766537b4d2b33970d5d66bb397e3e'
+'4b588741894aec0b2da47a35ff39787458202a431b88f0af6e422fcb4ee34709'
+'485ea7adc13632762aa78758c96287cc41f85a2d3edf2ab9e7b299883db52c9b'
+'bdd4bb3218853c9f0a7675d3d98a50e5e1d6b69b1b3861255bf0f497782d8954'
+'e847773c38ef54d23b6f3fefbf9b717ca187a2780cd2b3d020f0eeb3b4a94971'
+'62db6b5d01b14d8f4322a8e32cd7257ca8b87b6d55aa9a18418bc90d85ccfc89'
+'8437d3cf0d8ae3af545917095cf236b93fa0c2c480062cfefd786bfa2db5c209'
+'2a7e2557b1d7d85405b1a8337a876d2633921dccdfef8d5a34fb13f923b0ffd2'
+'5a7b57272514d4204fea0944151ab9eb23d533b1a97c289e408269eb2d877728'
+'ef4fd5d339ed872d41848847596a49a79f6a5d26c46a7edce8aadf2a9764e53a'
+'b2e422006a7f5348f3833d28b17a44ab1c4afd9daaeed65d4505bbedf0647eff'
+'dcb815b3c7a8e431fb8678701785d8cfb6568dc0976b86ab43c824fce765338c'
+'e962c317447119b2730103ddb9cddad5f366c614cab05249a5b52a92d14d0147'
+'7b33a4d78fa89b8b6a8fe3317dbf2e93e72f4579b9bedcefa1d4ac5daa5e4872'
+'39bb1106c7df3a2958589b5ae5cdbbf9afd1b381951791761372424c28e4dd4e'
+'308fa40e69de2c5cfa79e65edc326323bd80e26eb9da539d84ffeddf4e913017'
+'ffd5fb98cc4f6edfdda8a2e807ce97351fca6bf2dfd9570e158da797fc6b1245'
+'de468779316ec6438fde600328aa648c7904db0dc3c918535efd59e67d410013'
+'120250a97af3be476df8dcac1472538c8a11d1ae9ab0624ddae8261b539695a8'
+'eb2bee833918146282c2e9df02b3b021c5e95f0014d3eaa7df8da20ba3df7403'
+'07d8dbc9dd529b04341bdd4dc047eafb6674f2413d54baa6450f9b7dce78ae53'
+'ed7882c39f4074cc71d3498a4825b0e20ee895bc926419fda30ad8de1a2eaa43'
+'35d5761e0005d8a583692a9c44517d956c9ae41da9c1cc69e05ce42d425e26fa'
+'afe36a4cd2347c33c6c610b15966c1c4072d813a1b8a7ddcf611f3b8c0d08836'
+'db37cb1c64fc1990e26da2cc1d7a7756d50c2059a24c5d0d29757275850ace4d'
+'5394b03f78a25d6736171c792b384b6abdb20e80647cbf5220c55729eb9a2650'
+'c4cb76c3d896e66391453173f30417f8646257c1d702ee5a3cb3e4980f3df000'
)
@@ -124,24 +120,42 @@ prepare() {
package() {
+
+ # Install preliminary files
install -d "$pkgdir/opt/$_appname"
install -Dm644 "README" "$pkgdir/opt/$_appname/README"
install -Dm755 "$_appname.sh" "$pkgdir/etc/profile.d/$_appname.sh"
install -Dm755 "$_appname.csh" "$pkgdir/etc/profile.d/$_appname.csh"
- # Make sure COCOS2D_DEBUG spans libcocos2d correctly: https://github.com/cocos2d/cocos2d-x/pull/17033
- patch -s "$srcdir"/$_appname-$pkgver/templates/cpp-template-default/CMakeLists.txt CMakeLists.patch
+ ## ===============PATCHES BEGIN=======================
+
+ ## Performance tweaks
+
+ ## Add CMake configuration flags to ease the configuratino of libcocos2d:
+ patch -s "$srcdir"/$_appname-$pkgver/templates/cpp-template-default/CMakeLists.txt CMakeLists.txt.patch
- # Layer has been deprecated. Update the C++ templates: https://github.com/cocos2d/cocos2d-x/pull/17048
- patch -s "$srcdir"/$_appname-$pkgver/templates/cpp-template-default/Classes/HelloWorldScene.cpp HelloWorldScene.cpp.patch
- patch -s "$srcdir"/$_appname-$pkgver/templates/cpp-template-default/Classes/HelloWorldScene.h HelloWorldScene.h.patch
+ # TODO: Also add the following options to the CMakeLists.txt patch for disabling/enabling libraries
+ # Uncomment to disable compiling/linking the following:
+ #set(USE_CHIPMUNK OFF CACHE BOOL "Use chipmunk for physics library")
+ #set(USE_BOX2D ON CACHE BOOL "Use box2d for physics library")
+ #set(USE_BULLET OFF CACHE BOOL "Use bullet for physics3d library")
+ #set(USE_RECAST OFF CACHE BOOL "Use Recast for navigation mesh")
+ #set(USE_WEBP OFF CACHE BOOL "Use WebP codec")
+ #set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries")
+ #set(DEBUG_MODE OFF CACHE BOOL "Debug or release?")
+ #set(BUILD_EXTENSIONS OFF CACHE BOOL "Build extension library")
+ #set(BUILD_EDITOR_SPINE OFF CACHE BOOL "Build editor support for spine")
+ #set(BUILD_EDITOR_COCOSTUDIO OFF CACHE BOOL "Build editor support for cocostudio")
+ #set(BUILD_EDITOR_COCOSBUILDER OFF CACHE BOOL "Build editor support for cocosbuilder")
+ #set(BUILD_BOX2D OFF CACHE BOOL "Build box2d external without using it for physics library")
+ #set(USE_PREBUILT_LIBS OFF CACHE BOOL "Use prebuilt libraries in external directory")
+ #set(USE_SOURCES_EXTERNAL OFF CACHE BOOL "Use sources in external directory (automatically ON when USE_PREBUILT_LIBS is)")
- # Allow Chipmunk's kinematic bodies to be moved: https://github.com/cocos2d/cocos2d-x/pull/17033
- patch -s "$srcdir"/$_appname-$pkgver/cocos/physics/CCPhysicsBody.cpp CCPhysicsBody.patch
+ # POSSIBLE FUTURE TODO: There is a memory leak patch currently out for Labels. Stay tuned to see if it's affected: https://github.com/cocos2d/cocos2d-x/pull/17670
# Switch C++ multiline string literal to the STRINGIFY macro which uses less memory. See https://github.com/cocos2d/cocos2d-x/pull/16742
# TL;DR: For smoother development, using the C++ multiline string literal is convenient, however the STRINGIFY macro defined at ccShaders.cpp uses less memory.
- patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_3D_Color.frag ccShader_3D_Color.frag.patch
+ patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_3D_Color.frag ccShader_3D_Color.frag.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_3D_ColorNormal.frag ccShader_3D_ColorNormal.frag.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_3D_ColorNormalTex.frag ccShader_3D_ColorNormalTex.frag.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_3D_ColorTex.frag ccShader_3D_ColorTex.frag.patch
@@ -157,40 +171,64 @@ package() {
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_CameraClear.vert ccShader_CameraClear.vert.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_ETC1AS_PositionTextureColor.frag ccShader_ETC1AS_PositionTextureColor.frag.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_ETC1AS_PositionTextureGray.frag ccShader_ETC1AS_PositionTextureGray.frag.patch
- patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Label_df.frag ccShader_Label_df.frag.patch
+ patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Label.vert ccShader_Label.vert.patch
+ patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Label_df.frag ccShader_Label_df.frag.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Label_df_glow.frag ccShader_Label_df_glow.frag.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Label_normal.frag ccShader_Label_normal.frag.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Label_outline.frag ccShader_Label_outline.frag.patch
- patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Label.vert ccShader_Label.vert.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionColor.frag ccShader_PositionColor.frag.patch
+ patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionColor.vert ccShader_PositionColor.vert.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionColorLengthTexture.frag ccShader_PositionColorLengthTexture.frag.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionColorLengthTexture.vert ccShader_PositionColorLengthTexture.vert.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionColorTextureAsPointsize.vert ccShader_PositionColorTextureAsPointsize.vert.patch
- patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionColor.vert ccShader_PositionColor.vert.patch
+ patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTexture.frag ccShader_PositionTexture.frag.patch
+ patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTexture.vert ccShader_PositionTexture.vert.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureA8Color.frag ccShader_PositionTextureA8Color.frag.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureA8Color.vert ccShader_PositionTextureA8Color.vert.patch
- patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureColorAlphaTest.frag ccShader_PositionTextureColorAlphaTest.frag.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureColor.frag ccShader_PositionTextureColor.frag.patch
+ patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureColor.vert ccShader_PositionTextureColor.vert.patch
+ patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureColorAlphaTest.frag ccShader_PositionTextureColorAlphaTest.frag.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureColor_noMVP.frag ccShader_PositionTextureColor_noMVP.frag.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureColor_noMVP.vert ccShader_PositionTextureColor_noMVP.vert.patch
- patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTextureColor.vert ccShader_PositionTextureColor.vert.patch
- patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTexture.frag ccShader_PositionTexture.frag.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTexture_uColor.frag ccShader_PositionTexture_uColor.frag.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTexture_uColor.vert ccShader_PositionTexture_uColor.vert.patch
- patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_PositionTexture.vert ccShader_PositionTexture.vert.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Position_uColor.frag ccShader_Position_uColor.frag.patch
patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_Position_uColor.vert ccShader_Position_uColor.vert.patch
- patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_UI_Gray.frag ccShader_UI_Gray.frag.patch
+ patch -s "$srcdir"/$_appname-$pkgver/cocos/renderer/ccShader_UI_Gray.frag ccShader_UI_Gray.frag.patch
+
+ # Engine tweaks that must be adjusted on a user basis -- must be enabled by the users. These change the behaviour of the engine in certain areas
+
+ # Disable antialiasing globally for higher performance in general.
+ # Pixel art looks better with this disabled.
+ if [[ -n $COCOS2D_X_DISABLE_ANTIALIASING ]]; then
+ msg "Disabling Antialiasing globally..."
+ sed -e 's/_antialiasEnabled(true)/_antialiasEnabled(false)/g' -i "$srcdir"/$_appname-$pkgver/cocos/renderer/CCTexture2D.cpp
+ fi
+
+ # Disabled Multi-Sample Anti-Aliasing (MSAA) for higher performance
+ if [[ -n $COCOS2D_X_DISABLE_MSAA ]]; then
+ msg "Disabling MSAA globally..."
+ # For Android
+ patch -s "$srcdir"/$_appname-$pkgver/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java Cocos2dxActivity.java.patch
- # Patch BugTests.cpp to avoid a non-bug crash. See https://github.com/cocos2d/cocos2d-x/pull/17125
- patch -s "$srcdir"/$_appname-$pkgver/tests/cpp-tests/Classes/BugsTest/BugsTest.cpp BugsTest.cpp.patch
+ # For Linux, Mac and Windows:
+ patch -s "$srcdir"/$_appname-$pkgver/cocos/platform/desktop/CCGLViewImpl-desktop.cpp CCGLViewImpl-desktop.cpp.patch
- # (EXPERIMENTAL) Enable high variable precision globaly in the shaders:
- # This can get rid of positioning and rendering artifacts but might affect performance on devices with a slow GPU.
- # See: https://github.com/cocos2d/cocos2d-x/issues/17046 and https://github.com/cocos2d/cocos2d-x/issues/17099
- # Until a proper patch gets developed, a simple 'sed' can set every variable from a medium precision (mediump) one to a high precision (highp) variable
- # Use at your own risk
- #sed -i 's/mediump/highp/g' "$srcdir"/$_appname-$pkgver/cocos/renderer/*
+ #iOS -- Not really necessary. Cocos2D-X, according to the documentation, requires iOS 7+ which are fairly new devices and disabling MSAA on those devices might not even increase performance. See http://gamesfromwithin.com/trying-out-multisampling-on-ios
+ # There's some documentation here on working with iOS MSAA: https://developer.apple.com/library/content/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/WorkingwithEAGLContexts/WorkingwithEAGLContexts.html#//apple_ref/doc/uid/TP40008793-CH103-SW12
+ # I might try implementing a patch for disabling MSAA on if I may need the performance boost. Leaving it on seems like the way to go for now.
+ fi
+
+ if [[ -n $COCOS2D_X_EXPERIMENTAL_FEATURES ]]; then
+ warning "Enabling experimental features."
+ # (EXPERIMENTAL) Enable high variable precision globaly in the shaders:
+ # This can get rid of positioning and rendering artifacts but might affect performance on devices with a slow GPU.
+ # See: https://github.com/cocos2d/cocos2d-x/issues/17046 and https://github.com/cocos2d/cocos2d-x/issues/17099
+ # Until a proper patch gets developed, a simple 'sed' can set every variable from a medium precision (mediump) one to a high precision (highp) variable
+ # Use at your own risk
+ warning "Changing \"mediump\" to \"highp\" in shaders..."
+ sed -i 's/mediump/highp/g' "$srcdir"/$_appname-$pkgver/cocos/renderer/*
+ fi
# Necessary libfmod symbolic link
mkdir -p "$pkgdir/usr/lib"