Sam Edwards
24ba0d0e72
CMake: Fix Interrogate macro not working on CMake 3.0.2
2019-06-25 03:34:51 -06:00
Sam Edwards
d3ef7bf12d
CMake: Avoid using continue()
...
This is, sadly, not added until CMake 3.4.
This commit avoids continue() by restructuring the loops so
that the conditions previously being used for continue() are
no longer needed. The alternative would've been to encase the
loop bodies massive ifs, but I find that to be a poor choice
for readability.
2019-06-25 03:34:51 -06:00
Sam Edwards
1a237670e3
CMake: Make Interrogate macro ensure output directories exist
...
This was causing problems on the Xcode generator under macOS,
which wasn't automatically creating the output directories
for us.
2019-06-05 02:27:48 -06:00
Sam Edwards
81f0fb78f2
CMake: Fix Interrogate macro not working on Windows
...
This was broken by 2d5bdb3515 ,
which wrote -D flags as -D'symbol' -- this choked Windows,
so this commit turns it off in that case.
It's a shame there's no generator expression to escape quotes,
otherwise this hack wouldn't even be needed.
2019-06-03 22:02:54 -06:00
Sam Edwards
2d5bdb3515
CMake: Fix Interrogate macro's -D flag generator
...
This wraps everything in 'single-quotes' so that defines that
contain spaces and/or double-quotes work properly.
2019-06-02 01:37:48 -06:00
Sam Edwards
26e60fe106
CMake: Fix the ConcatenateToCXX script leaving off a null byte
...
This also adds a _size symbol. Who knows, maybe something will
find that useful.
2019-06-02 01:37:43 -06:00
Sam Edwards
059c78bade
CMake: Restructure multi-configuration binary directory layout
...
This changes the structure to use paths like `build/Release/lib`
instead of `build/lib/Release`, so that the `build/Release` directory
more closely mimics the structure of `build` when in single-configuration
mode.
2019-05-01 23:44:47 -06:00
Sam Edwards
49865c103a
CMake: Modify install_python_package() so it keeps the build-dir copy up-to-date too
2019-05-01 23:44:47 -06:00
Sam Edwards
f744951d25
CMake: Make Interrogate invocation friendly to multi-config generators
2019-04-27 22:45:51 -06:00
Sam Edwards
cfa4878955
CMake: Use the same host_ prefix for pzip as we do for interrogate
...
This is for better cross-compilation friendliness, so the pzip
binary used during the build doesn't have to be the same as the
pzip binary produced during the build.
2019-04-27 22:45:51 -06:00
Sam Edwards
873c6b48d6
CMake: Generate interrogate_preamble_python_native.cxx at build time
...
This also makes sure the file is only rebuilt if the inputs
change, saving on unnecessary rebuilds.
2019-04-16 19:44:03 -06:00
Sam Edwards
b3f5c38ef3
CMake: Remove references to "panda3d" from Interrogate
2019-04-14 23:10:49 -06:00
Sam Edwards
6097d34ead
CMake: Neatly format everything for readability and consistency
2019-04-14 22:37:18 -06:00
Sam Edwards
ed67f98a05
CMake: Update some of the cmake/* docs
2019-04-14 20:03:18 -06:00
Sam Edwards
fbde7c0b62
CMake: Fix invocation of flex
...
This removes the space between '-o' and the output filename,
which apparently some builds of flex (e.g. on Windows) dislike.
2019-03-18 04:18:20 -06:00
Sam Edwards
b4a532f1d0
CMake: Add support for building against FCollada
2019-03-18 01:56:38 -06:00
Sam Edwards
3a9353c0ca
CMake: Build 'contrib'
2019-03-18 01:56:38 -06:00
Sam Edwards
7097f5b0e1
CMake: Move "framework" to its own component
...
It can depend on graphics backends, so it can't go in Core.
2019-02-23 02:54:01 -07:00
Sam Edwards
d961514892
CMake: Use string/list(APPEND foo ...) instead of set(foo ${foo} ...)
2019-01-19 17:01:36 -07:00
Sam Edwards
2298aba578
CMake: Correct order for {opus,vorbis}file libs
2019-01-13 14:24:35 -07:00
Sam Edwards
052004d06b
CMake: Detect Opus
2019-01-13 12:04:48 -07:00
Sam Edwards
8a2375a5f1
CMake: Detect Ogg+Vorbis
2019-01-13 11:58:09 -07:00
Sam Edwards
615a1d205d
CMake: Modify Find*.cmake to trust find_*()'s caching
2019-01-13 10:45:03 -07:00
Sam Edwards
986377b131
CMake: Make CompositeSources skip sources with SKIP_COMPOSITING property
2019-01-12 15:00:03 -07:00
Sam Edwards
8d94790d3a
CMake: Exclude .c files from compositing
2019-01-12 15:00:03 -07:00
Sam Edwards
edb9cb31a5
CMake: Exclude .c files from Interrogate
2019-01-12 15:00:01 -07:00
Sam Edwards
654abdc5eb
CMake: Detect when to set OPENCV_VER_23/OPENCV_VER_3
2019-01-06 15:37:14 -07:00
Sam Edwards
30dd14c991
CMake: Fix "whitelisted property" error from CMake <3.8
2019-01-03 11:40:57 -07:00
Sam Edwards
f01303a0b3
CMake: Fix exported packages on Windows
2019-01-03 06:01:57 -07:00
Sam Edwards
18d5c983de
CMake: Make Python static library names use '.'
...
This is to be consistent with makepanda as of cedd4172c4 .
2019-01-02 06:08:15 -07:00
Sam Edwards
bddd7c1b4b
CMake: Generate/install exported target sets
2018-12-27 17:39:22 -07:00
Sam Edwards
b20c6e801c
CMake: Add an export_packages() function to export PKG::*
...
This is needed to support install(EXPORT)
2018-12-27 17:20:25 -07:00
Sam Edwards
8b6a2cfd09
CMake: Update add_python_module to support COMPONENT
2018-12-06 17:48:03 -07:00
Sam Edwards
9fffb5605a
CMake: Update Python install macros to accept COMPONENT and EXPORT
2018-12-06 17:47:19 -07:00
Sam Edwards
b3e257746e
CMake: Oops, fix where `panda3d` Python package goes
2018-12-05 19:51:04 -07:00
Sam Edwards
58dd889165
CMake: Simplify Interrogate.cmake's add_python_module() keyword handling
2018-12-05 18:56:29 -07:00
Sam Edwards
e49306fec9
CMake: Wrap target names in $<TARGET_NAME:...>
...
This helps CMake's export generator understand the expression.
2018-11-28 16:13:05 -07:00
Sam Edwards
9be6b6b314
CMake: Work around bug in CMake 3.0.2
...
CMake versions that old insist that source files
in the binary directory be specified absolutely
or do not contain `..`, so we do the former.
2018-11-28 14:05:32 -07:00
Sam Edwards
f59c6bb2bf
CMake: Make FindODE link against libccd when present
...
This fixes building against the macOS/Homebrew version of ODE.
2018-11-15 02:24:28 -07:00
Sam Edwards
7f8d7366dc
CMake: Update for upstream Interrogate changes
...
- "igateruntime" is no longer a thing
- interrogate_module embeds a preamble; we have to provide it
- WindowProperties now has an extension
2018-11-12 19:16:28 -07:00
Sam Edwards
1ae736f881
CMake: Detect and build support for Assimp
2018-11-12 15:49:08 -07:00
Sam Edwards
2b1554a44c
CMake: Rename "config_package" function to "package_status"
...
The latter name is more consistent with what it does:
indicates the status/purpose/options of the package to
the user.
2018-11-08 21:15:00 -07:00
Sam Edwards
3050203e24
CMake: Update add_metalib() to support exports
...
This allows exporting (a stub function that forwards to) a
function that returns a value - it's particularly useful in
the graphics plugins for the "get_pipe_type_foo()" functions.
This also frees up CMake from needing to use any of the source
files in the metalibs/*/ directories.
2018-11-08 20:15:08 -07:00
Sam Edwards
d43767c617
CMake: Find OpenEXR, support it in pnmimagetypes
2018-11-07 19:56:01 -07:00
Sam Edwards
16be0770e7
CMake: Fix libCgGL linkage in FindCg.cmake
...
This involves both fixing the capitalization of "CgGL" and only adding
libraries to CG_LIBRARIES when they're found.
2018-11-06 02:07:08 -07:00
Sam Edwards
9222bc6d31
CMake: Detect OpenCV/ARToolKit, build p3vision
...
For now, p3vision is only built if either OpenCV or
ARToolKit is available. It does contain some generic
webcam access code, so it might be worth building it
when that's available.
2018-11-03 22:51:14 -06:00
Sam Edwards
3a5c158b5a
CMake: Fix FindVRPN so it also finds VRPN's quat library
2018-11-03 22:51:12 -06:00
Sam Edwards
15a78c55bc
CMake: Detect and use HarfBuzz when available
2018-11-02 23:37:26 -06:00
Sam Edwards
f701e36aa5
CMake: Detect VRPN and build support for it when present
...
I inadvertently rewrote FindVRPN.cmake doing this - I didn't
think to check if it already existed before overwriting.
Oh well, the new version is a bit simpler.
2018-11-02 21:08:00 -06:00
Sam Edwards
7de4b39f6e
CMake: Put generated Interrogate files under the right build directory
...
That is, they should appear under the build directory of the
component library they're Interrogating; this is just an
organizational change to keep the cmake/panda/ directory from
accumulating Interrogate clutter.
2018-11-02 01:20:03 -06:00