Skip to content

Commit

Permalink
update version tracking to git
Browse files Browse the repository at this point in the history
  • Loading branch information
jef-n committed May 4, 2011
1 parent 730b651 commit 4d480fc
Show file tree
Hide file tree
Showing 12 changed files with 42 additions and 69 deletions.
65 changes: 19 additions & 46 deletions CMakeLists.txt
Expand Up @@ -439,55 +439,28 @@ INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR})
LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/src/core ${CMAKE_BINARY_DIR}/src/gui)

#############################################################
# create qgssvnversion.h
# create qgsversion.h

FIND_FILE(SVN_MARKER entries PATHS ${CMAKE_SOURCE_DIR}/.svn)
FIND_FILE(GIT_MARKER index PATHS ${CMAKE_SOURCE_DIR}/.git)

IF (SVN_MARKER)
# See if we have svn installed
FIND_PROGRAM(SVNVERSION svnversion PATHS c:/cygwin/bin)

IF(SVNVERSION)
IF(MSVC)
ADD_CUSTOM_COMMAND(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h
COMMAND for /f usebackq %%a in "(`\"${SVNVERSION}\"`)" do echo \#define QGSSVNVERSION \"%%a\" >${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h
MAIN_DEPENDENCY ${SVN_MARKER}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
ELSE(MSVC)
ADD_CUSTOM_COMMAND(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h
COMMAND echo \\\#define QGSSVNVERSION \\\"`${SVNVERSION}`\\\" >${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h
MAIN_DEPENDENCY ${SVN_MARKER}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
ENDIF(MSVC)
ELSE(SVNVERSION)
MESSAGE(STATUS "svnversion not found - version will be unknown")
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h "#define QGSSVNVERSION \"unknown\"")
ENDIF (SVNVERSION)
ELSE (SVN_MARKER)
IF (GIT_MARKER)
FIND_PROGRAM(GIT git PATHS c:/cygwin/bin)
IF(GIT)
ADD_CUSTOM_COMMAND(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h
COMMAND echo \\\#define QGSSVNVERSION \\\"$$\( ${GIT} log -n1 --grep='git-svn-id' | sed -ne 's/^ *git-svn-id:.*@\\\([0-9]*\\\).*$$/\\1/p' \)$$\( ${GIT} log --oneline $$\( ${GIT} log -n1 --grep='git-svn-id' --pretty=%H \).. | wc -l | sed -e 's/^/+/' -e 's/+0$$//' \)\\\" >${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h
MAIN_DEPENDENCY ${GIT_MARKER}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
ELSE(GIT)
MESSAGE(STATUS "git marker, but no git found - version will be unknown")
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h "#define QGSSVNVERSION \"unknown\"")
ENDIF(GIT)
ELSE (GIT_MARKER)
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h "#define QGSSVNVERSION \"exported\"")
ENDIF (GIT_MARKER)
ENDIF (SVN_MARKER)

ADD_CUSTOM_TARGET(svnversion ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/qgssvnversion.h)
IF (GIT_MARKER)
FIND_PROGRAM(GIT git PATHS c:/cygwin/bin)
IF(GIT)
ADD_CUSTOM_COMMAND(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/qgsversion.h
COMMAND echo \\\#define QGSVERSION \\\"$$\( ${GIT} log -n1 --pretty=%h \)\\\" >${CMAKE_CURRENT_BINARY_DIR}/qgsversion.h
MAIN_DEPENDENCY ${GIT_MARKER}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
ELSE(GIT)
MESSAGE(STATUS "git marker, but no git found - version will be unknown")
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/qgsversion.h "#define QGSVERSION \"unknown\"")
ENDIF(GIT)
ELSE (GIT_MARKER)
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/qgsversion.h "#define QGSVERSION \"exported\"")
ENDIF (GIT_MARKER)

ADD_CUSTOM_TARGET(version ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/qgsversion.h)

