]> granicus.if.org Git - graphviz/commitdiff
Change CMakeLists.txt to get version from gen_version.py
authorMagnus Jacobsson <Magnus.Jacobsson@berotec.se>
Thu, 23 Jul 2020 12:28:14 +0000 (14:28 +0200)
committerMagnus Jacobsson <magnus.jacobsson@berotec.se>
Tue, 28 Jul 2020 15:54:16 +0000 (17:54 +0200)
CMakeLists.txt

index 1a8e33045297eb996dbba290066b10e20ef2b2ef..ec26d3b5e0ed3fd1df91bb8fcc86e8451b546c94 100644 (file)
@@ -100,103 +100,42 @@ endif()
 configure_file(graphviz_version.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/graphviz_version.h @ONLY)
 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/graphviz_version.h DESTINATION ${HEADER_INSTALL_DIR})
 
-execute_process(
-    COMMAND           grep "^m4_define.*graphviz_version_major" autogen.sh
-    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-    RESULT_VARIABLE   major_version_result
-    OUTPUT_VARIABLE   AUTOGEN_MAJOR_VERSION_LINE
-    ERROR_VARIABLE    major_version_error
-    OUTPUT_STRIP_TRAILING_WHITESPACE
-    ERROR_STRIP_TRAILING_WHITESPACE
-)
-if (major_version_result EQUAL 0)
-    string(REGEX REPLACE ".*\\[([0-9]*)\\].*"
-       "\\1" GRAPHVIZ_VERSION_MAJOR
-       ${AUTOGEN_MAJOR_VERSION_LINE})
-else()
-    message(FATAL_ERROR "Failed to set major version: ${major_version_error}")
-    set(GRAPHVIZ_VERSION_MAJOR {$major_version_result})
-endif()
-
-execute_process(
-    COMMAND           grep "^m4_define.*graphviz_version_minor" autogen.sh
-    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-    RESULT_VARIABLE   minor_version_result
-    OUTPUT_VARIABLE   AUTOGEN_MINOR_VERSION_LINE
-    ERROR_VARIABLE    minor_version_error
-    OUTPUT_STRIP_TRAILING_WHITESPACE
-    ERROR_STRIP_TRAILING_WHITESPACE
-)
-if (minor_version_result EQUAL 0)
-    string(REGEX REPLACE ".*\\[([0-9]*)\\].*"
-       "\\1" GRAPHVIZ_VERSION_MINOR
-       ${AUTOGEN_MINOR_VERSION_LINE})
-else()
-    message(FATAL_ERROR "Failed to set minor version: ${minor_version_error}")
-    set(GRAPHVIZ_VERSION_MINOR {$minor_version_result})
-endif()
-
-execute_process(
-    COMMAND           grep "^m4_define.*graphviz_version_micro" autogen.sh
-    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-    RESULT_VARIABLE   patch_version_result
-    OUTPUT_VARIABLE   AUTOGEN_PATCH_VERSION_LINE
-    ERROR_VARIABLE    patch_version_error
-    OUTPUT_STRIP_TRAILING_WHITESPACE
-    ERROR_STRIP_TRAILING_WHITESPACE
-)
-if (patch_version_result EQUAL 0)
-    string(REGEX REPLACE ".*,\\[(.*)\\].*"
-       "\\1" GRAPHVIZ_VERSION_PATCH
-       ${AUTOGEN_PATCH_VERSION_LINE})
-else()
-    message(FATAL_ERROR "Failed to set patch version: ${patch_version_error}")
-    set(GRAPHVIZ_VERSION_PATCH {$patch_version_result})
-endif()
-
-# Set GRAPHVIZ_VERSION_BUILD to time of last commit, or to 0 if that fails.
-if (DEFINED ENV{TZ})
-  set(TZ_ORIG $ENV{TZ})
-endif()
-set(ENV{TZ} UTC)
-execute_process(
-    COMMAND           "${GIT_EXECUTABLE}" log -n 1 --format=%cd --date=format-local:%Y%m%d.%H%M
-    WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
-    RESULT_VARIABLE   git_result
-    OUTPUT_VARIABLE   GRAPHVIZ_VERSION_BUILD
-    ERROR_VARIABLE    git_error
-    OUTPUT_STRIP_TRAILING_WHITESPACE
-    ERROR_STRIP_TRAILING_WHITESPACE
-)
-set(ENV{TZ} ${TZ_ORIG})
-if(NOT git_result EQUAL 0)
-    message(WARNING "Failed to set build version: ${git_error}")
-    set(GRAPHVIZ_VERSION_BUILD 0)
-endif()
-
-if (GRAPHVIZ_VERSION_PATCH STREQUAL "\$GRAPHVIZ_VERSION_DATE")
-    set(GRAPHVIZ_VERSION_PATCH ${GRAPHVIZ_VERSION_BUILD})
-endif()
-
 if (DEFINED VERSION)
