Commit Graph

3016 Commits

Author SHA1 Message Date
rdb 4ef8e5228e interrogate: fix ability to return ReferenceCount-like classes
Classes with virtual ref(), unref() and get_ref_count() methods, like RecorderBase, could not be returned by PT() from methods because they didn't inherit from ReferenceCount.  However, classes do not need to inherit ReferenceCount to be able to be tracked by a PointerTo, and defining an abstract base class with pure virtual ref()/unref()/get_ref_count() is a way to avoid dual inheritance of ReferenceCount.
2020-02-22 12:10:55 +01:00
Leandro (Cerberus1746) Benedet Garcia 5f7809469c general: removed all WIN32, WIN32_VC and friends 2020-02-05 22:45:03 -07:00
rdb b272af8bbf Merge branch 'cmake' 2020-01-22 11:20:51 +01:00
Sam Edwards d0b6e2275d CMake: Remove IS(_NOT)_MINSIZE_BUILD 2020-01-21 18:15:28 -07:00
Sam Edwards 36e06236a9 CMake: Remove IS(_NOT)_DEBUG_BUILD 2020-01-21 17:42:17 -07:00
Sam Edwards 68f1083dbf CMake: Make HAVE_VIDEO4LINUX dependent on Linux 2020-01-21 17:07:04 -07:00
rdb 601fc8f46a dtool: remove obsolete PandaVersion.pp
This file was used by ppremake and is no longer used by makepanda.
The version number should instead be obtained from the setup.cfg file in the root.
2020-01-13 15:14:21 +01:00
rdb 1bb4a032aa Drop support for Windows XP 2020-01-13 15:06:44 +01:00
rdb 2960ae60e2 Bump version number on release/1.10.x branch to 1.10.6
[skip ci]
2020-01-13 15:05:39 +01:00
Sam Edwards 572019bd50 CMake: Remove reference to PhysX 2020-01-12 13:53:26 -07:00
Sam Edwards 151d51ef09 CMake: Autodetect THIRDPARTY_DIRECTORY when in source root 2020-01-12 12:02:22 -07:00
Sam Edwards a1d43f7b88 CMake: Fix WANT_PYTHON_VERSION not always being respected 2020-01-08 21:03:52 -07:00
Sam Edwards ce6caa8d3e CMake: `/etc/*.prc` -> `/etc/panda3d/*.prc` 2020-01-07 17:04:30 -07:00
Sam Edwards 0aa599feeb CMake: Take away the HAVE_TINYDISPLAY option
This is at least until we can support building it, so that
other components in Panda don't assume TINYDISPLAY is present.
2020-01-07 13:16:51 -07:00
Sam Edwards b00d7b23bc CMake: Use `CMAKE_FIND_PACKAGE_PREFER_CONFIG` to control `find_package` override 2019-12-31 06:48:06 -07:00
Sam Edwards 74e9c610d3 CMake: Don't assume <PackageName>_FOUND will always be caps
This is more consistent with the new find_package() behavior,
especially when CONFIG mode is involved.
2019-12-31 06:47:34 -07:00
rdb b78b7be326 Merge branch 'release/1.10.x' 2019-12-30 01:50:54 +01:00
rdb ac85b05400 py_compat: fix _PyObject_CallNoArg in Python 3.5 2019-12-25 16:32:19 +01:00
Sam Edwards cdc16291dd CMake: `SKIP_COMPOSITING` -> `SKIP_UNITY_BUILD_INCLUSION`
The latter is what CMake (3.16+) itself uses; we should start using
CMake's own unity build capabilities if available.
2019-12-24 17:20:43 -07:00
Sam Edwards 10760d5f7a CMake: Properly redetect Python if WANT_PYTHON_VERSION changes 2019-12-24 16:16:31 -07:00
pmp-p 8615e25a12 interrogate: use fully qualified module name in PyModule_Create
This is helpful when static linking and explicitly initializing the modules.

