Commit Graph

22305 Commits

Author SHA1 Message Date
Donny Lawrence af6c69b474 Merge branch 'cmake' of https://github.com/panda3d/panda3d into cmake 2018-06-05 16:41:13 -05:00
Donny Lawrence d8f3a669c2 Move all the little scripts back into .travis.yml, use less specific paths when searching for openssl and python2.7 2018-06-01 12:47:59 -05:00
Sam Edwards f54b4b61dd CMake: Don't use pzip when not built 2018-06-01 02:56:43 -06:00
Sam Edwards 7e4f9b4c8e CMake: Make p3directbase a component library 2018-06-01 02:56:43 -06:00
Sam Edwards 407589873a CMake: Update some Windows-specific rules 2018-06-01 02:56:43 -06:00
Donny Lawrence 3a678fb738 Just use APPLE instead of IS_OSX for compiling in ObjC++ 2018-05-31 22:16:25 -05:00
Donny Lawrence a70ccf5d13 CMake won't find the right Python 2.7, so tell it where it is. 2018-05-30 19:16:25 -05:00
Donny Lawrence 0f241837be Remove --python flag since we know we're running the proper python 2018-05-30 10:07:34 -05:00
Donny Lawrence 09009ca1a4 Be more specific in which python interpreter we want to run 2018-05-30 10:05:37 -05:00
Sam Edwards d0ced03ffd CMake: Build direct.motiontrail
This covers pretty much all of direct, except for directd.
2018-05-29 22:57:28 -06:00
Sam Edwards 4b70cb162e CMake: Don't metalib p3distributed when not built 2018-05-29 22:47:28 -06:00
Donny Lawrence a270b0f292 Merge branch 'cmake' of https://github.com/panda3d/panda3d into cmake 2018-05-29 22:55:21 -05:00
Donny Lawrence 5619c3ed90 Make sure HAVE_OPENAL_FRAMEWORK is set correctly 2018-05-29 21:58:43 -05:00
Donny Lawrence a8954d7f67 Don't build GLX support if on macOS 2018-05-29 21:49:00 -05:00
Donny Lawrence 18817e6848 Add travis builds for macOS
This also trims down the build matrix.
2018-05-29 21:08:08 -05:00
Sam Edwards e05380509b CMake: Adjust several forgotten component libraries 2018-05-29 19:48:35 -06:00
Donny Lawrence 87a05913f8 Remove redundant conditional, add missing newline 2018-05-28 17:38:32 -05:00
Donny Lawrence ef0170388f Only link X11 with p3display if HAVE_X11 is enabled. 2018-05-28 16:13:26 -05:00
Donny Lawrence e0bc369174 Make sure libs are installed, delete extraneous whitespace 2018-05-28 15:57:15 -05:00
Sam Edwards 827f322d0e CMake: Update for upstream change 2018-05-27 14:07:26 -06:00
Sam Edwards d0ebc59d32 Merge branch 'master' into cmake 2018-05-27 14:07:05 -06:00
Sam Edwards a504a910b0 CMake: Rename `check` function in checkPandaVersion.h
This mirrors 239f66c on master.
2018-05-27 14:06:58 -06:00
Sam Edwards a251c6dd8f general: Change HAVE_LOCKF to PHAVE_LOCKF
HAVE_LOCKF is already defined by pyconfig.h in
(at least) Python 3.6 - changing the macro name
here avoids warnings
2018-05-27 14:06:14 -06:00
Sam Edwards 24c8ef9887 general: Fix missing include 2018-05-27 14:06:08 -06:00
rdb 239f66cf11 makepanda: fix macOS compile error in CheckPandaVersion
See #327
2018-05-27 15:39:02 +02:00
rdb 8d84c58d73 express: explicitly declare defaulted Datagram copy/move ctor/assign
Fixes #329
2018-05-27 15:38:19 +02:00
rdb 3d49986ce2 char: fix crash during Character destructor (regression)
This was a regression in 0bb81a43c9 which was not keeping an edge case in mind if a weak pointer is locked during object destruction.  This issue was fixed by 525a05ea2b1d00a1db901f883f1755943aeff33c, but that is not enough since it causes CharacterJointEffect::get_character() to return null now, so we need a separate method to check if a CharacterJointEffect belongs to a given character.  This is more efficient, too.

Fixes #330
2018-05-27 15:37:45 +02:00
rdb f2d429b817 express: weakptr.lock() should return null during object destruction
This came up in #330; the Character destructor caused something to call lock() on a weak pointer to that character, which would induce a ref() and unref() pair, but since the refcount was 0, this would call the destructor and thereby create infinite recursion.

I considered instead calling mark_deleted() inside unref() so that the callbacks get to run before the object is actually deleted, and was_deleted() will become true as soon as unref() reaches 0.  However, this would require grabbing the lock in unref() to be fully thread-safe, since we would need to bring the refcount to 0 and mark the object as deleted in one atomic operation, so this would be an unacceptable general performance penalty.

