2514 Commits

Author SHA1 Message Date
Sam Edwards
cfd603bb8d CMake: Build Python binary modules as MODULE, never SHARED 2018-04-05 16:11:59 -06:00
Sam Edwards
aed544bf5f CMake: Have CMake itself track versions 2018-04-02 15:47:53 -06:00
Sam Edwards
449195a33d CMake: Define appropriate BUILDING_ symbols 2018-03-31 04:24:06 -06:00
Sam Edwards
dd42371610 CMake: Update for upstream changes 2018-03-31 04:24:03 -06:00
Sam Edwards
25b13ad199 Merge branch 'master' into cmake 2018-03-31 04:23:49 -06:00
rdb
84915073e1 Fix compilation warning on MSVC 2015 2018-03-30 20:15:13 +02:00
Sam Edwards
9dd37e9dbc general: Add guards to ensure proper BUILDING_ macros defined
This is designed to sanity-check the buildsystem, ensuring that the
expected BUILDING_ macros are defined at the expected time. It
also helps catch cases where the wrong BUILDING_/EXPCL_ macros
are used.
2018-03-25 13:17:52 -06:00
Sam Edwards
bd2a9d709a dtoolbase: Introduce BUILDING_ defines for each component
This mirrors the prior commit.
2018-03-25 13:17:52 -06:00
Sam Edwards
9739923593 dconfig: Change export macros to EXP*_DTOOL_DCONFIG
This is for consistency with `panda`, which follows this format.
2018-03-25 13:17:52 -06:00
Sam Edwards
775fcb5b0b prc: Change export macros to EXP*_DTOOL_PRC
This is for consistency with `panda`, which follows this format.
2018-03-25 13:17:52 -06:00
Sam Edwards
ad5b45811d dtoolutil: Change export macros to EXP*_DTOOL_DTOOLUTIL
This is for consistency with `panda`, which follows this format.
2018-03-25 13:17:52 -06:00
Sam Edwards
9852ada792 dtoolbase: Change export macros to EXP*_DTOOL_DTOOLBASE
This is for consistency with `panda`, which follows this format.
2018-03-25 13:17:52 -06:00
Sam Edwards
cfd70ebead general: Remove '#pragma interface'/'#pragma implementation'
The GCC documentation states that, as of GCC 2.7.2, these aren't
necessary for proper program behavior. The documentation further
discourages their use because they don't suppress unnecessary code
duplication.

The Panda codebase these days uses "extern template class" instead,
which tells the compiler not to perform implicit template expansion
because an explicit template expansion is available for linking
elsewhere in the program. This is a more compiler-neutral way of
achieving the same thing as '#pragma interface', making
'#pragma interface' not only redundant, it could also mask problems
in the "extern template class" machinery.
2018-03-20 14:36:19 -04:00
Sam Edwards
a4c1b44371 dtoolbase: Remove EXPORT_TEMPLATES define
As of f69354d9fa603ac05dfd924af3844f749fd50cdd, this is just always
expected on all platforms. If it's not defined,
TemplateClass<X>::_type_handle won't link correctly with some compilers
(e.g. Clang) and the lack of 'extern template class' will result in
duplicated code in any case. In short, turning it off causes problems.

makepanda also always turns this on, so it doesn't represent any
optional feature or autodetected platform-specific behavior anyway.
2018-03-20 14:36:19 -04:00
rdb
766b38fb7a dtoolbase: make TypeHandle a constexpr class 2018-03-08 12:58:16 +01:00
Sam Edwards
ebe9e75d84 dtoolbase: Delete unused preprocessor macro
[skip ci]
2018-03-04 20:28:51 -07:00
Sam Edwards
013af2ac4b dtool: Delete 'newheader'
This is a task better handled by editors/scripts.

[skip ci]
2018-03-04 20:28:09 -07:00
rdb
8b6616814d interrogate_module: warn about circular dependencies between classes
This will help us catch cases wherein we inadvertently create a circular dependency between component libraries.  Right now it only checks inheritance and typedefs, but this can be expanded in the future.

