Commit Graph

215 Commits

Author SHA1 Message Date
Sam Edwards 9512b2274b CMake: Remove libtar, unneeded downloadertools progs 2019-09-06 04:07:42 -06: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
Sam Edwards 13a19109d4 CMake: Remove redundant -DNDEBUG
This reverts a42f1a49a4, which should
have been reverted by faced9aa49.
2019-08-31 15:07:03 -06: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 faced9aa49 CMake: Grab all CMAKE_CXX_FLAGS(_<CONFIG>) -Ddefines for Interrogate 2019-08-30 16:53:45 -06:00
Sam Edwards a42f1a49a4 CMake: Interrogate needs -DNDEBUG when -DNDEBUG is passed as a flag
Some buildsystems (Gentoo's Portage, to be specific) are very
roughshod about how they use CMake, and might bypass the
"configuration types" system altogether, passing their own release
flags instead. This change detects that and ensures that Interrogate
picks up the NDEBUG flag when it's specified manually.
2019-08-29 23:09:28 -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 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 55cfc6c2b9 CMake: Pass _MSC_VER to Interrogate under MSVC 2019-08-24 18:07:07 -06:00
Sam Edwards fc54251f61 CMake: Fix PandaModules.py not copying 2019-08-23 20:35:50 -06:00
Sam Edwards afe7ffb964 CMake: Fix several modules' search behavior
This makes these modules behave better when encountering
the makepanda thirdparty/ directory.
2019-08-23 16:09:13 -06:00
Sam Edwards 6cb62d1d18 CMake: When zlib isn't available, run_pzip() should copy at build-time
This prevents copying to configurations that the user isn't going
to build, and also plays nice with multi-configuration generators
where the configuration isn't known until build-time.
2019-08-22 14:58:43 -06:00
Donny Lawrence 10abe6e216 CMake: Remove usages of string(APPEND ...) 2019-06-27 17:38:18 -06:00
Donny Lawrence 89bc83c48f CMake: Suppress $(EFFECTIVE_PLATFORM_NAME). 2019-06-27 17:38:18 -06:00
Donny Lawrence f0b4d7637b CMake: Separate composite files by extension. 2019-06-27 17:38:18 -06:00
Donny Lawrence 3eb1895811 CMake: Use a generator expression to mitigate make's warning spam on the Xcode generator. 2019-06-27 17:38:18 -06:00
Donny Lawrence cb0def4eb3 CMake: Defer pzip's directory creation to build-time. 2019-06-27 17:38:18 -06:00
Donny Lawrence f0c9772396 CMake: Move copying of models to build-time. 2019-06-27 17:38:18 -06:00
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