Browse Source

CMake: Have CMake itself track versions

Sam Edwards 7 years ago
parent
commit
aed544bf5f
3 changed files with 9 additions and 26 deletions
  1. 2 10
      CMakeLists.txt
  2. 3 12
      dtool/PandaVersion.cmake
  3. 4 4
      dtool/src/dtoolutil/pandaVersion.h.in

+ 2 - 10
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_SOURCE_CHANGES ON) # Must go before project() below
 set(CMAKE_DISABLE_IN_SOURCE_BUILD 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()
 enable_testing()
 
 
 # Panda3D is now a C++11 project. Newer versions of CMake support this out of
 # Panda3D is now a C++11 project. Newer versions of CMake support this out of

+ 3 - 12
dtool/PandaVersion.cmake

@@ -2,9 +2,6 @@
 # by the top CMakeLists.txt, which puts it in the global namespace for
 # by the top CMakeLists.txt, which puts it in the global namespace for
 # all CMake scripts for Panda.
 # 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
 option(PANDA_OFFICIAL_VERSION
   "This variable will be defined to false in the CVS repository, but
   "This variable will be defined to false in the CVS repository, but
 scripts that generate source tarballs and/or binary releases for
 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_PACKAGE_VERSION P3D_PLUGIN_VERSION P3D_COREAPI_VERSION
   PANDA_DIST_USE_LICENSES)
   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.
 # The version gets a "c" at the end if it's not an official one.
 if(PANDA_OFFICIAL_VERSION)
 if(PANDA_OFFICIAL_VERSION)
   set(VERSION_SUFFIX "")
   set(VERSION_SUFFIX "")
@@ -72,15 +63,15 @@ else()
   set(VERSION_SUFFIX "c")
   set(VERSION_SUFFIX "c")
 endif()
 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
 # This symbol is used to enforce ABI incompatibility between
 # major versions of Panda3D.
 # 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
 # The Panda version as a number, with three digits reserved
 # for each component.
 # 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.
 # Separate the plugin version into its three components.
 string(REPLACE "." ";" P3D_PLUGIN_VERSION_LIST "${P3D_PLUGIN_VERSION}")
 string(REPLACE "." ";" P3D_PLUGIN_VERSION_LIST "${P3D_PLUGIN_VERSION}")

+ 4 - 4
dtool/src/dtoolutil/pandaVersion.h.in

@@ -33,9 +33,9 @@
    included in a .h file, then any other files which also include that
    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. */
    .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. */
 /* Define if this is an "official" version, undefine otherwise. */
 #cmakedefine PANDA_OFFICIAL_VERSION
 #cmakedefine PANDA_OFFICIAL_VERSION
@@ -53,7 +53,7 @@
    This usually means the major and minor version. It should be the
    This usually means the major and minor version. It should be the
    same for Panda3D versions that are supposed to be backward
    same for Panda3D versions that are supposed to be backward
    ABI compatible with each other. */
    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. */
 /* This is a string indicating who has provided this distribution. */
 #define PANDA_DISTRIBUTOR "@PANDA_DISTRIBUTOR@"
 #define PANDA_DISTRIBUTOR "@PANDA_DISTRIBUTOR@"