Closes #308
2019-12-11 16:49:42 +01:00
rdb 9565d99fab Merge branch 'release/1.10.x' 2019-12-08 15:18:51 +01:00
rdb 97a19c278b parser-inc: define __SIZE_TYPE__ and __PTRDIFF_TYPE__
This fixes an Interrogate parse error in termux when /usr/include gets added as -S argument
2019-12-08 10:28:50 +01:00
Sam Edwards e474350a48 CMake: Add a "Coverage" configuration, when using GCC/Clang 2019-12-05 10:35:25 -07:00
Sam Edwards 6bde9423df CMake: Don't pass GNU-like -f options to clang-cl 2019-12-05 10:34:47 -07:00
Sam Edwards 5c98b793a2 CMake: Make sure C++11 is marked as the required standard 2019-12-05 10:34:47 -07:00
Sam Edwards cfedd71093 CMake: Disable searching macOS frameworks when using THIRDPARTY_DIRECTORY 2019-12-05 10:34:47 -07:00
Leandro Benedet Garcia 71dfc51f8a general: Changed macros and definitions for the engine to compile with MinGW (#793) 2019-12-02 09:21:01 -07:00
Leandro Benedet Garcia ae33d62978 general: Update EXPCL declarations to be MinGW-friendly (#792) 2019-11-27 11:25:24 -07:00
Sam Edwards 4556059c90 CMake: Use find_program to detect host tools when cross-compiling
In the future, we should also try to do find_package(Panda3D) to use
the host tools even if Panda3D isn't in a system path.
2019-11-13 15:30:26 -07:00
Sam Edwards f377bdfb29 CMake: Copy thirdparty/**/*.dll to bin/ directory 2019-11-13 15:30:23 -07:00
Sam Edwards ae59bd031f CMake: Fix typo 2019-11-11 20:16:00 -07:00
Sam Edwards 0b342d0f9f CMake: Don't use PythonInterp/PythonLibs when FindPython available 2019-11-11 00:48:14 -07:00
Sam Edwards 1c866dff78 CMake: Don't override Python_ROOT 2019-11-11 00:48:11 -07:00
rdb 1b863ead55 cppparser: fix finding types in explicitly specialized template class 2019-11-09 20:26:33 +01:00
Sam Edwards 9b7bcf2564 Merge branch 'master' into cmake 2019-11-07 21:21:04 -07:00
rdb d2bd4181e0 interrogate: set tp_base to DTOOL_SUPER_BASE and tp_basicsize to 0
The tp_basicsize field, as well as a few others, seem to be inherited from whatever is set in tp_base.  In absence of a tp_base, Python will set it to PyBaseObject_Type, which is not at all correct for Panda types.
2019-11-06 10:49:53 +01:00
Sam Edwards 856754a3de general: Don't abuse PyErr_Restore
The intended purpose of this function is to restore an exception
that has already been raised and saved with PyErr_Fetch. It should
not be used to raise new exceptions nor should it be used to clear
the current exception.

The especially egregious example is
`PyErr_Restore(exc_type, nullptr, nullptr);`
as the null value may not be handled correctly.
2019-11-05 18:44:20 -07:00
Sam Edwards 0e0b2186c7 CMake: Add #line directives to interrogate_preamble_python_native 2019-11-04 16:43:12 -07:00
Sam Edwards cf59d3d983 CMake: Remove p3dtoolconfig from build
It's just p3prc now, so instead we install some symlinks
2019-11-04 14:02:06 -07:00
Sam Edwards 5b4ea0e277 CMake: Proper Standard compiler flags for MSVC 2019-11-04 13:41:20 -07:00
rdb a72be90f17 Merge branch 'release/1.10.x' 2019-10-29 23:13:22 +01:00
rdb 4098f55d70 dtoolutil: record stdlib (libc++ vs libstdc++) in PandaSystem
This is particularly relevant on macOS, for finding out which stdlib Panda was compiled with.
2019-10-25 10:21:30 +02:00
Sam Edwards 12c16eb9ff Merge branch 'master' into cmake 2019-10-15 23:43:25 -06:00
Sam Edwards 9ecaa0056b CMake: Break out p3interrogatedb as a first-class library 2019-10-15 23:27:03 -06:00
rdb 247f3c415a Merge branch 'release/1.10.x' 2019-10-08 19:50:48 +02:00
rdb c6990b9f9b prc: fix possible stack overflow in StreamReader
Fixes #754
2019-10-08 19:44:23 +02:00
rdb 3c9591cfbf interrogate: envelop function calls in parentheses
This reduces the risk of calling a preprocessor macro instead of a method.
2019-10-08 19:43:34 +02:00
rdb fb5440bd07 cppparser: hack fix for method defs in parentheses 2019-10-08 19:43:34 +02:00
rdb 657af0edb5 cppparser: don't expand function-style macro if not followed by ( 2019-10-07 18:38:21 +02:00
Sam Edwards 5961cc2ee0 Merge branch 'master' into cmake 2019-10-05 15:00:49 -06:00
Sam Edwards aadcb179d6 CMake: Change default build type to Standard 2019-09-21 02:45:46 -06:00
Sam Edwards 9bb59b03b9 CMake: Add several essential flags
See GH #717 for relevant discussion
2019-09-19 22:33:11 -06:00
Sam Edwards bd1605907e CMake: Rename 'Distribution' config to 'Standard'
This is the configuration shipped to Python developers
in the form of the public SDK.
2019-09-19 22:18:28 -06:00
Sam Edwards 8429f50d3a CMake: Use -fno-rtti on most build configurations 2019-09-19 04:44:46 -06:00
rdb 5242b6a8b4 interrogate: remove apparently-unused definition 2019-09-16 21:22:16 +02:00
rdb 9d14117ad3 Merge branch 'release/1.10.x' 2019-09-16 21:20:20 +02:00
rdb 343c808fc4 dtoolbase: fix repeated calls to TypeRegistry::ptr() in register_type 2019-09-16 21:09:15 +02:00
rdb f4926bff20 Fix a variety of ABI compatibility issues
We need third-party extensions that link with the Panda3D libraries to continue to work when shipping them with the optimized libraries that deploy-ng uses.  To do this, we need the optimized build not to omit symbols that these extensions might depend on.
2019-09-16 03:33:09 +02:00
rdb 5a23821ac1 notify: work around GCC 4.7 compilation issue with constexpr
This can be reverted on master if we can verify that it does work with GCC 4.8.
2019-09-16 03:27:22 +02:00
rdb d7681b23d3 notify: fix ABI incompatibility with NDEBUG on Windows
On MSVC (not with GCC/clang), adding `static` changes the mangled symbol name, so we shouldn't add that when building with NDEBUG.  On GCC/clang, it doesn't, but adding `const` does, and C++11 rules make `constexpr` methods implicitly `const`, so I've removed the `constexpr` variants from NotifyCategoryProxy for now.  Hopefully the compiler is still smart enough to compile out any references when compiling with NDEBUG.
2019-09-15 20:24:58 +02:00
Mitchell Stokes 660249a5cc Remove p3d/AppRunner/plugin system
Co-authored-by: rdb <git@rdb.name>

Closes #734
2019-09-10 16:49:57 +02:00
rdb 2c42cfcc1a Merge branch 'release/1.10.x' 2019-09-10 16:34:11 +02:00
rdb 72b1814331 interrogate: fix comment in C bindings for default arguments
Fixes #732
2019-09-10 09:37:25 +02:00
rdb b3f3f53e01 interrogate: fix missing std:: prefix for string_holder 2019-09-10 09:37:25 +02:00
Paul m. p. P 35b80d0751 interrogate: add missing async/await keywords
Closes #735
2019-09-10 09:37:24 +02:00
Paul m. p. P a667a303bd parser-inc: fix missing include to pick up PyObject
Closes #723
2019-09-06 16:02:51 +02:00
rdb 9415ca811d parser-inc: remove obsolete libtar.h file 2019-09-06 16:02:51 +02:00
Sam Edwards 9512b2274b CMake: Remove libtar, unneeded downloadertools progs 2019-09-06 04:07:42 -06:00
Sam Edwards dbe7a2f94b Merge branch 'master' into cmake 2019-09-06 04:05:12 -06:00
rdb b4fd82b812 load_dso: we can expect LoadLibraryExW to be available 2019-09-06 09:46:57 +02:00
rdb d92b440617 Merge branch 'release/1.10.x' 2019-09-06 09:46:20 +02:00
Sam Edwards 5654e64645 CMake: First batch of improvements per review
Addressing feedback per @rdb in GitHub #717
2019-09-06 01:11:50 -06:00
rdb 57ff1a5441 interrogate: remove vestigial code causing assert for C bindings
Fixes #722
2019-09-03 12:15:02 +02:00
Sam Edwards 5fa4af9189 CMake: Rely on GNUInstallDirs to specify install paths
This makes multiarch OSes happy as they can dictate that
64-bit libraries go into 'lib64'
2019-08-31 00:48:42 -06:00
Sam Edwards 1a654cba04 CMake: Record the location that headers are installed
This populates INTERFACE_INCLUDE_DIRECTORIES on the targets
after they're installed.
2019-08-30 22:58:18 -06:00
Sam Edwards cde25670d6 CMake: Remove some uses of CFG_INTDIR
It's not install() friendly, so we use $<CONFIG> instead in
some cases. Unfortunately, $<CONFIG> isn't friendly with
add_custom_command's OUTPUT options while CMAKE_CFG_INTDIR
explicitly is, so we use a hybrid approach until CMake gets
its act together.
2019-08-28 17:12:01 -06:00
Sam Edwards 8588ddc3dc CMake: When building on MSVC, add /bigobj to compiler where necessary 2019-08-25 15:54:02 -06:00
Sam Edwards 855d217f35 CMake: Update for upstream changes
- Miles is gone; remove all references
- pystub is gone; remove all references
- dcparser uses Interrogate extensions properly; don't depend on Python
- stringStream* moved to express from downloader
2019-08-24 18:07:22 -06:00
Sam Edwards 19ed9f6b47 Merge branch 'master' into cmake 2019-08-24 18:07:12 -06:00
Sam Edwards 60c1570db8 CMake: Add support for makepanda-style thirdparty directories 2019-08-23 16:09:13 -06:00
rdb 1ec7c5d20e Delete pystub, it is no longer needed or used for anything. 2019-08-23 18:58:53 +02:00
rdb 0e4597fb2e cppparser: fix finding types in explicitly specialized template class 2019-08-23 13:15:36 +02:00
Sam Edwards c62d5fbe35 CMake: Fix incorrect comment 2019-08-22 14:58:43 -06:00
Sam Edwards 9ca4f19b90 CMake: Make sure we define flags variables for Distribution
This fixes a CMake error with the MSVC generator, but it's also
generally good to have around.
2019-08-22 14:58:43 -06:00
Sam Edwards 896a8dbca5 CMake: Some more changes to p3pystub
- Don't build it at all on Win32 where it isn't needed
- Don't link it into interrogate_module (oops, missed that)
2019-08-22 14:58:43 -06:00
rdb d5a576f3cb Bump version number on release/1.10.x branch to 1.10.5 2019-08-20 13:23:11 +02:00
rdb a40228202b Merge branch 'release/1.10.x' 2019-08-18 22:34:23 +02:00
Sam Edwards d008037244 CMake: Use Python::Module, not Python::Python, for extension linkage
CMake 3.15+ provides the former, which extension modules should link
against in order to ensure the ABI-appropriate linkage for the
platform.

For older versions of CMake, try to hack up the correct linkage for
the platform. If the platform isn't recognized, tell the user to
upgrade CMake.

This also tweaks p3pystub just a bit, since now it's actually relied
upon to resolve runtime link issues when p3dcparse pulls in direct,
as p3dcparse doesn't link against Python at all.
2019-08-15 16:47:53 -06:00
rdb df8ccdb7ab Add support for Python 3.8 2019-08-13 17:48:32 +02:00
rdb b141483b22 notify: fix macOS build, don't include <atomic> if we don't have it 2019-08-13 13:48:17 +02:00
rdb bc563c8664 Merge branch 'release/1.10.x' 2019-08-03 11:24:05 +02:00
rdb a86bdcfe3f notify: support setting notify-output after static init time
Previously it was only possible to set this in the default-loaded Config.prc file; now it is possible to set this at any time, though it can only be set once from its default value and not changed after it has already been set to something other than the default value.
2019-08-03 10:36:00 +02:00
rdb 0ce25d0e30 prc: fix a compilation warning in encryptStream.cxx 2019-07-10 14:12:05 +02:00
rdb 99e6a1d9b8 dtoolutil: iostream should use Py_ssize_t instead of int 2019-07-10 14:11:53 +02:00
rdb fa62344452 express: better fix for encrypt_string Python 3 issues
A workaround for the bug described in #684 was made in e080d33e31 but this fix is significantly cleaner.

Unit test was added.
2019-07-10 13:46:42 +02:00
rdb d5788d9422 Merge branch 'release/1.10.x' 2019-07-10 12:22:56 +02:00
rdb e080d33e31 interrogate: temp hack to make encrypt_string return bytes
Fixes #684
2019-07-10 09:54:57 +02:00
Donny Lawrence 3160c77bc3 CMake: MODULEs should use .dylib, not .so 2019-06-27 17:38:18 -06:00
Donny Lawrence 603e240788 CMake: Allow for config-specific dtool-config vars
This makes it so some options can be toggled on a per-configuration
basis (for multi-config generators), as long as they don't affect what
targets are actually being generated.
2019-06-27 17:38:18 -06:00