From 0e12e11ed817d66ff1e9246a32931e14e4fa6700 Mon Sep 17 00:00:00 2001 From: "Suren A. Chilingaryan" Date: Thu, 4 Feb 2016 01:18:33 +0100 Subject: Add build information --- cmake/FindBAZAAR.cmake | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++ cmake/build.cmake | 82 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 165 insertions(+) create mode 100644 cmake/FindBAZAAR.cmake create mode 100644 cmake/build.cmake (limited to 'cmake') diff --git a/cmake/FindBAZAAR.cmake b/cmake/FindBAZAAR.cmake new file mode 100644 index 0000000..ad7b76b --- /dev/null +++ b/cmake/FindBAZAAR.cmake @@ -0,0 +1,83 @@ +# +# This program source code file is part of KICAD, a free EDA CAD application. +# +# Copyright (C) 2010 Wayne Stambaugh +# Copyright (C) 2010 Kicad Developers, see AUTHORS.txt for contributors. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, you may find one here: +# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html +# or you may search the http://www.gnu.org website for the version 2 license, +# or you may write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA +# +# This CMake script finds the BAZAAR version control system executable and +# and fetches the veresion string to valid that BAZAAR was found and executes +# properly. +# +# Usage: +# find_package( BAZAAR ) +# +# User definable. +# BAZAAR_EXECUTABLE Set this to use a version of BAZAAR that is not in +# current path. Defaults to bzr. +# +# Defines: +# BAZAAR_FOUND Set to TRUE if BAZAAR command line client is found +# and the bzr --version command executes properly. +# BAZAAR_VERSION Result of the bzr --version command. +# + +set( BAZAAR_FOUND FALSE ) + +find_program( BAZAAR_EXECUTABLE bzr + DOC "BAZAAR version control system command line client" ) +mark_as_advanced( BAZAAR_EXECUTABLE ) + +if( BAZAAR_EXECUTABLE ) + + # BAZAAR commands should be executed with the C locale, otherwise + # the message (which are parsed) may be translated causing the regular + # expressions to fail. + set( _BAZAAR_SAVED_LC_ALL "$ENV{LC_ALL}" ) + set( ENV{LC_ALL} C ) + + # Fetch the BAZAAR executable version. + execute_process( COMMAND ${BAZAAR_EXECUTABLE} --version + OUTPUT_VARIABLE _bzr_version_output + ERROR_VARIABLE _bzr_version_error + RESULT_VARIABLE _bzr_version_result + OUTPUT_STRIP_TRAILING_WHITESPACE ) + + if( ${_bzr_version_result} EQUAL 0 ) + set( BAZAAR_FOUND TRUE ) + string( REGEX REPLACE "^[\n]*Bazaar \\(bzr\\) ([0-9.a-z]+).*" + "\\1" BAZAAR_VERSION "${_bzr_version_output}" ) + if( NOT BAZAAR_FIND_QUIETLY ) + message( STATUS "BAZAAR version control system version ${BAZAAR_VERSION} found." ) + endif() + endif() + + # restore the previous LC_ALL + set( ENV{LC_ALL} ${_BAZAAR_SAVED_LC_ALL} ) +endif() + +if( NOT BAZAAR_FOUND ) + if( NOT BAZAAR_FIND_QUIETLY ) + message( STATUS "BAZAAR version control command line client was not found." ) + else() + if( BAZAAR_FIND_REQUIRED ) + message( FATAL_ERROR "BAZAAR version control command line client was not found." ) + endif() + endif() +endif() diff --git a/cmake/build.cmake b/cmake/build.cmake new file mode 100644 index 0000000..3043014 --- /dev/null +++ b/cmake/build.cmake @@ -0,0 +1,82 @@ +cmake_minimum_required(VERSION 2.6) + +list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/") + +find_package(BAZAAR QUIET) + +set(PCILIB_BUILD_DATE "") +set(PCILIB_LAST_MODIFICATION "") +set(PCILIB_REVISION "0") +set(PCILIB_REVISION_BRANCH "") +set(PCILIB_REVISION_AUTHOR "") +set(PCILIB_REVISION_MODIFICATIONS "") + +execute_process( + COMMAND date "+%Y/%m/%d %H:%M:%S" + RESULT_VARIABLE _retcode + OUTPUT_VARIABLE _output + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +if (${_retcode} EQUAL 0) + set(PCILIB_BUILD_DATE ${_output}) +endif (${_retcode} EQUAL 0) + +execute_process( + COMMAND find ${CMAKE_SOURCE_DIR} -type f -name *.[ch] -printf "%TY/%Tm/%Td %TH:%TM:%TS %p\n" + COMMAND sort -n + COMMAND grep -E -v "build.h|config.h|CMakeFiles|./apps" + COMMAND tail -n 1 + COMMAND cut -d " " -f 1-2 + COMMAND cut -d "." -f 1 + RESULT_VARIABLE _retcode + OUTPUT_VARIABLE _output + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +if (${_retcode} EQUAL 0) + set(PCILIB_LAST_MODIFICATION ${_output}) +endif (${_retcode} EQUAL 0) + +if (BAZAAR_FOUND) + execute_process( + COMMAND ${BAZAAR_EXECUTABLE} revno --tree ${CMAKE_SOURCE_DIR} + RESULT_VARIABLE _retcode + OUTPUT_VARIABLE _output + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + if (${_retcode} EQUAL 0) + set(PCILIB_REVISION ${_output}) + + execute_process( + COMMAND ${BAZAAR_EXECUTABLE} log -r${PCILIB_REVISION} ${CMAKE_SOURCE_DIR} + RESULT_VARIABLE _retcode + OUTPUT_VARIABLE _output + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + if (${_retcode} EQUAL 0) + string(REGEX REPLACE "^(.*\n)?committer: ([^\n]+).*" + "\\2" PCILIB_REVISION_AUTHOR "${_output}" ) + string(REGEX REPLACE "^(.*\n)?branch nick: ([^\n]+).*" + "\\2" PCILIB_REVISION_BRANCH "${_output}" ) + endif (${_retcode} EQUAL 0) + endif (${_retcode} EQUAL 0) + + execute_process( + COMMAND ${BAZAAR_EXECUTABLE} status -SV + COMMAND cut -c 5- + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + RESULT_VARIABLE _retcode + OUTPUT_VARIABLE _output + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + + if (${_retcode} EQUAL 0) + string(REGEX REPLACE "\n+" ";" PCILIB_REVISION_MODIFICATIONS ${_output}) +# set(PCILIB_REVISION_MODIFICATIONS ${_output}) + endif (${_retcode} EQUAL 0) +endif(BAZAAR_FOUND) + +configure_file(${CMAKE_SOURCE_DIR}/pcilib/build.h.in ${CMAKE_BINARY_DIR}/pcilib/build.h) -- cgit v1.2.3 From 4f5185b37980bdf962ff7058e9f8fbb06098386c Mon Sep 17 00:00:00 2001 From: "Suren A. Chilingaryan" Date: Thu, 4 Feb 2016 02:13:02 +0100 Subject: Report information about driver revision and build --- cmake/build.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cmake') diff --git a/cmake/build.cmake b/cmake/build.cmake index 3043014..ffddf82 100644 --- a/cmake/build.cmake +++ b/cmake/build.cmake @@ -23,7 +23,7 @@ if (${_retcode} EQUAL 0) endif (${_retcode} EQUAL 0) execute_process( - COMMAND find ${CMAKE_SOURCE_DIR} -type f -name *.[ch] -printf "%TY/%Tm/%Td %TH:%TM:%TS %p\n" + COMMAND find ${CMAKE_SOURCE_DIR} -type f -name "*.[ch]" -printf "%TY/%Tm/%Td %TH:%TM:%TS %p\n" COMMAND sort -n COMMAND grep -E -v "build.h|config.h|CMakeFiles|./apps" COMMAND tail -n 1 -- cgit v1.2.3 From ab0797327e5b7cf4c4710ce7d2fff533ba405507 Mon Sep 17 00:00:00 2001 From: "Suren A. Chilingaryan" Date: Thu, 4 Feb 2016 02:46:51 +0100 Subject: Fix build system --- cmake/build.cmake | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'cmake') diff --git a/cmake/build.cmake b/cmake/build.cmake index ffddf82..94eb4c1 100644 --- a/cmake/build.cmake +++ b/cmake/build.cmake @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 2.6) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/") +list(APPEND CMAKE_MODULE_PATH "${PCILIB_SOURCE_DIR}/cmake/") find_package(BAZAAR QUIET) @@ -23,7 +23,7 @@ if (${_retcode} EQUAL 0) endif (${_retcode} EQUAL 0) execute_process( - COMMAND find ${CMAKE_SOURCE_DIR} -type f -name "*.[ch]" -printf "%TY/%Tm/%Td %TH:%TM:%TS %p\n" + COMMAND find ${PCILIB_SOURCE_DIR} -type f -name "*.[ch]" -printf "%TY/%Tm/%Td %TH:%TM:%TS %p\n" COMMAND sort -n COMMAND grep -E -v "build.h|config.h|CMakeFiles|./apps" COMMAND tail -n 1 @@ -40,7 +40,7 @@ endif (${_retcode} EQUAL 0) if (BAZAAR_FOUND) execute_process( - COMMAND ${BAZAAR_EXECUTABLE} revno --tree ${CMAKE_SOURCE_DIR} + COMMAND ${BAZAAR_EXECUTABLE} revno --tree ${PCILIB_SOURCE_DIR} RESULT_VARIABLE _retcode OUTPUT_VARIABLE _output OUTPUT_STRIP_TRAILING_WHITESPACE @@ -50,24 +50,25 @@ if (BAZAAR_FOUND) set(PCILIB_REVISION ${_output}) execute_process( - COMMAND ${BAZAAR_EXECUTABLE} log -r${PCILIB_REVISION} ${CMAKE_SOURCE_DIR} + COMMAND ${BAZAAR_EXECUTABLE} log -r${PCILIB_REVISION} ${PCILIB_SOURCE_DIR} RESULT_VARIABLE _retcode OUTPUT_VARIABLE _output OUTPUT_STRIP_TRAILING_WHITESPACE ) if (${_retcode} EQUAL 0) + set(_last_output ${_output}) string(REGEX REPLACE "^(.*\n)?committer: ([^\n]+).*" - "\\2" PCILIB_REVISION_AUTHOR "${_output}" ) + "\\2" PCILIB_REVISION_AUTHOR "${_last_output}" ) string(REGEX REPLACE "^(.*\n)?branch nick: ([^\n]+).*" - "\\2" PCILIB_REVISION_BRANCH "${_output}" ) + "\\2" PCILIB_REVISION_BRANCH "${_last_output}" ) endif (${_retcode} EQUAL 0) endif (${_retcode} EQUAL 0) execute_process( COMMAND ${BAZAAR_EXECUTABLE} status -SV COMMAND cut -c 5- - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + WORKING_DIRECTORY ${PCILIB_SOURCE_DIR} RESULT_VARIABLE _retcode OUTPUT_VARIABLE _output OUTPUT_STRIP_TRAILING_WHITESPACE @@ -79,4 +80,4 @@ if (BAZAAR_FOUND) endif (${_retcode} EQUAL 0) endif(BAZAAR_FOUND) -configure_file(${CMAKE_SOURCE_DIR}/pcilib/build.h.in ${CMAKE_BINARY_DIR}/pcilib/build.h) +configure_file(${PCILIB_SOURCE_DIR}/pcilib/build.h.in ${PCILIB_BINARY_DIR}/pcilib/build.h) -- cgit v1.2.3 From 055279e09c3db9429e02874ec9620b9af357c80a Mon Sep 17 00:00:00 2001 From: "Suren A. Chilingaryan" Date: Thu, 4 Feb 2016 02:48:24 +0100 Subject: Do not complain if no changes since last revision --- cmake/build.cmake | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'cmake') diff --git a/cmake/build.cmake b/cmake/build.cmake index 94eb4c1..b0d803a 100644 --- a/cmake/build.cmake +++ b/cmake/build.cmake @@ -57,11 +57,10 @@ if (BAZAAR_FOUND) ) if (${_retcode} EQUAL 0) - set(_last_output ${_output}) string(REGEX REPLACE "^(.*\n)?committer: ([^\n]+).*" - "\\2" PCILIB_REVISION_AUTHOR "${_last_output}" ) + "\\2" PCILIB_REVISION_AUTHOR "${_output}" ) string(REGEX REPLACE "^(.*\n)?branch nick: ([^\n]+).*" - "\\2" PCILIB_REVISION_BRANCH "${_last_output}" ) + "\\2" PCILIB_REVISION_BRANCH "${_output}" ) endif (${_retcode} EQUAL 0) endif (${_retcode} EQUAL 0) @@ -75,7 +74,7 @@ if (BAZAAR_FOUND) ) if (${_retcode} EQUAL 0) - string(REGEX REPLACE "\n+" ";" PCILIB_REVISION_MODIFICATIONS ${_output}) + string(REGEX REPLACE "\n+" ";" PCILIB_REVISION_MODIFICATIONS "${_output}") # set(PCILIB_REVISION_MODIFICATIONS ${_output}) endif (${_retcode} EQUAL 0) endif(BAZAAR_FOUND) -- cgit v1.2.3