summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2014-05-21 15:30:06 +0200
committerSergei Golubchik <serg@mariadb.org>2014-05-24 18:09:08 +0200
commit3e48269f2a268a3458c0b764d406d58627565d0c (patch)
tree9697c515bb8f2f8c1445b2f4412c2f7f52412110
parent05df71abd9c3844aeddfb7261ba71d19e56d94fe (diff)
downloadmariadb-git-3e48269f2a268a3458c0b764d406d58627565d0c.tar.gz
git support in cmake files
-rw-r--r--cmake/cpack_source_ignore_files.cmake2
-rw-r--r--cmake/info_macros.cmake.in19
-rw-r--r--cmake/make_dist.cmake.in18
-rw-r--r--sql/CMakeLists.txt2
4 files changed, 35 insertions, 6 deletions
diff --git a/cmake/cpack_source_ignore_files.cmake b/cmake/cpack_source_ignore_files.cmake
index 5db383ae73f..7ee496245f8 100644
--- a/cmake/cpack_source_ignore_files.cmake
+++ b/cmake/cpack_source_ignore_files.cmake
@@ -17,6 +17,8 @@ SET(CPACK_SOURCE_IGNORE_FILES
\\\\.bzr/
\\\\.bzr-mysql
\\\\.bzrignore
+\\\\.git/
+\\\\.gitignore
CMakeCache\\\\.txt
cmake_dist\\\\.cmake
CPackSourceConfig\\\\.cmake
diff --git a/cmake/info_macros.cmake.in b/cmake/info_macros.cmake.in
index 9f40a419c61..321ff7d4799 100644
--- a/cmake/info_macros.cmake.in
+++ b/cmake/info_macros.cmake.in
@@ -14,7 +14,7 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-# Handle/create the "INFO_*" files describing a MySQL (server) binary.
+# Handle/create the "INFO_*" files describing a MariaDB (server) binary.
# This is part of the fix for bug#42969.
@@ -28,6 +28,7 @@ SET(CMAKE_BINARY_DIR "@CMAKE_BINARY_DIR@")
SET(CMAKE_GENERATOR "@CMAKE_GENERATOR@")
SET(CMAKE_SIZEOF_VOID_P "@CMAKE_SIZEOF_VOID_P@")
SET(BZR_EXECUTABLE "@BZR_EXECUTABLE@")
+SET(GIT_EXECUTABLE "@GIT_EXECUTABLE@")
SET(CMAKE_CROSSCOMPILING "@CMAKE_CROSSCOMPILING@")
SET(CMAKE_HOST_SYSTEM "@CMAKE_HOST_SYSTEM@")
SET(CMAKE_HOST_SYSTEM_PROCESSOR "@CMAKE_HOST_SYSTEM_PROCESSOR@")
@@ -54,7 +55,19 @@ MACRO(CREATE_INFO_SRC target_dir)
FILE(WRITE ${INFO_SRC} "${VERSION_INFO}\n")
# to debug, add: FILE(APPEND ${INFO_SRC} "\nResult ${RESULT}\n")
# For better readability ...
- FILE(APPEND ${INFO_SRC} "\nMySQL source ${VERSION}\n")
+ FILE(APPEND ${INFO_SRC} "\nMariaDB source ${VERSION}\n")
+ ELSEIF(EXISTS ${CMAKE_SOURCE_DIR}/.git)
+ # Sources are in a GIT repository: Always update.
+ EXECUTE_PROCESS(
+ COMMAND ${GIT_EXECUTABLE} log -1 "--format=commit: %H%nauthor: %an <%ae>%ndate: %aD%nbranch: %d"
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ OUTPUT_VARIABLE VERSION_INFO
+ RESULT_VARIABLE RESULT
+ )
+ FILE(WRITE ${INFO_SRC} "${VERSION_INFO}\n")
+ # to debug, add: FILE(APPEND ${INFO_SRC} "\nResult ${RESULT}\n")
+ # For better readability ...
+ FILE(APPEND ${INFO_SRC} "\nMariaDB source ${VERSION}\n")
ELSEIF(EXISTS ${INFO_SRC})
# Outside a BZR tree, there is no need to change an existing "INFO_SRC",
# it cannot be improved.
@@ -69,7 +82,7 @@ MACRO(CREATE_INFO_SRC target_dir)
FILE(WRITE ${INFO_SRC} "${SOURCE_INFO}\n")
ELSE()
# This is a fall-back.
- FILE(WRITE ${INFO_SRC} "\nMySQL source ${VERSION}\n")
+ FILE(WRITE ${INFO_SRC} "\nMariaDB source ${VERSION}\n")
ENDIF()
ENDMACRO(CREATE_INFO_SRC)
diff --git a/cmake/make_dist.cmake.in b/cmake/make_dist.cmake.in
index 4cb05081e6b..2f88c47e17f 100644
--- a/cmake/make_dist.cmake.in
+++ b/cmake/make_dist.cmake.in
@@ -23,6 +23,7 @@ SET(CPACK_SOURCE_PACKAGE_FILE_NAME "@CPACK_SOURCE_PACKAGE_FILE_NAME@")
SET(CMAKE_CPACK_COMMAND "@CMAKE_CPACK_COMMAND@")
SET(CMAKE_COMMAND "@CMAKE_COMMAND@")
SET(BZR_EXECUTABLE "@BZR_EXECUTABLE@")
+SET(GIT_EXECUTABLE "@GIT_EXECUTABLE@")
SET(GTAR_EXECUTABLE "@GTAR_EXECUTABLE@")
SET(TAR_EXECUTABLE "@TAR_EXECUTABLE@")
SET(CMAKE_GENERATOR "@CMAKE_GENERATOR@")
@@ -39,7 +40,20 @@ SET(PACKAGE_DIR ${CMAKE_BINARY_DIR}/${CPACK_SOURCE_PACKAGE_FILE_NAME})
FILE(REMOVE_RECURSE ${PACKAGE_DIR})
FILE(REMOVE ${PACKAGE_DIR}.tar.gz )
-IF(BZR_EXECUTABLE)
+IF(GIT_EXECUTABLE)
+ MESSAGE(STATUS "Running git checkout-index")
+ EXECUTE_PROCESS(
+ COMMAND "${GIT_EXECUTABLE}" checkout-index --all --prefix=${PACKAGE_DIR}/
+ WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+ RESULT_VARIABLE RESULT
+ )
+
+ IF(NOT RESULT EQUAL 0)
+ SET(GIT_EXECUTABLE)
+ ENDIF()
+ENDIF()
+
+IF(BZR_EXECUTABLE AND NOT GIT_EXECUTABLE)
MESSAGE(STATUS "Running bzr export")
EXECUTE_PROCESS(
COMMAND "${BZR_EXECUTABLE}" export
@@ -53,7 +67,7 @@ IF(BZR_EXECUTABLE)
ENDIF()
ENDIF()
-IF(NOT BZR_EXECUTABLE)
+IF(NOT BZR_EXECUTABLE AND NOT GIT_EXECUTABLE)
MESSAGE(STATUS "bzr not found or source dir is not a repo, use CPack")
IF(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
index ad4b12813d3..9efd33888bd 100644
--- a/sql/CMakeLists.txt
+++ b/sql/CMakeLists.txt
@@ -254,7 +254,7 @@ IF(WIN32 OR HAVE_DLOPEN AND NOT DISABLE_SHARED)
ENDIF()
FOREACH(tool glibtoolize libtoolize aclocal autoconf autoheader automake gtar
- tar bzr)
+ tar bzr git)
STRING(TOUPPER ${tool} TOOL)
FIND_PROGRAM(${TOOL}_EXECUTABLE ${tool} DOC "path to the executable")
MARK_AS_ADVANCED(${TOOL}_EXECUTABLE)