-    string(REGEX REPLACE "\\..*"
-       "" GRAPHVIZ_VERSION_MAJOR
-       ${VERSION})
-    string(REGEX REPLACE "[^.]*\\.([^.]*)\\..*"
-       "\\1" GRAPHVIZ_VERSION_MINOR
-       ${VERSION})
-    string(REGEX REPLACE "[^.]*\\.[^.]*\\."
-       "" GRAPHVIZ_VERSION_PATCH
-       ${VERSION})
-    set(GRAPHVIZ_VERSION_BUILD "${GRAPHVIZ_VERSION_PATCH}")
+    set(GRAPHVIZ_VERSION_STRING "${VERSION}")
+else()
+    execute_process(
+        COMMAND           python3 gen_version.py
+        WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+        RESULT_VARIABLE   gen_version_result
+        OUTPUT_VARIABLE   GRAPHVIZ_VERSION_STRING
+        ERROR_VARIABLE    gen_version_error
+        OUTPUT_STRIP_TRAILING_WHITESPACE
+        ERROR_STRIP_TRAILING_WHITESPACE
+        )
+    if (NOT gen_version_result EQUAL 0)
+        message(FATAL_ERROR "Failed to set version: ${gen_version_error}")
+    endif()
 endif()
 
 if (DEFINED DATE)
     set(GRAPHVIZ_VERSION_BUILD "${DATE}")
+else()
+    # Set GRAPHVIZ_VERSION_BUILD to time of last commit, or to 0 if that fails.
+    execute_process(
+        COMMAND           python3 gen_version.py --committer-date-graphviz
+        WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+        RESULT_VARIABLE   gen_date_result
+        OUTPUT_VARIABLE   GRAPHVIZ_VERSION_BUILD
+        ERROR_VARIABLE    gen_date_error
+        OUTPUT_STRIP_TRAILING_WHITESPACE
+        ERROR_STRIP_TRAILING_WHITESPACE
+        )
+    if (NOT gen_date_result EQUAL 0)
+        message(FATAL_ERROR "Failed to set date: ${gen_date_error}")
+    endif()
 endif()
 
-set(GRAPHVIZ_VERSION_STRING "${GRAPHVIZ_VERSION_MAJOR}.${GRAPHVIZ_VERSION_MINOR}.${GRAPHVIZ_VERSION_PATCH}")
-set(GRAPHVIZ_VERSION_FULL "${GRAPHVIZ_VERSION_MAJOR}.${GRAPHVIZ_VERSION_MINOR}.${GRAPHVIZ_VERSION_PATCH}")
+set(GRAPHVIZ_VERSION_FULL "${GRAPHVIZ_VERSION_STRING}")
 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/builddate.h "#define BUILDDATE \"${GRAPHVIZ_VERSION_BUILD}\"")
 
 message(STATUS "Graphviz version: ${GRAPHVIZ_VERSION_FULL}")