Instead, WeakPointerTo::lock() now atomically increments the reference count if it is not already zero, and returns null otherwise.  This should be safe because the object cannot be deleted while the WeakReferenceList lock is held.
2018-05-27 15:37:03 +02:00
rdb 0de981d0b8 ai: make AICharacter reference counted
This lets one drop the reference to AICharacter after adding it to a flock or AIWorld without crashes.

Also replace the silly and inefficient custom-rolled linked list implementation of AICharPool with a vector, and add additional safety checks.

Fixes #318
2018-05-27 12:59:41 +02:00
Sam Edwards 0ce9dc98b1 general: Move inclusion of checkPandaVersion.h to dtoolbase
This includes it everywhere, meaning developers no longer must
remember to include it in each metalib init file.
2018-05-26 18:39:24 -06:00
Sam Edwards 35ab16d38f makepanda: Update checkPandaVersion.h
This makes it possible to include it multiple times in a single
translation unit, and/or multiple times in a single dynamic
library (and without excess code bloat, too).
2018-05-26 18:39:24 -06:00
Sam Edwards 339e1ce4d8 tests: Update the datagram tests 2018-05-26 18:36:46 -06:00
Sam Edwards 4c4c17cac2 CMake: Flag composite files as generated
No idea why this was commented out.
2018-05-26 18:01:05 -06:00
Sam Edwards e4c9526e08 ffmpeg: Make read_packet return AVERROR_EOF
Newer versions of FFmpeg deprecate returning 0 to indicate
EOF, and instead request use of AVERROR_EOF.

The oldest supported versions of FFmpeg/libav will treat any
error code the same as returning 0.

Fixes #315
2018-05-26 15:17:43 -06:00
Sam Edwards 399f4a33a1 CMake: Check Git commit SHA1
This is for PandaSystem::get_git_commit()
2018-05-25 13:33:47 -06:00
Sam Edwards 2d5d1400be CMake: Remove references to WxWidgets/FLTK
The plugin once used these; it's since been deprecated,
so we don't be needing GUI toolkits anymore.
2018-05-24 18:33:15 -06:00
Sam Edwards 85b8d96919 CMake: Add reminder for when we upgrade to C++17 2018-05-24 14:47:12 -06:00
rdb 5c9705c21c pgraph: fix crash accessing python_tags via dict property
Fixes #326
2018-05-24 22:44:08 +02:00
rdb ddc45e3529 tests: fix broken test case, add more WeakNodePath comparisons 2018-05-24 22:25:20 +02:00
rdb ec04dbed0c gobj: fix static init ordering issue with VertexTransform cycler
This comes up when building with DEBUG_THREADS; there is a PipelineCycler created at static init time, and the type tracking in Pipeline won't work properly if the CData's parent's TypeHandle has not yet been initialized.
2018-05-24 21:40:48 +02:00
rdb 2e7bca90b0 express: fix PointerToArray coercibility regression, fix clear()
This was caused by the assignment operators not being visible to interrogate.
2018-05-24 21:39:54 +02:00
rdb ae8e9d159d tests: add some unit tests for UpdateSeq 2018-05-24 21:39:05 +02:00
rdb 323ddc7d67 putil: fix UpdateSeq::fresh().is_special() return value 2018-05-24 21:37:58 +02:00
rdb 5e0ce969fe Work around clang 3.1 compile error with static constexpr
There is a bug in clang versions before 3.2 (including the one shipped with Xcode) that makes it give a "conflicting types" compile error when there is a static constexpr function defined outside the class.  The way to work around this is either to remove one of the "static" or "constexpr" keywords, or to simply put the definition inline.

See: https://stackoverflow.com/a/17494592/2135754

I would try and upgrade Xcode to version 5 to see if the problem is fixed, but the buildbot still runs OS X Lion (10.7) and the last version of Xcode that works on Lion is 4.6.3, so it seems easier to just apply these workarounds for now.
2018-05-24 14:34:03 +02:00
rdb 8eeab7a26a dxgsg9: fix compile error due to WeakPointerTo changes 2018-05-24 14:26:21 +02:00
rdb 49dfcb09b9 makepanda: refuse building with MSVC versions older than 2015
Panda3D no longer compiles with any version older than Visual Studio 2015 (14.0).

Closes #288
2018-05-23 23:43:36 +02:00
rdb 3077316782 general: use proper deleted funcs instead of stubs with asserts
This gives better compile-time diagnostics and saves on code, while also better communicating intent.
2018-05-23 23:35:27 +02:00
rdb 9fad3dba60 general: remove macros for compatibility with non-C++11 compilers
Now that we require MSVC 2015, we no longer need all this nonsense, so we can write cleaner code.
2018-05-23 23:33:05 +02:00
rdb f45ddcab2f general: switch to C++11 Lockable semantics for mutexes
This renames acquire/release to lock/unlock in order to be compatible with std::lock_guard and std::unique_lock (which will eventually replace the *MutexHolder classes).  It will also allow us to typedef MutexImpl to std::mutex later on.
2018-05-23 20:37:56 +02:00
rdb 3653413cd4 bullet: fix BulletSoftBodyNode::get_node deadlock 2018-05-23 16:55:17 +02:00