Commit Graph

237 Commits

Author SHA1 Message Date
rdb ac089658f3 CMake: Fix error flood if OpenSSL is not present
Fixes #1013
2020-11-17 22:26:14 +01:00
rdb aa0a0d6ab4 CMake: better handling of per-config options, esp. in single-config 2020-05-01 19:53:50 +02:00
rdb 6ad9eeb5a1 CMake: generate panda3d.dist-info directory
This makes pip recognise that Panda3D has been installed and setuptools recognise the build_apps and bdist_apps commands.
2020-04-30 21:37:35 +02:00
rdb 8cb213ce8a CMake: fix broken pzip files on Windows
It seems piping isn't working properly for binary data
2020-04-13 15:10:28 +02:00
Philip Whitfield 11eae3f1f5 Update CompositeSources.cmake
this allows panda to be checked out as a subproject
2020-03-05 22:03:08 +01:00
Leandro (Cerberus1746) Benedet Garcia 5f7809469c general: removed all WIN32, WIN32_VC and friends 2020-02-05 22:45:03 -07:00
Sam Edwards 1046b122a3 CMake: Fix Interrogate macro sometimes passing -D'' 2020-01-22 02:36:41 -07:00
Sam Edwards d0b6e2275d CMake: Remove IS(_NOT)_MINSIZE_BUILD 2020-01-21 18:15:28 -07:00
Sam Edwards ed771e3c8e doc: Update CMake's README 2020-01-12 12:13:23 -07:00
Sam Edwards 28b85d2f58 CMake: Work around CMake issue 20206 2020-01-10 16:48:59 -07:00
Sam Edwards 3104bf3710 CMake: Fix issue with HAVE_X safety checks falsely failing 2020-01-08 20:13:34 -07:00
Sam Edwards fd94a33c56 CMake: When compiling Python to .pyc, optimize with -O
Distros seem to prefer having opt-1 Python modules and don't care
as much about the opt-2.
2020-01-07 11:34:34 -07:00
Sam Edwards 69ff54a3d4 CMake: Break up "GLES" component into OpenGLES1/OpenGLES2 2020-01-07 11:34:34 -07:00
Sam Edwards e08896deb7 CMake: Update panda3d/__init__.py
- Python 2.7 EOL warning is now past tense
- Use os.add_dll_directory() when available (instead of hacking up PATH)
2020-01-06 17:12:37 -07:00
Sam Edwards b739919fe4 CMake: Update FindFFMPEG to locate static ffmpeg dependencies too 2020-01-06 17:12:10 -07:00
Sam Edwards f92b88f35b CMake: Omit Interrogate-generated sources from unity builds
This fixes an include path error when building under a
multi-configuration generator and with CMake 3.16+
2020-01-06 17:12:00 -07:00
Sam Edwards bff568798f CMake: Make FindAssimp pull in libIrrXML as well, if found 2020-01-06 17:11:31 -07:00
Sam Edwards 15c7e6fbe5 CMake: Rename COMPOSITE_* to CMAKE_UNITY_BUILD* where appropriate
This allows us to use 3.16+ unity build support when available,
falling back to our own stuff when not.
2019-12-31 06:48:07 -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
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 bc152f665c CMake: Escape $<LINK_ONLY> in exported packages file 2019-12-05 10:34:47 -07:00
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