Commit Graph

1227 Commits

Author SHA1 Message Date
rdb 03d411c937 dist: Workaround to disable autodiscovery in setuptools>=61.0.0
See #1394 - creates a new finalize_distribution_options entry point that makes sure that either `py_modules` or `packages` is present, otherwise setuptools  will activate its new auto-discovery system, even for custom commands that don't need setuptools' discovery system.

However, this is not a great solution, because it applies when running all setuptools commands, not just build_apps.
2022-11-19 13:14:18 +01:00
rdb e961ea99ac Merge branch 'release/1.10.x' 2022-11-13 12:10:38 +01:00
rdb 84a69e1689 makepanda: Don't re-export harfbuzz symbols from libpanda.so
Shot in the dark at fixing #1391 (but this change is a good idea anyway)
2022-11-13 11:25:45 +01:00
rdb a1105f0f96 dxml: Remove TinyXML bindings
This isn't used anywhere in the Panda source anymore, and is considered out-of-scope for Panda.  Python users can use the XML parsing library that's shipped with the Python source (or any other one on PyPI), and C++ users can just pull TinyXML into their projects directly.

If there really is a strong call to bring this back, I'd rather do it as an external package.

Closes #1379
2022-11-03 13:45:22 +01:00
rdb c50a5b25b8 ptloader: Disable obj2egg from ptloader
It doesn't support materials and textures, so it's not really useful to have this registered with the loader by default, especially since we have much better support for .obj through Assimp

Fixes #738
2022-11-03 09:53:13 +01:00
rdb bf2bf37e67 makepanda: Always populate OSX_ARCHS when building for macOS 2022-10-31 23:12:44 +01:00
rdb 316b0009ae Merge branch 'release/1.10.x' 2022-10-31 23:10:39 +01:00
rdb 587f9f7bcd makepanda: Fix issues when building on arm64 without `--arch` flag
Logic in various places seems to assume `OSX_ARCHS` contains `arm64` in this case
2022-10-31 19:25:47 +01:00
rdb 61ff260ee3 Merge branch 'release/1.10.x' 2022-10-20 20:59:45 +02:00
rdb 77e3033c42 makepanda: Fix ExecutionEnvironment.args being empty on Linux 2022-10-19 15:45:40 +02:00
rdb cd7abbb797 makepanda: Copy missing CMotionTrail header file 2022-10-17 16:39:42 +02:00
rdb bb6976d558 pstats: Third significant update to PStats server UI, including:
* Windows stay open after client disconnects, for further inspection
* Ability to save session results to a file, and reopening those files
* Ability to save the current graph window layout for new sessions
* Ability to change colors (by right-clicking on bar)
* SI prefixes for Hz units (kHz, MHz, etc.)
* Ability to export session to Chrome Tracing JSON format
* "Close All Graphs" menu option
* Graphs now properly show data when opened while Pause is on
* Some fixes for weird graph window minimize behavior on Windows
2022-10-05 18:58:36 +02:00
rdb d239f48a43 Merge branch 'release/1.10.x' 2022-08-31 12:51:46 +02:00
rdb 8617eb917c makepanda: Force DT_RPATH instead of DT_RUNPATH for deploy-stub
Fixes #1358
2022-08-31 10:28:08 +02:00
rdb c966a6898c makepanda: Fix naming of wheels for macOS 12.0 2022-08-31 09:22:40 +02:00
rdb ecf4d19e83 Merge branch 'release/1.10.x' 2022-05-10 16:12:36 +02:00
rdb 6fb2acc9cd makepanda: Always build tinydisplay, even without X11, for offline rendering
Closes #1288

