---------- Forwarded message ---------- From: John Drescher <dresche...@gmail.com> Date: Thu, Feb 2, 2012 at 4:36 PM Subject: Re: [CMake] Portable revision lookup? To: Oliver kfsone Smith <osm...@playnet.com>
On Thu, Feb 2, 2012 at 4:10 PM, Oliver kfsone Smith <osm...@playnet.com> wrote: > Right now I wrap my Linux-based build process with a script that features > the line > > REVISION=`svn info ${SRC_PATH} | awk '/^Revision/ { print $2 }'` > > Which is neither OS or VCS portable. > > I'm trying to put together a CPack configuration to make the builds, and I'd > like to name the resulting installer for the revision it was built from. > > Is there any kind of built-in mechanism I can use for this, or would I be > best just using IFs and executing os-specific commands? (I'm not quite sure > how I'm going to pluck the info out under Windows) > > I'm also wondering if there is a way to query other repository attributes - > specifically the URL - I'd like to build installers named > > <product>.<branch>.<revision>.<suffix> > > e.g. > > my-client.baseline.57721.deb > or > my-server.branches.1.35.57804.tbz2 > > Any pointers? > Cmake has support for pulling the svn and I believe git revs using cmake modules. Here is what I do for svn #----------------------------------------------------------------------------- # If subversion is found append the svn rev to the patch version. # FIND_PACKAGE(Subversion) IF(Subversion_FOUND) OPTION(SVN_APPEND_REV "Append subversion rev to application version" ON) IF(SVN_APPEND_REV) Subversion_WC_INFO(${PROJECT_SOURCE_DIR} Project) MESSAGE("Current revision is ${Project_WC_REVISION}") OPTION(SVN_GET_LOG "Get the SVN LOG" OFF) if(SVN_GET_LOG) Subversion_WC_LOG(${PROJECT_SOURCE_DIR} Project) MESSAGE("Last changed log is ${Project_LAST_CHANGED_LOG}") endif(SVN_GET_LOG) set (${PROJECT_NAME}_VERSION_PATCH ${${PROJECT_NAME}_VERSION_PATCH}.${Project_WC_REVISION}) ENDIF(SVN_APPEND_REV) ENDIF(Subversion_FOUND) John -- John M. Drescher -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake