diff options
author | Sergei Golubchik <serg@mariadb.org> | 2014-05-21 15:30:06 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2014-05-24 18:09:08 +0200 |
commit | 3e48269f2a268a3458c0b764d406d58627565d0c (patch) | |
tree | 9697c515bb8f2f8c1445b2f4412c2f7f52412110 | |
parent | 05df71abd9c3844aeddfb7261ba71d19e56d94fe (diff) | |
download | mariadb-git-3e48269f2a268a3458c0b764d406d58627565d0c.tar.gz |
git support in cmake files
-rw-r--r-- | cmake/cpack_source_ignore_files.cmake | 2 | ||||
-rw-r--r-- | cmake/info_macros.cmake.in | 19 | ||||
-rw-r--r-- | cmake/make_dist.cmake.in | 18 | ||||
-rw-r--r-- | sql/CMakeLists.txt | 2 |
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) |