Commit Graph

81 Commits

Author SHA1 Message Date
rdb ebb556a866 CMake: build unit test runner 2026-01-24 20:28:07 +01:00
rdb 4ca495d828 CMake: Add separate BUILD_TOOLS option to build binaries
This is separate from BUILD_PANDATOOL, which builds the pandatool tree
2024-08-12 16:39:20 +02:00
rdb 96b2f3a4d5 CMake: Split out Objective-C++ flags on macOS to fix crash
This now requires CMake 3.16

This is a similar fix as 987f2f036b but for CMake
2023-05-08 20:00:39 +02:00
rdb 264747d213 CMake: Drop support for CMake versions below 3.13
We are already using target_link_options, and while it's possible to keep supporting older versions, it doesn't sound worth it.  I can revert this out if someone gives me a really good reason to.
2022-03-09 16:23:37 +01:00
rdb 1db3bb4ee6 dmodels: Delete dmodels tree, merge into models folder instead
Also eliminates need for flt2egg at build time

Fixes #1075
2020-12-29 18:40:49 +01:00
rdb 2461fc0917 CMake: Remove accidental debug message 2020-12-29 16:06:22 +01:00
rdb 4747e6e4df CMake: Fix CMAKE_CONFIGURATION_TYPES not including Coverage
Coverage is added based on the value of CMAKE_CXX_COMPILER_ID, which isn't known until after the project() call.

This fixes a regression in f26f7d2226
2020-12-22 16:48:12 +01:00
rdb f26f7d2226 CMake: Fix CMAKE_CONFIGURATION_TYPES not being set properly in the cache 2020-12-21 23:31:20 +01:00
rdb 2bb0a0a77c CMake: Set default value for CMAKE_OSX_DEPLOYMENT_TARGET
CMake versions older than 3.19 choose the sysroot based on the deployment target, so this does result in it choosing the 10.9 SDK even when targeting arm64, so we need to work around that.
2020-12-19 00:13:19 +01:00
rdb aa0a0d6ab4 CMake: better handling of per-config options, esp. in single-config 2020-05-01 19:53:50 +02:00
rdb f56f06b65c CMake: fix missing Coverage config in multi-config generators 2020-04-25 10:34:12 +02:00
rdb 565f97b3b9 CMake: properly default build type to Standard
This wasn't being set properly because it needs to be set before the project() call
2020-04-13 15:10:20 +02:00
rdb 2cb8f69f61 CMake: enable CMP0091, fixes lack of /MD flag with Ninja+clang-cl 2020-04-13 13:19:12 +02:00
Philip Whitfield df6c79f1b3 CMake: use CMAKE_CURRENT_SOURCE_DIR
Closes #878
2020-03-08 10:41:58 +01:00
Sam Edwards 1204de6e09 CMake: Set CMP0072 (prefer glvnd over direct libGL link) 2020-01-08 17:02:14 -07:00
Sam Edwards e474350a48 CMake: Add a "Coverage" configuration, when using GCC/Clang 2019-12-05 10:35:25 -07: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 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 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 60c1570db8 CMake: Add support for makepanda-style thirdparty directories 2019-08-23 16:09:13 -06:00
Donny Lawrence 89bc83c48f CMake: Suppress $(EFFECTIVE_PLATFORM_NAME). 2019-06-27 17:38:18 -06:00
Donny Lawrence 20db4115b8 CMake: Add temporary solution for generating dtool_config.h
Eventually, we'll want to customize dtool_config.h based on the
configuration being used, but this should be good enough for now.
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 d058cb16fd CMake: Don't export(PACKAGE) when cross-compiling
When cross-compiling, the build directory won't contain
anything useful to the host system. Therefore, we shouldn't
register the build directory in CMake's package registry.
2019-05-29 16:59:22 -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 6097d34ead CMake: Neatly format everything for readability and consistency 2019-04-14 22:37:18 -06:00
Sam Edwards ac16852e32 CMake: Generate/install Panda3DConfigVersion.cmake
This allows people to do find_package(Panda3D) by version.
2019-03-18 04:18:20 -06:00
Sam Edwards 3a9353c0ca CMake: Build 'contrib' 2019-03-18 01:56:38 -06:00
Sam Edwards 8c4dfd7a70 CMake: Move compiler flag detection to its own file 2019-01-19 13:22:20 -07:00
Sam Edwards 768a8d62e9 CMake: Use -fvisibility=hidden everywhere supported 2019-01-11 07:50:27 -07:00
Sam Edwards 9ee4f1f4e2 CMake: Test for -f(no-)exceptions support before using it 2019-01-11 07:50:13 -07:00
Sam Edwards cfa1f043dd CMake: Parse project version string out of setup.cfg 2019-01-06 15:45:50 -07:00
Sam Edwards aa9a195665 CMake: Stop CMake from adding -rdynamic by default 2019-01-02 06:02:31 -07:00
Sam Edwards bddd7c1b4b CMake: Generate/install exported target sets 2018-12-27 17:39:22 -07:00
Sam Edwards 99fee1a64d CMake: Assign COMPONENT and EXPORT to all targets 2018-12-06 17:48:44 -07:00
Sam Edwards 368cdc2802 CMake: Move pandac.* generation to be part of direct 2018-12-01 14:43:41 -07:00
Sam Edwards 2c0b079dc9 CMake: Disable C++ exceptions everywhere that doesn't request them 2018-10-15 23:52:36 -06:00
Sam Edwards 86d137d410 CMake: Windows static libraries should be prefixed with "lib" 2018-10-07 00:51:26 -06:00
Sam Edwards 53920e7aee CMake: Move __init__.py generation to Python.cmake
This also allows us to generate a suitable __init__.py for fixing
up PATH and/or __path__ on platforms that need it to properly
import Python extension modules.
2018-09-28 21:24:26 -06:00
Sam Edwards 2e2a8eae98 CMake: Byte-compile all .py files when building Panda
This also involves the creation a new include: Python.cmake

This file will contain utility functions for building Python
modules and installing Python packages.
2018-09-28 17:15:56 -06:00
Sam Edwards 2a2a07773b CMake: Disable clang_cl warnings about /Gm- being unused 2018-09-24 20:35:22 -06:00
Sam Edwards 1520d712d4 CMake: Remove target_use_packages
Instead, let's use a PKG::PKGNAME interface library, which simplifies
the linking and also allows us to use imported libraries from
find_package in the future.
2018-09-21 10:17:05 -06:00
Sam Edwards fa1e1a2e63 CMake: Tidy up installation directory
Don't install "object-Configuration/" directories when
using metalibs, and also put .dll files in bin/ on Windows.
2018-09-01 11:07:55 -06:00
Sam Edwards 9c3841177b CMake: Move dtool_config.h to a configuration-specific dir 2018-08-19 15:39:42 -06:00
Sam Edwards 6b2d417ae4 CMake: Put Windows DLLs in 'bin', not 'lib' 2018-08-16 22:27:10 -06:00
Sam Edwards 0a36a41f93 CMake: Bypass warning about CMP0054 2018-08-16 22:27:10 -06:00
Sam Edwards 4af8a04944 CMake: Set warning levels 2018-08-14 21:59:34 -06:00
Sam Edwards 4c8693f019 CMake: Run pytest as part of CTest 2018-06-13 21:07:56 -06:00
Sam Edwards f54b4b61dd CMake: Don't use pzip when not built 2018-06-01 02:56:43 -06:00
Sam Edwards 407589873a CMake: Update some Windows-specific rules 2018-06-01 02:56:43 -06:00