3303 Commits

Author SHA1 Message Date
rdb
4b24ac86a5 dtoolbase: Fix issues building with C++20 2021-03-01 10:16:03 +01:00
rdb
5ae08eadf7 Merge branch 'release/1.10.x' 2021-02-22 19:38:49 +01:00
rdb
7ed9f573e7 interrogate: Map operator / to true divide unless it takes an int
This is a little less conservative than the previous behaviour of only mapping if it takes a float, but this behaviour is more intuitive for non-scalar operands such as for Filename's operator /.
2021-02-22 19:14:18 +01:00
rdb
9d9337dc4d dtoolutil: Fix Filename division operator in Python 3 2021-02-22 18:14:12 +01:00
rdb
601ca323f5 interrogate: Support __truediv__, __floordiv__, etc. special methods 2021-02-22 18:13:34 +01:00
rdb
fb9b334d58 Merge branch 'release/1.10.x' 2021-02-17 10:57:30 +01:00
rdb
08f344b00c dtool: Fix memory leak in OEncryptStream/IDecryptStream
Fixes #1114
2021-02-16 11:33:39 +01:00
rdb
8afd0e526f Merge branch 'release/1.10.x' 2021-02-15 11:38:45 +01:00
rdb
4dfe651133 prc: Fix istream/ostream/iostream properties of StreamWrapper 2021-02-15 11:13:33 +01:00
rdb
c73c94c862 Merge branch 'release/1.10.x' 2021-02-06 01:23:34 +01:00
rdb
c89631488b prc: Add properties to ConfigPageManager 2021-02-05 23:51:25 +01:00
rdb
06921aba93 CMake: replace "CVS" with "Git" 2021-01-18 23:50:08 +01:00
rdb
243fd10db0 CMake: Set PANDA_BUILD_DATE_STR if SOURCE_DATE_EPOCH is set
Adds CMake support for the 54638bfc10bd766563830adaac118a4e55b4b52b change.

One thing to note, compared to makepanda, is that CMake doesn't automatically rebuild the file if this env var is changed.
2021-01-18 23:49:03 +01:00
rdb
613441060b Merge branch 'release/1.10.x' 2021-01-18 23:47:36 +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
0b53355347 interrogate: respect SOURCE_DATE_EPOCH setting for file identifiers
This can be used to ensure that the build is bit-for-bit reproducible.

See https://reproducible-builds.org/docs/source-date-epoch/
2021-01-18 02:34:16 +01:00
rdb
f392cc9fe6 dtoolutil: Mark PandaSystem::get_build_date() as deprecated
It results in the build not being reproduceable.
2021-01-18 00:52:04 +01:00
rdb
e099d9e787 Merge branch 'release/1.10.x' 2021-01-02 02:33:35 +01:00
rdb
a7042091be py_panda: backport some py_compat.h definitions 2021-01-01 16:37:21 +01:00
rdb
99f9352e76 interrogate: improvements to __setstate__ handling:
* Force single arg variant, easing argument parsing
* Allow defining __setstate__ taking multiple args, leading to tuple unpack
* Allow __setstate__ to be called on already initialized object (useful with __reduce__)
2021-01-01 15:57:41 +01:00
rdb
3e1d4aa6b5 interrogate: Fix memory leak in __setstate__ 2020-12-31 18:12:52 +01:00
rdb
1793c9a938 interrogate: Fix __setstate__ not working for subclasses 2020-12-31 18:11:50 +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
7d5fee3066 Update version number on release/1.10.x branch to 1.10.9 2020-12-29 12:50:02 +01:00
rdb
a3010a43a5 Merge branch 'release/1.10.x' 2020-12-24 15:31:52 +01:00
rdb
1b8c4e0029 dtoolutil: Fix compile warning in ExecutionEnvironment 2020-12-22 23:14:59 +01:00
rdb
131ae98bfd Merge branch 'release/1.10.x' 2020-12-22 16:45:24 +01:00
rdb
30bca7a119 dtoolutil: fix ExecutionEnvironment::has_environment_variable() for shadowed var
Fixes MAIN_DIR being set more than once (which seems to avoid a compiler bug in an opt4 build).
2020-12-22 16:22:45 +01:00
rdb
f26f7d2226 CMake: Fix CMAKE_CONFIGURATION_TYPES not being set properly in the cache 2020-12-21 23:31:20 +01:00
rdb
dfc5b47ec9 CMake: Improve reporting of enabled-but-not-found packages
Fixes #1072 (together with 3786dc2aeaaf09479e12a590ab426a770f18fdb5)
2020-12-20 18:36:41 +01:00
rdb
3786dc2aea CMake: Fix detection and use of SSE2 compiler flag on MSVC
This is one half of the fix for #1072
2020-12-20 18:35:17 +01:00
rdb
ae3d8c2663 dtoolbase: More elegant fix for NeverFreeMemory memory leak
Better fix for 74983d19a41d5fbf006cb269d6b1adc9f705dc99 is to just switch to an std::multimap.  This couldn't go in the 1.10.x branch due to the risk of ABI change.
2020-12-20 01:02:15 +01:00
rdb
dee8df9427 Merge branch 'release/1.10.x' 2020-12-20 01:02:08 +01:00
rdb
74983d19a4 dtoolbase: Fix small memory leak in NeverFreeMemory
It's using a set purely keyed by number of remaining bytes, so if there are two pages with the exact same number of remaining bytes, one of them gets lost.

