From aed544bf5fe11690e2c7ba0144153c74d392ccbd Mon Sep 17 00:00:00 2001 From: Sam Edwards Date: Sun, 1 Apr 2018 19:59:20 -0600 Subject: [PATCH] CMake: Have CMake itself track versions --- CMakeLists.txt | 12 ++---------- dtool/PandaVersion.cmake | 15 +++------------ dtool/src/dtoolutil/pandaVersion.h.in | 8 ++++---- 3 files changed, 9 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d8f2aa77d0..68e9ea7a68 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,15 +1,7 @@ -# We require 2.8.12+ for three reasons: -# 1) CMake 3 is so common these days that it's really not a burden on the user -# to expect them to have it. -# 2) As of this writing, this is the oldest version included in a supported -# release of Ubuntu. Older versions are actually somewhat difficult to track -# down, so we don't test against them. -# 3) CMake's INTERFACE_INCLUDE_DIRECTORIES feature, which we rely on -# extensively, finally became stable in this release. -cmake_minimum_required(VERSION 2.8.12) +cmake_minimum_required(VERSION 3.0.2) set(CMAKE_DISABLE_SOURCE_CHANGES ON) # Must go before project() below set(CMAKE_DISABLE_IN_SOURCE_BUILD ON) # Must go before project() below -project(Panda3D) +project(Panda3D VERSION 1.10.0) enable_testing() # Panda3D is now a C++11 project. Newer versions of CMake support this out of diff --git a/dtool/PandaVersion.cmake b/dtool/PandaVersion.cmake index bf79443406..88a21cc286 100644 --- a/dtool/PandaVersion.cmake +++ b/dtool/PandaVersion.cmake @@ -2,9 +2,6 @@ # by the top CMakeLists.txt, which puts it in the global namespace for # all CMake scripts for Panda. -set(PANDA_VERSION "1.9.0" CACHE STRING - "Use dots to separate the major, minor, and sequence numbers.") - option(PANDA_OFFICIAL_VERSION "This variable will be defined to false in the CVS repository, but scripts that generate source tarballs and/or binary releases for @@ -59,12 +56,6 @@ mark_as_advanced(PANDA_VERSION PANDA_OFFICIAL_VERSION PANDA_PACKAGE_VERSION P3D_PLUGIN_VERSION P3D_COREAPI_VERSION PANDA_DIST_USE_LICENSES) -# Separate the Panda3D version into its three components. -string(REPLACE "." ";" PANDA_VERSION_LIST "${PANDA_VERSION}") -list(GET PANDA_VERSION_LIST 0 PANDA_MAJOR_VERSION) -list(GET PANDA_VERSION_LIST 1 PANDA_MINOR_VERSION) -list(GET PANDA_VERSION_LIST 2 PANDA_SEQUENCE_VERSION) - # The version gets a "c" at the end if it's not an official one. if(PANDA_OFFICIAL_VERSION) set(VERSION_SUFFIX "") @@ -72,15 +63,15 @@ else() set(VERSION_SUFFIX "c") endif() -set(PANDA_VERSION_STR "${PANDA_VERSION}${VERSION_SUFFIX}") +set(PANDA_VERSION_STR "${PROJECT_VERSION}${VERSION_SUFFIX}") # This symbol is used to enforce ABI incompatibility between # major versions of Panda3D. -set(PANDA_VERSION_SYMBOL panda_version_${PANDA_MAJOR_VERSION}_${PANDA_MINOR_VERSION}) +set(PANDA_VERSION_SYMBOL panda_version_${PROJECT_VERSION_MAJOR}_${PROJECT_VERSION_MINOR}) # The Panda version as a number, with three digits reserved # for each component. -math(EXPR PANDA_NUMERIC_VERSION "${PANDA_MAJOR_VERSION}*1000000 + ${PANDA_MINOR_VERSION}*1000 + ${PANDA_SEQUENCE_VERSION}") +math(EXPR PANDA_NUMERIC_VERSION "${PROJECT_VERSION_MAJOR}*1000000 + ${PROJECT_VERSION_MINOR}*1000 + ${PROJECT_VERSION_PATCH}") # Separate the plugin version into its three components. string(REPLACE "." ";" P3D_PLUGIN_VERSION_LIST "${P3D_PLUGIN_VERSION}") diff --git a/dtool/src/dtoolutil/pandaVersion.h.in b/dtool/src/dtoolutil/pandaVersion.h.in index 350a229e4e..c544ae7fdf 100644 --- a/dtool/src/dtoolutil/pandaVersion.h.in +++ b/dtool/src/dtoolutil/pandaVersion.h.in @@ -33,9 +33,9 @@ included in a .h file, then any other files which also include that .h file will need to be rebuilt when the version number changes. */ -#define PANDA_MAJOR_VERSION @PANDA_MAJOR_VERSION@ -#define PANDA_MINOR_VERSION @PANDA_MINOR_VERSION@ -#define PANDA_SEQUENCE_VERSION @PANDA_SEQUENCE_VERSION@ +#define PANDA_MAJOR_VERSION @PROJECT_VERSION_MAJOR@ +#define PANDA_MINOR_VERSION @PROJECT_VERSION_MINOR@ +#define PANDA_SEQUENCE_VERSION @PROJECT_VERSION_PATCH@ /* Define if this is an "official" version, undefine otherwise. */ #cmakedefine PANDA_OFFICIAL_VERSION @@ -53,7 +53,7 @@ This usually means the major and minor version. It should be the same for Panda3D versions that are supposed to be backward ABI compatible with each other. */ -#define PANDA_ABI_VERSION_STR "@PANDA_MAJOR_VERSION@.@PANDA_MINOR_VERSION@" +#define PANDA_ABI_VERSION_STR "@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@" /* This is a string indicating who has provided this distribution. */ #define PANDA_DISTRIBUTOR "@PANDA_DISTRIBUTOR@"