Also, sorts the module initialization by dependency topology.  This isn't very important right now, but having this guarantee might help when refactoring module initialization in the future.
2018-02-27 20:23:36 +01:00
rdb
bdb575e766 interrogatedb: add interrogate_type_is_global (+regenerate pydtool) 2018-02-27 19:44:14 +01:00
rdb
162b86c6d9 interrogatedb: fix library name setting for typedefs
Typedefs are evidently always considered "fully defined", so we need to add another condition to the database merging code to prefer the type that is marked "global" when merging two types.
2018-02-27 19:33:18 +01:00
rdb
fa231664bd interrogate: don't mark base types as global 2018-02-27 18:47:51 +01:00
rdb
2450f31ef5 interrogate: remove deprecated and unneeded downcastTo*() functions
They have not been needed for a very long time, and they create an awkward reverse dependency of base classes on derived classes.
2018-02-27 15:06:12 +01:00
Sam Edwards
705fd445f3 dtool: Fix an inconsistent EXPCL/EXPTP 2018-02-26 00:03:09 -07:00
Sam Edwards
c3106411f5 dtool: Remove 'attach'
See #244 for discussion. It's really old, hasn't been used in almost
a decade, and doesn't support the current Git workflow either.
2018-02-25 18:27:10 -07:00
Sam Edwards
9e841800ee CMake: Migrate detection for the physics packages 2018-02-21 02:38:54 -07:00
Sam Edwards
196d780820 CMake: Remove commented-out TODOs regarding unsupported rendering backends 2018-02-20 23:38:39 -07:00
Sam Edwards
17d56279f5 CMake: Migrate FreeType package detection 2018-02-20 19:28:32 -07:00
Sam Edwards
590523ac8c CMake: Rename FindSquish to FindLibSquish
CMake already has a "FindSquish" for finding the GUI testing product.
This minimizes the chances of the wrong module being run on accident.
2018-02-20 18:58:52 -07:00
Sam Edwards
2717c24ffc CMake: Migrate detection of the audio libraries 2018-02-20 18:19:45 -07:00
Sam Edwards
769fd30119 CMake: Remove more HAVE_MESA references 2018-02-20 17:52:33 -07:00
Sam Edwards
3210302caf CMake: Migrate FFmpeg package detection 2018-02-20 17:52:33 -07:00
Sam Edwards
72d668e05a CMake: Migrate zlib package detection 2018-02-20 17:19:21 -07:00
Sam Edwards
0ed64c72ce CMake: Migrate over VRPN detection 2018-02-20 17:02:17 -07:00
Sam Edwards
e882088421 CMake: Remove INSTALL_PYTHON_SOURCE option
It's unused and easy to run "make" in between changes anyway
2018-02-20 13:55:28 -07:00
Sam Edwards
75366484b0 CMake: Migrate over Nvidia Cg package detection 2018-02-19 00:05:49 -07:00
Sam Edwards
ecfd924f0d CMake: Remove references to unsupported versions of DirectX. 2018-02-18 23:34:02 -07:00
Sam Edwards
a9717cf3ab CMake: Migrate detection of libsquish 2018-02-18 21:41:33 -07:00
Sam Edwards
71836f09e3 CMake: Remove references to genPyCode 2018-02-18 20:42:59 -07:00
Sam Edwards
283db1fb7a CMake: Implement detection for FFTW3 2018-02-17 23:35:43 -07:00
Sam Edwards
84e7539f99 Merge branch 'master' into cmake 2018-02-17 23:35:19 -07:00
Sam Edwards
68b1ecfd32 parser-inc: Add stub for FFTW3 header 2018-02-17 23:31:08 -07:00
Sam Edwards
5c4ef25bb7 CMake: Use proper target_use_packages definitions for Eigen 2018-02-17 16:56:35 -07:00
Sam Edwards
5c1ff5fdbc CMake: Migrate detection of libtar 2018-02-14 17:38:25 -07:00
Sam Edwards
f2e9e25230 CMake: Remove lingering references to Helix 2018-02-14 17:29:04 -07:00
Sam Edwards
68cb953479 CMake: Migrate JPEG/PNG/TIFF discovery to Package.cmake 2018-02-14 17:27:50 -07:00
Sam Edwards
ab7dbebf3f general: Remove lingering references to Helix
Support for Helix has been dropped long ago; it's very unlikely to return.
See also de4280ea209d567eedfa08084da0dea761ad5917.
2018-02-14 17:26:35 -07:00
Sam Edwards
0b68316b3f CMake: Migrate OpenSSL detection to Package.cmake 2018-02-14 16:46:23 -07:00
Sam Edwards
021728f4b3 CMake: Start the process of organizing packages into Package.cmake 2018-02-14 16:46:20 -07:00
Sam Edwards
b11e15cec5 CMake: HAVE_MESA isn't really a thing anymore 2018-02-14 14:38:00 -07:00
Sam Edwards
897e3b9e5b CMake: Nuke PYTHON_NATIVE
The old Python bindings aren't a thing anymore. This is assumed ON.
2018-02-10 21:15:41 -07:00