Co-authored-by: Brian Gontowski <brian@gontowski.com>
2022-05-10 15:58:34 +02:00
rdb e02a9989fb android: Changes to add compatibility with pyjnius/plyer 2022-03-12 18:18:15 +01:00
rdb 83038146b3 makepanda: Fix dependency problem in threaded mode
This seems to happen when TargetAdd calls are specified out-of-order
2022-03-12 16:56:02 +01:00
rdb 5475084717 build: Enable -fno-semantic-interposition for GCC
This matches the more optimized clang behavior for -fPIC
2022-03-09 16:23:37 +01:00
rdb 2334f48e89 makepanda: Always use /BIGOBJ when compiling with Eigen
Anything from pgraph onward needs it due to the size of Eigen, but let's just always pass it so we don't constantly have to chase compiler errors
2022-03-02 09:58:00 +01:00
rdb aaa51df759 makepanda: Remove `-undefined dynamic_lookup` for OpenEXR on macOS 2022-03-01 16:10:23 +01:00
rdb f60c55f450 makepanda: Enable additional warning messages
Also error on missing return statement in non-void function, since this is pretty much always an error and can be dangerous if not caught
2022-03-01 16:09:07 +01:00
rdb 794968dcc5 makepanda: Fix error building Maya client programs on macOS 2022-03-01 16:09:07 +01:00
rdb 2f3561a48e makepanda: Update for building against newer OpenEXR on non-Windows 2022-03-01 16:08:59 +01:00
rdb 25a468ba12 Merge branch 'release/1.10.x' 2022-02-07 19:31:04 +01:00
rdb b401884f1c makepanda: Support building with OpenEXR 3.0 or 3.1 on Windows 2022-02-07 11:12:10 +01:00
rdb e27162df0b Merge branch 'release/1.10.x' 2022-02-06 15:32:24 +01:00
rdb a37dfa727e makepanda: Support building with mimalloc on Windows, experimentally
Partial backport of 07545bc9e3 for Windows, requires building with `--override USE_MEMORY_MIMALLOC=1 --override USE_DELETED_CHAIN=UNDEF` for optimum effect
2022-02-06 15:29:25 +01:00
rdb a12359275f makepanda: Support building with OpenSSL 1.1.1 on Windows 2022-02-06 15:29:21 +01:00
rdb 4e925a839a makepanda: Support building with mimalloc on non-Windows
For experimentation only - it's disabled by default unless you also specify --override USE_MEMORY_MIMALLOC=1 (I did not see a discernable benefit over glibc, but more experimentation is warranted, especially with older glibc versions)
2022-02-05 22:25:44 +01:00
rdb 07545bc9e3 dtoolbase: Use mimalloc on Windows, disable USE_DELETED_CHAIN
Windows' malloc has awful performance.  mimalloc is orders of magnitude faster, even faster than DeletedBufferChain.  Therefore, only enable USE_DELETED_CHAIN on Windows when building without mimalloc.

On Linux, mimalloc doesn't appear to be measurably faster than glibc's own allocator.  Both are marginally than DeletedBufferChain, though, and substantially faster in the multi-threaded case, so USE_DELETED_CHAIN is disabled there in all cases.
2022-02-04 23:50:57 +01:00
rdb 7da70cf939 pstatserver: Major improvements to PStats server UI, including:
* New "Flame Graph" chart for seeing all collectors in a frame, much easier to read than piano roll
* Update controls, fonts, background color to more modern visual style on Windows
* Proper support for high DPI monitors (with correct scaling)
* Add tooltips for collector labels showing full name and averaged value
* Colors of collectors are now converted to sRGB transfer encoding
* Major performance improvement to piano roll view on Windows
* Movering mouse over labels now highlights the corresponding area in chart
* Label hover effect changed to darkening effect instead of border
* Reimplement graph as static common control on Windows
* Check boxes are now clickable by their label on Windows
* Graph windows have minimum sizes on Windows
2022-02-02 21:05:10 +01:00
rdb 87f5aea80e gtk-stats: Update to GTK version 3, since version 2 is EOL 2022-02-01 17:17:56 +01:00
rdb a56ee57422 Merge branch 'release/1.10.x' 2022-01-14 10:50:10 +01:00
rdb bd37e8776f makepanda: Fix platform tag on aarch64 manylinux
Wheels ended up being tagged as i686.
2022-01-14 09:58:57 +01:00
rdb 78b67988fb makepanda: Fix wrong installation path for Python SDK on Debian/Ubuntu
This partially reverts commit 2fcacd1bab.