See #1077
2020-12-20 00:19:37 +01:00
rdb
abe3c2bf0b CMake: Mark all system macOS frameworks as advanced variables
It should be extremely unusual to want to change these, and they are just cluttering up the CMake GUI.
2020-12-19 00:33:22 +01:00
rdb
662ace0173 CMake: Don't define HAVE_CG for arm64 systems 2020-12-19 00:26:13 +01:00
rdb
a1b2d5b8dc Make use of new function call methods in Python 3.9 2020-12-12 17:28:21 +01:00
rdb
ed397b3ab8 Merge branch 'release/1.10.x' 2020-12-09 17:59:37 +01:00
rdb
951c182c0e makepanda: Preparatory changes for Big Sur / arm64 builds 2020-11-30 19:46:20 +01:00
rdb
93900a203e putil: Backport part of 9d8c523dfa83f37cc15095bc8f4fae5f7f996bc6
Fixes #886
2020-11-17 23:36:06 +01:00
rdb
a6e6826939 interrogate: support __getstate__ and __setstate__
The latter in particular will be called instead of __init__, so must construct the object.
2020-11-17 22:35:25 +01:00
rdb
c788912070 Merge branch 'release/1.10.x' 2020-10-02 12:20:58 +02:00
rdb
0e70fcf1ef Bump version number on release/1.10.x branch to 1.10.8 2020-10-02 12:15:31 +02:00
rdb
e060a29228 general: Clean up hacks to support Python 3.5 from codebase 2020-10-02 12:07:04 +02:00
rdb
6d228dfd2e express: Add ZipArchive class, support mounting zips to VFS 2020-10-01 23:58:27 +02:00
rdb
5655e97ec1 interrogate: fix misbehaving == and != operator if only < is defined
Fixes comparison of two empty RenderEffects objects
2020-09-16 23:21:16 +02:00
rdb
66ac3be604 Merge branch 'release/1.10.x' into master 2020-09-12 23:23:58 +02:00
rdb
2b3a1d9d73 prc: StreamReader should hold GIL for PyBytes_FromStringAndSize
This is due to python/cpython#21074, which causes a segfault in the latest Python master when creating a bytes object of size 0.

readlines() has been reimplemented to use a C++ vector in order to prevent constantly re-locking and unlocking the GIL for every line.
2020-09-12 22:53:37 +02:00
rdb
2402594808 interrogatedb: Fix faulty version comparison in Python 3.10 2020-09-12 22:50:29 +02:00
rdb
dabab90415 interrogate: Fix compilation error of bindings with Python 3.9+ 2020-09-12 22:50:03 +02:00