commit 81afd10fc7815cdc92691a81038fac310241fe4e
Author: Kornel Benko <[email protected]>
Date: Fri Oct 24 16:58:54 2014 +0200
Cmake build: Moved creation of variable LYX_GIT_COMMIT_HASH to
development/cmake/scripts/LyXGetVersion.cmake.
1.) The only file which needs this define is src/version.cpp. Our use in
config.h
resulted in recompiling most of our sources.
With this change, only version.cpp needs to be recompiled.
2.) Without reconfiguring, the old commit hash was still valid. Now the
detection of commit hash is done at compile time.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4597d59..0db64f7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -316,7 +316,6 @@ endforeach(_c_l)
FIND_PROGRAM(LYX_GITVERSION git)
#message(STATUS "gitversion = ${LYX_GITVERSION}")
-set(LYX_GIT_COMMIT_HASH "none")
set(LYX_REVISION_VERSION ${LYX_PATCH_VERSION})
if(LYX_GITVERSION)
if (LYX_LOCALVERSIONING)
@@ -332,13 +331,7 @@ if(LYX_GITVERSION)
set(ENABLE_DIST ON)
endif()
endif()
- EXECUTE_PROCESS(COMMAND ${LYX_GITVERSION} log -1 "--pretty=format:%H"
- WORKING_DIRECTORY "${TOP_SRC_DIR}" OUTPUT_VARIABLE lyxgitcommit
OUTPUT_STRIP_TRAILING_WHITESPACE)
- if (lyxgitcommit MATCHES "^[0-9a-f]+$")
- set(LYX_GIT_COMMIT_HASH ${lyxgitcommit})
- endif()
endif()
-#message(STATUS "LYX_GIT_COMMIT_HASH = ${LYX_GIT_COMMIT_HASH}")
# Set the programs (lyx, tex2lyx, etc.) suffix
# When building an OS X bundle, we will append
@@ -677,7 +670,7 @@ endif()
# Compute qt4-version from ${QTVERSION}
message(STATUS "")
-foreach(_v PACKAGE PACKAGE_VERSION LYX_GIT_COMMIT_HASH
+foreach(_v PACKAGE PACKAGE_VERSION
PROGRAM_SUFFIX LYX_DATE LYX_DIR_VER LYX_USERDIR_VER
LYX_ABS_TOP_SRCDIR
LYX_ABS_INSTALLED_DATADIR LYX_ABS_INSTALLED_LOCALEDIR
LYX_INSTALL_SUFFIX)
diff --git a/development/cmake/config.h.cmake b/development/cmake/config.h.cmake
index 4a75a8d..3068c10 100644
--- a/development/cmake/config.h.cmake
+++ b/development/cmake/config.h.cmake
@@ -39,7 +39,6 @@
#cmakedefine LYX_USERDIR_VER "${LYX_USERDIR_VER}"
#define LYX_MAJOR_VERSION ${LYX_MAJOR_VERSION}
#define LYX_MINOR_VERSION ${LYX_MINOR_VERSION}
-#define LYX_GIT_COMMIT_HASH "${LYX_GIT_COMMIT_HASH}"
#define PROGRAM_SUFFIX "${PROGRAM_SUFFIX}"
#define LYX_ABS_INSTALLED_DATADIR "${LYX_ABS_INSTALLED_DATADIR}"
diff --git a/development/cmake/lyx_commit_hash.h.cmake
b/development/cmake/lyx_commit_hash.h.cmake
new file mode 100644
index 0000000..f384f85
--- /dev/null
+++ b/development/cmake/lyx_commit_hash.h.cmake
@@ -0,0 +1,18 @@
+/*
+ * \file lyx_commit_hash.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * This is the compilation configuration file for LyX.
+ * It was generated by cmake.
+ * You might want to change some of the defaults if something goes wrong
+ * during the compilation.
+ */
+
+#ifndef _LYX_COMMIT_HASH_H
+#define _LYX_COMMIT_HASH_H
+
+#define LYX_GIT_COMMIT_HASH "${LYX_GIT_COMMIT_HASH}"
+
+#endif
+
diff --git a/development/cmake/scripts/LyXGetVersion.cmake
b/development/cmake/scripts/LyXGetVersion.cmake
index 11500ec..2fe5b27 100644
--- a/development/cmake/scripts/LyXGetVersion.cmake
+++ b/development/cmake/scripts/LyXGetVersion.cmake
@@ -1,4 +1,4 @@
-# Copyright (c) 2012, Kornel Benko, <[email protected]>
+# Copyright (c) 2012-2014, Kornel Benko, <[email protected]>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
@@ -32,6 +32,8 @@
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
+set(LYX_GIT_COMMIT_HASH "none")
+
FIND_PROGRAM(LYX_GITVERSION git)
if(LYX_GITVERSION)
# Override the value from configure.ac, if possible
@@ -44,26 +46,32 @@ if(LYX_GITVERSION)
set(LYX_DATE ${CMAKE_MATCH_2})
message(STATUS "Git-hash = ${LYX_GITHASH}")
endif()
+ EXECUTE_PROCESS(COMMAND ${LYX_GITVERSION} log -1 "--pretty=format:%H"
+ WORKING_DIRECTORY "${TOP_SRC_DIR}" OUTPUT_VARIABLE lyxgitcommit
OUTPUT_STRIP_TRAILING_WHITESPACE)
+ if (lyxgitcommit MATCHES "^[0-9a-f]+$")
+ set(LYX_GIT_COMMIT_HASH ${lyxgitcommit})
+ endif()
endif()
-if(NOT EXISTS ${TOP_BINARY_DIR}/lyx_date.h)
- configure_file(${TOP_CMAKE_PATH}/lyx_date.h.cmake
${TOP_BINARY_DIR}/lyx_date.h)
-else()
- configure_file(${TOP_CMAKE_PATH}/lyx_date.h.cmake
${TOP_BINARY_DIR}/lyx_date.tmp)
- message(STATUS "Created ${TOP_BINARY_DIR}/lyx_date.tmp")
-
- EXECUTE_PROCESS(
- COMMAND ${CMAKE_COMMAND} -E copy_if_different
${TOP_BINARY_DIR}/lyx_date.tmp ${TOP_BINARY_DIR}/lyx_date.h
- ERROR_VARIABLE copy_err
- )
+foreach(_hf lyx_date lyx_commit_hash)
+ if(NOT EXISTS ${TOP_BINARY_DIR}/${_hf}.h)
+ configure_file(${TOP_CMAKE_PATH}/${_hf}.h.cmake ${TOP_BINARY_DIR}/${_hf}.h)
+ else()
+ configure_file(${TOP_CMAKE_PATH}/${_hf}.h.cmake
${TOP_BINARY_DIR}/${_hf}.tmp)
+ message(STATUS "Created ${TOP_BINARY_DIR}/${_hf}.tmp")
- if(copy_err)
- message(FATAL_ERROR "${CMAKE_COMMAND} -E copy_if_different not working")
- endif()
+ EXECUTE_PROCESS(
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
${TOP_BINARY_DIR}/${_hf}.tmp ${TOP_BINARY_DIR}/${_hf}.h
+ ERROR_VARIABLE copy_err
+ )
- EXECUTE_PROCESS(
- COMMAND ${CMAKE_COMMAND} -E remove ${TOP_BINARY_DIR}/lyx_date.tmp
- )
-endif()
+ if(copy_err)
+ message(FATAL_ERROR "${CMAKE_COMMAND} -E copy_if_different not working")
+ endif()
+ EXECUTE_PROCESS(
+ COMMAND ${CMAKE_COMMAND} -E remove ${TOP_BINARY_DIR}/${_hf}.tmp
+ )
+ endif()
+endforeach()