#############################################################
# process subdirs
Expand Down
4 changes: 2 additions & 2 deletions mac/xcode/Qgis.xcodeproj/project.pbxproj
Expand Up @@ -15090,12 +15090,12 @@
"$(SRCROOT)/../../cmake_templates/qgsconfig.h.in",
);
outputPaths = (
"$(CONFIGURATION_BUILD_DIR)/include/qgssvnversion.h",
"$(CONFIGURATION_BUILD_DIR)/include/qgsversion.h",
"$(CONFIGURATION_BUILD_DIR)/include/qgsconfig.h",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "mkdir -p \"$CONFIGURATION_BUILD_DIR/include\"\n\n# check if the files are generated, clean if need to regenerate\n\nif [ ! -f \"$CONFIGURATION_BUILD_DIR/include/qgsconfig.h\" ] || [ ../../cmake_templates/qgsconfig.h.in -nt \"$CONFIGURATION_BUILD_DIR/include/qgsconfig.h\" ] ; then\necho \"Generating qgsconfig.h...\"\nsed -e \"s,\\${CPACK_PACKAGE_VERSION_MAJOR},$QGIS_VERSION_MAJOR,g\" \\\n\t-e \"s,\\${CPACK_PACKAGE_VERSION_MINOR},$QGIS_VERSION_MINOR,g\" \\\n\t-e \"s,\\${CPACK_PACKAGE_VERSION_PATCH},$QGIS_VERSION_PATCH,g\" \\\n\t-e \"s,\\${RELEASE_NAME},$QGIS_RELEASE_NAME,g\" \\\n\t-e \"s,\\${QGIS_VERSION_INT},$QGIS_VERSION_INT,g\" \\\n\t-e \"s,\\${QGIS_PLUGIN_SUBDIR},$QGIS_PLUGIN_SUBDIR,g\" \\\n\t-e \"s,\\${QGIS_DATA_SUBDIR},$QGIS_DATA_SUBDIR,g\" \\\n\t-e \"s,\\${QGIS_LIBEXEC_SUBDIR},$QGIS_LIBEXEC_SUBDIR,g\" \\\n\t-e \"s,\\${QGIS_LIB_SUBDIR},$QGIS_LIB_SUBDIR,g\" \\\n\t-e \"s,\\${CMAKE_INSTALL_PREFIX},$CMAKE_INSTALL_PREFIX,g\" \\\n\t-e \"s,#cmakedefine,#define,g\" \\\n\t../../cmake_templates/qgsconfig.h.in > \"$CONFIGURATION_BUILD_DIR/include/qgsconfig.h\"\nfi\n\nif [ ! -f \"$CONFIGURATION_BUILD_DIR/include/qgssvnversion.h\" ] ; then\necho \"Generating qgssvnversion.h...\"\nsvnv=`which svnversion`\nif [ \"$svnv\" ] ; then\n\tsvnver=`svnversion $SRCROOT`\nelse\n\tsvnver=\"unknown\"\nfi\necho \"#define QGSSVNVERSION \\\"$svnver\\\"\" > \"$CONFIGURATION_BUILD_DIR/include/qgssvnversion.h\"\nfi\n\nexit 0";
shellScript = "mkdir -p \"$CONFIGURATION_BUILD_DIR/include\"\n\n# check if the files are generated, clean if need to regenerate\n\nif [ ! -f \"$CONFIGURATION_BUILD_DIR/include/qgsconfig.h\" ] || [ ../../cmake_templates/qgsconfig.h.in -nt \"$CONFIGURATION_BUILD_DIR/include/qgsconfig.h\" ] ; then\necho \"Generating qgsconfig.h...\"\nsed -e \"s,\\${CPACK_PACKAGE_VERSION_MAJOR},$QGIS_VERSION_MAJOR,g\" \\\n\t-e \"s,\\${CPACK_PACKAGE_VERSION_MINOR},$QGIS_VERSION_MINOR,g\" \\\n\t-e \"s,\\${CPACK_PACKAGE_VERSION_PATCH},$QGIS_VERSION_PATCH,g\" \\\n\t-e \"s,\\${RELEASE_NAME},$QGIS_RELEASE_NAME,g\" \\\n\t-e \"s,\\${QGIS_VERSION_INT},$QGIS_VERSION_INT,g\" \\\n\t-e \"s,\\${QGIS_PLUGIN_SUBDIR},$QGIS_PLUGIN_SUBDIR,g\" \\\n\t-e \"s,\\${QGIS_DATA_SUBDIR},$QGIS_DATA_SUBDIR,g\" \\\n\t-e \"s,\\${QGIS_LIBEXEC_SUBDIR},$QGIS_LIBEXEC_SUBDIR,g\" \\\n\t-e \"s,\\${QGIS_LIB_SUBDIR},$QGIS_LIB_SUBDIR,g\" \\\n\t-e \"s,\\${CMAKE_INSTALL_PREFIX},$CMAKE_INSTALL_PREFIX,g\" \\\n\t-e \"s,#cmakedefine,#define,g\" \\\n\t../../cmake_templates/qgsconfig.h.in > \"$CONFIGURATION_BUILD_DIR/include/qgsconfig.h\"\nfi\n\nif [ ! -f \"$CONFIGURATION_BUILD_DIR/include/qgsversion.h\" ] ; then\necho \"Generating qgsversion.h...\"\nsvnv=`which svnversion`\nif [ \"$svnv\" ] ; then\n\tsvnver=`svnversion $SRCROOT`\nelse\n\tsvnver=\"unknown\"\nfi\necho \"#define QGSSVNVERSION \\\"$svnver\\\"\" > \"$CONFIGURATION_BUILD_DIR/include/qgsversion.h\"\nfi\n\nexit 0";
showEnvVarsInLog = 0;
};
7223B7830F96A96500D905B4 /* Script - ui */ = {
Expand Down
4 changes: 2 additions & 2 deletions mac/xcode/ReadMe.rtf
Expand Up @@ -301,7 +301,7 @@ If recompiling any other target, you should then also recompile the \ul bundle\u
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural
\cf0 \ul Cleaning\ulnone - to clean the project
\b Clean All
\b0 . This actually leaves qgsconfig.h and qgssvnversion.h in the build folder.\
\b0 . This actually leaves qgsconfig.h and qgsversion.h in the build folder.\
\
For a complete clean, trash the build folder from the project folder (NOT from the project itself!).\
\
Expand Down Expand Up @@ -347,4 +347,4 @@ See the Xcode documentation for more info on using the debugger.\
{\field{\*\fldinst{HYPERLINK "http://www.kyngchaos.com"}}{\fldrslt
\fs24 \cf0 http://www.kyngchaos.com/}}
\fs24 \
}
}
2 changes: 1 addition & 1 deletion python/CMakeLists.txt
Expand Up @@ -27,7 +27,7 @@ INCLUDE_DIRECTORIES(
../src/core/spatialindex
../src/core/symbology
../src/core/symbology-ng
${CMAKE_BINARY_DIR} # qgsconfig.h, qgssvnversion.h
${CMAKE_BINARY_DIR} # qgsconfig.h, qgsversion.h
)


Expand Down
2 changes: 1 addition & 1 deletion python/core/qgis.sip
Expand Up @@ -34,7 +34,7 @@ public:
// Release name
static const char* QGIS_RELEASE_NAME;
// The subversion version
static const char* QGIS_SVN_VERSION;
static const char* QGIS_DEV_VERSION;

// Enumerations
//
Expand Down
12 changes: 6 additions & 6 deletions scripts/prepare-commit.sh
Expand Up @@ -33,14 +33,14 @@ fi

# save original changes
if [ -d .svn ]; then
REV=$(svn info | sed -ne "s/Revision: //p")
svn diff >r$REV.diff
REV=r$(svn info | sed -ne "s/Revision: //p")
svn diff >$REV.diff
elif [ -d .git ]; then
REV=$(git svn info | sed -ne "s/Revision: //p")
git diff >r$REV.diff
REV=$(git log -n1 --pretty=%H)
git diff >$REV.diff
fi

ASTYLEDIFF=astyle.r$REV.diff
ASTYLEDIFF=astyle.$REV.diff
>$ASTYLEDIFF

# reformat
Expand All @@ -59,7 +59,7 @@ for f in $MODIFIED; do
;;
esac

m=$f.r$REV.prepare
m=$f.$REV.prepare

cp $f $m
astyle.sh $f
Expand Down
4 changes: 2 additions & 2 deletions src/app/main.cpp
Expand Up @@ -67,7 +67,7 @@ typedef SInt32 SRefCon;
#include "qgsmapcanvas.h"
#include "qgsapplication.h"
#include <qgsconfig.h>
#include <qgssvnversion.h>
#include <qgsversion.h>
#include "qgsexception.h"
#include "qgsproject.h"
#include "qgsrectangle.h"
Expand All @@ -86,7 +86,7 @@ static const char * const ident_ = "$Id$";
void usage( std::string const & appName )
{
std::cerr << "Quantum GIS - " << VERSION << " '" << RELEASE_NAME << "' ("
<< QGSSVNVERSION << ")\n"
<< QGSVERSION << ")\n"
<< "Quantum GIS (QGIS) is a viewer for spatial data sets, including\n"
<< "raster and vector data.\n"
<< "Usage: " << appName << " [options] [FILES]\n"
Expand Down
4 changes: 2 additions & 2 deletions src/app/qgisapp.cpp
Expand Up @@ -274,7 +274,7 @@ static void setTitleBarText_( QWidget & qgisApp )

if ( QString( QGis::QGIS_VERSION ).endsWith( "Trunk" ) )
{
caption += QString( "r%1" ).arg( QGis::QGIS_SVN_VERSION );
caption += QString( "r%1" ).arg( QGis::QGIS_DEV_VERSION );
}
else
{
Expand Down Expand Up @@ -1916,7 +1916,7 @@ void QgisApp::about()
abt = new QgsAbout();
QString versionString = tr( "You are using QGIS version %1 built against code revision %2." )
.arg( QGis::QGIS_VERSION )
.arg( QGis::QGIS_SVN_VERSION );
.arg( QGis::QGIS_DEV_VERSION );

versionString += tr( "\nGDAL/OGR Version: %1." ).arg( GDAL_RELEASE_NAME );

Expand Down
4 changes: 2 additions & 2 deletions src/core/CMakeLists.txt
Expand Up @@ -323,8 +323,8 @@ ADD_LIBRARY(qgis_core SHARED ${QGIS_CORE_SRCS} ${QGIS_CORE_MOC_SRCS} ${INDEX_SRC

SET_TARGET_PROPERTIES(qgis_core PROPERTIES VERSION ${COMPLETE_VERSION} SOVERSION ${COMPLETE_VERSION})

# make sure to create qgssvnversion.h before compiling
ADD_DEPENDENCIES(qgis_core svnversion)
# make sure to create qgsversion.h before compiling
ADD_DEPENDENCIES(qgis_core version)

# because of htonl
IF (WIN32)
Expand Down
4 changes: 2 additions & 2 deletions src/core/qgis.cpp
Expand Up @@ -17,7 +17,7 @@
***************************************************************************/
#include "qgis.h"
#ifndef QGSSVNVERSION
#include "qgssvnversion.h"
#include "qgsversion.h"
#endif

#include "qgsconfig.h"
Expand All @@ -29,7 +29,7 @@
const char* QGis::QGIS_VERSION = VERSION;

// SVN version
const char* QGis::QGIS_SVN_VERSION = QGSSVNVERSION;
const char* QGis::QGIS_DEV_VERSION = QGSVERSION;

// Version number used for comparing versions using the
// "Check QGIS Version" function
Expand Down
4 changes: 2 additions & 2 deletions src/core/qgis.h
Expand Up @@ -39,8 +39,8 @@ class CORE_EXPORT QGis
static const int QGIS_VERSION_INT;
// Release name
static const char* QGIS_RELEASE_NAME;
// The subversion version
static const char* QGIS_SVN_VERSION;
// The development version
static const char* QGIS_DEV_VERSION;

// Enumerations
//
Expand Down
2 changes: 1 addition & 1 deletion src/python/qgspythonutilsimpl.cpp
Expand Up @@ -177,7 +177,7 @@ bool QgsPythonUtilsImpl::runString( const QString& command, QString msgOnError )

QString str = "<font color=\"red\">" + msgOnError + "</font><br><pre>\n" + traceback + "\n</pre>"
+ QObject::tr( "Python version:" ) + "<br>" + version + "<br><br>"
+ QObject::tr( "QGIS version:" ) + "<br>" + QString( "%1 '%2', %3" ).arg( QGis::QGIS_VERSION ).arg( QGis::QGIS_RELEASE_NAME ).arg( QGis::QGIS_SVN_VERSION ) + "<br><br>"
+ QObject::tr( "QGIS version:" ) + "<br>" + QString( "%1 '%2', %3" ).arg( QGis::QGIS_VERSION ).arg( QGis::QGIS_RELEASE_NAME ).arg( QGis::QGIS_DEV_VERSION ) + "<br><br>"
+ QObject::tr( "Python path:" ) + "<br>" + path;
str.replace( "\n", "<br>" ).replace( " ", "&nbsp; " );

Expand Down

0 comments on commit 4d480fc

Please sign in to comment.