Fixes #1230
2022-01-05 08:48:26 +01:00
rdb d46651c032 Merge branch 'release/1.10.x' 2022-01-04 16:35:19 +01:00
Stephen A. Imhoff e3a49050a0 Correct location searched for 64-bit libc-2.24 2022-01-03 22:57:03 +00:00
rdb b53895aa3d Merge branch 'release/1.10.x' 2022-01-01 18:18:46 +01:00
rdb ce0d020cfd makepanda: Add handling for Windows 11 SDK 2021-12-31 13:10:20 +01:00
Stephen A. Imhoff a723567a3a Add manylinux_2_24 for building 2021-12-30 21:59:08 +00:00
rdb 9598065641 Merge branch 'release/1.10.x' 2021-12-26 14:13:23 +01:00
rdb 987f2f036b makepanda: Fix clang crash on macOS when compiling Objective-C++ code 2021-12-26 12:30:00 +01:00
Stephen A. Imhoff c2635d2498 makepanda: Add rpmversion for packaging.
Closes #1220
2021-12-26 12:30:00 +01:00
rdb 2fcacd1bab makepanda: Replace references to deprecated distutils module
distutils is deprecated as of Python 3.10 (see PEP 632) and will be removed in Python 3.12.
2021-12-25 11:51:28 +01:00
rdb fc625eec11 Merge branch 'release/1.10.x' into incoming 2021-12-12 22:54:15 +01:00
Daniel afadb556a2 maya: Add support for Maya 2022
Closes #1213
2021-12-12 22:20:21 +01:00
Daniel 6acb94f451 makepanda: Support Visual Studio 2022
Closes #1214
2021-12-12 22:18:47 +01:00
rdb b8c301164a dist: Implement more reliable solution for logging stdout/stderr
The previous trick doesn't seem to work on one of my devices.  The disadvantage of the new solution, however, is that it doesn't capture anything until site.py is successfully executed.
2021-12-10 14:56:13 +01:00
rdb 834bc2298f makepanda: Fix compiler error building for x86(_64) on Android 2021-12-09 15:34:36 +01:00
rdb c7cccd4791 makepanda: Fix compiling for older NDKs with armv7a 2021-12-08 14:46:42 +01:00
rdb 44e10d10a0 Support deploying Python apps for Android using bdist_apps 2021-12-07 21:00:08 +01:00
rdb 9230af94a3 makepanda: Replace dx with d8 for building Dalvik executable (Android)
Also, do it in makepanda instead of in makepackage
2021-12-06 22:28:42 +01:00
rdb 798fa90513 makepanda: Fix missing OpenSLES link on Android 2021-12-06 22:27:32 +01:00
rdb c594ab38ef Support building pandagles2 on Android 2021-12-06 22:26:56 +01:00
rdb 0122c07e10 makepanda: Add pandagles2 to Config.prc, fall back if pandagl not built 2021-12-06 22:25:28 +01:00
rdb d9e335e978 makepanda: Updates for Android compilation with latest NDK
[skip ci]
2021-12-05 17:13:04 +01:00
rdb a99a1ed991 makepanda: Android build fixes 2021-12-05 00:00:52 +01:00
rdb 5de31c6293 Merge branch 'release/1.10.x' 2021-12-04 21:57:35 +01:00
rdb 985ec3061c makepanda: Fix deprecated spelling for threading API
The new spelling is available since Python 2.6, so there is no chance of breakage here.
2021-12-04 20:37:14 +01:00
rdb b42fd4ee4f makepanda: Don't copy over old Python 2-only Pmw versions 2021-11-29 14:50:01 +01:00
rdb 55fb14b792 Merge branch 'release/1.10.x' 2021-05-11 12:21:24 +02:00
rdb 9410418840 pnmimagetypes: Changes to support compilation with OpenEXR 3.0.1 2021-05-11 11:38:40 +02:00
rdb dd3510eea7 Merge branch 'release/1.10.x' 2021-04-08 12:30:35 +02:00
rdb 7be4b7c3bb device: Support evdev gamepads on FreeBSD 2021-04-05 17:14:30 +02:00
rdb eb6eb9f1dd Merge branch 'release/1.10.x' 2021-03-24 13:58:00 +01:00
rdb 94806801e3 Add p3headlessgl render plug-in on Linux using EGL as fallback for GLX
Fixes #1086
2021-03-23 15:04:20 +01:00
rdb 0e36a99574 Merge branch 'release/1.10.x' 2021-03-22 15:45:45 +01:00
rdb 2531f09024 makepanda: Don't enable X11 on Android 2021-03-21 14:55:46 +01:00
rdb ada74e3b0c Merge branch 'release/1.10.x' 2021-02-24 18:10:15 +01:00
rdb 57f7d04231 makepanda: Don't set HAVE_GLX in dtool_config.h
It's only used for disambiguation in pandagl.cxx, we don't need to expose this, and it should be possible to build pandagl.cxx without GLX
2021-02-24 17:34:56 +01:00
rdb d4830f40f0 makepanda: Fix strftime error using SOURCE_DATE_EPOCH on Windows
Seems to occur when using Python 2.7
2021-02-24 15:51:45 +01:00
rdb f84111a693 makepanda: Don't disable Cg/FMODEx on macOS without arch flags
Fixes #1119
2021-02-24 09:46:53 +01:00
rdb 2edf619247 makepanda: Fix building without bison
New prebuilt parser.yxx.cxx does an #include of parser.yxx.h
2021-02-15 11:11:20 +01:00
rdb e8b4b6476c Merge branch 'release/1.10.x' 2021-02-07 15:01:36 +01:00
rdb 28615c6a9e interval: Support awaiting CInterval from coroutines
This is a partial implementation of #909 - it is somewhat inefficient (not suspending the task using a future) and does not implement cancellation.  A more complete implementation may follow in 1.11.0.
2021-02-07 12:40:58 +01:00
rdb 613441060b Merge branch 'release/1.10.x' 2021-01-18 23:47:36 +01:00
rdb f902eb7990 makepanda: Revert use of f-strings for now
This causes a syntax error for unsupported Python versions, which prevents display of the error message that tells people they are using a too-old Python version
2021-01-18 17:16:53 +01:00
rdb 54638bfc10 dtoolutil: Allow overriding PandaSystem::get_build_date()
This is useful to create bit-for-bit reproducible builds.  In the buildbots, we set it to the timestamp of the latest commit.
2021-01-18 16:41:22 +01:00
rdb 8924b77da4 egldisplay: Backport changes for creating headless EGL contexts
Backport of fbc4947455 and 9f1289b492

See #557
2021-01-17 16:46:57 +01:00
rdb 91380e8718 egg: Make egg parser and lexer reentrant
This avoids the need for the global mutex lock and allows two egg files to be read simultaneously.

Error reporting has also been improved by specifically pinpointing the offending token when an error occurs.
2021-01-02 20:11:10 +01:00
rdb ce235c3e60 Merge branch 'release/1.10.x' 2021-01-02 19:59:33 +01:00
rdb 6690b2d86e makepanda: Fix build error when flex is absent 2021-01-02 19:29:56 +01:00
rdb 748dd61615 makepanda: Require flex 2.5.9 for building egg lexer
Otherwise, fall back to prebuilt file instead
2021-01-02 12:55:34 +01:00
rdb e099d9e787 Merge branch 'release/1.10.x' 2021-01-02 02:33:35 +01:00
rdb c77593f3f0 egg: add pickle support to most EggData classes 2021-01-01 17:06:23 +01:00
rdb 8852c835fc collide: Support pickling for CollisionTraverser, HandlerEvent+Queue
Fixes #1090
2020-12-31 16:57:34 +01:00
rdb 2b84bfc145 makepanda: Code formatting 2020-12-31 13:44:13 +01:00
rdb e8f8604c08 makepanda: Remove hack preventing models from being built in parallel 2020-12-29 18:47:39 +01:00
rdb 1db3bb4ee6 dmodels: Delete dmodels tree, merge into models folder instead
Also eliminates need for flt2egg at build time

Fixes #1075
2020-12-29 18:40:49 +01:00
Daniel 74a4648965 mayaprogs: Completely refactor the maya2egg server
The maya2egg_server utility is no longer a separate utility. To run the maya2egg_server (now Maya conversion server), use `maya2egg -server` or `egg2maya -server`.

Two new utilities have been added: `maya2egg_client` and `egg2maya_client`. Both of them are Maya version independent, and do not rely on any Maya libraries. However, they're only built with SDKs that already come with the Maya binaries, as the server makes its own assumptions about the current working directory (the client and the server are expected to be on the same machine.)

A new feature has been added to ProgramBase: an `exit_on_complete` flag, which allows you to parse the command line without exiting the program upon a failure or a help command.

In addition to this, a getopt bug has been fixed in ProgramBase: It is now possible to clear the state of the Panda implementation of getopt, making it possible once again to parse command line arguments twice in a row.

Closes #1025
2020-12-29 16:16:36 +01:00
rdb fff0a67189 makepanda: better support building with FMOD Ex on macOS for now
This means preferring the 10.13 SDK except when targeting arm64 (in which case FMOD Ex is disabled with a warning).
2020-12-28 18:52:02 +01:00
rdb f4fa444013 Merge branch 'release/1.10.x' 2020-12-22 00:37:50 +01:00
rdb 5cd6469fd8 makepanda: Don't make built/Frameworks directory unless needed
It is no longer needed if we don't ship Cg as a framework, see #1079

[skip ci]
2020-12-21 22:10:53 +01:00
rdb fa04d77b57 makepanda: Replace use of deleted GetThirdpartyLibDir function
This caused a build error due to a faulty auto-merge.
2020-12-20 01:11:46 +01:00
rdb dee8df9427 Merge branch 'release/1.10.x' 2020-12-20 01:02:08 +01:00
rdb c4376b4f41 makepanda: Disable Maya builds for ARM64 on macOS 2020-12-20 00:32:20 +01:00
rdb 2d65738a18 makepanda: Respect lib-10.6 dir when copying dylibs/running install_name_tool
In the 1.10.8 thirdparty packages, OpenCV is split into a lib folder and a lib-10.6 folder, so we should use the proper dylibs to still be able to target 10.6
2020-12-19 14:10:51 +01:00
rdb 1a5fd04499 pzip: use Python zlib module to perform pzip step
This is more useful when cross-compiling, not requiring a functional pzip binary on the host.
2020-12-19 02:00:59 +01:00