Patch #993 ยป cmake-svn.patch
CMakeLists.txt (working copy) | ||
---|---|---|
154 | 154 |
ADD_DEFINITIONS( -DEXV_HAVE_STDINT_H ) |
155 | 155 |
ENDIF( ${EXV_HAVE_STDINT_H} ) |
156 | 156 | |
157 |
FIND_PACKAGE(Subversion QUIET) |
|
158 |
SET(SVN_REVISION "0") |
|
159 |
IF(SUBVERSION_FOUND) |
|
160 |
IF(EXISTS "${CMAKE_SOURCE_DIR}/.svn") |
|
161 |
Subversion_WC_INFO(${PROJECT_SOURCE_DIR} svnExiv2) |
|
162 |
SET(SVN_REVISION "${svnExiv2_WC_REVISION}") |
|
163 |
ENDIF() |
|
164 |
ENDIF() |
|
165 |
MESSAGE(STATUS "SVN version: ${SVN_REVISION}") |
|
166 |
|
|
167 |
|
|
157 | 168 |
ADD_SUBDIRECTORY( xmpsdk ) |
158 | 169 |
ADD_SUBDIRECTORY( src ) |
159 | 170 | |
... | ... | |
165 | 176 |
ADD_SUBDIRECTORY( po ) |
166 | 177 |
ENDIF( EXIV2_ENABLE_BUILD_PO ) |
167 | 178 | |
168 |
IF( NOT MSVC ) |
|
169 |
# Issue #722: out of source builds compiled against standard include files such as /usr/local/lib/include/exiv2 |
|
170 |
# do not use CREATE_SYMLINK or CMAKE_CAN_SYMLINK as they don't work on CYGWIN |
|
171 |
EXECUTE_PROCESS( WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/src exiv2) |
|
172 |
|
|
173 |
IF( EXIV2_ENABLE_BUILD_SAMPLES ) |
|
174 |
EXECUTE_PROCESS( WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/samples COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/src exiv2) |
|
175 |
ENDIF( EXIV2_ENABLE_BUILD_SAMPLES ) |
|
176 | ||
177 |
IF( EXIV2_ENABLE_BUILD_PO ) |
|
178 |
EXECUTE_PROCESS( WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/po COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/src exiv2) |
|
179 |
ENDIF( EXIV2_ENABLE_BUILD_PO ) |
|
180 |
|
|
181 |
MESSAGE(STATUS "generating ${CMAKE_CURRENT_SOURCE_DIR}/src/svn_version.h") |
|
182 |
EXECUTE_PROCESS( WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/src COMMAND ./svn_version.sh) |
|
183 |
ENDIF() |
|
184 | ||
185 | 179 |
## |
186 | 180 |
# tests |
187 | 181 |
ADD_CUSTOM_TARGET(tests COMMAND make test "EXIV2_BINDIR=${CMAKE_BINARY_DIR}/bin" WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/test/" ) |
src/CMakeLists.txt (working copy) | ||
---|---|---|
148 | 148 |
ENDIF( ZLIB_FOUND ) |
149 | 149 |
ENDIF( EXIV2_ENABLE_PNG ) |
150 | 150 | |
151 |
IF( NOT MSVC ) |
|
152 |
SET( LIBEXIV2_HDR ${LIBEXIV2_HDR} |
|
153 |
svn_version.h |
|
154 |
) |
|
151 |
CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/svn_version.h.in |
|
152 |
${CMAKE_CURRENT_BINARY_DIR}/svn_version.h @ONLY) |
|
153 |
|
|
154 |
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) |
|
155 |
|
|
156 |
IF( MSVC ) # to support the old VS solution builds |
|
157 |
ADD_DEFINITIONS("-DCMAKE_BUILD_SVN") |
|
155 | 158 |
ENDIF() |
156 | 159 | |
160 |
SET( LIBEXIV2_HDR ${LIBEXIV2_HDR} |
|
161 |
svn_version.h |
|
162 |
) |
|
163 |
|
|
157 | 164 |
## |
158 | 165 |
# add xmp source if xmp is requested and xmp library not built |
159 | 166 |
IF( EXIV2_ENABLE_XMP ) |
src/svn_version.h.in (revision 0) | ||
---|---|---|
1 |
#define SVN_VERSION @SVN_REVISION@ |
src/svn_version.sh (working copy) | ||
---|---|---|
1 |
#!/bin/bash |
|
2 | ||
3 |
## |
|
4 |
# update svn_version.h when the revision has changed |
|
5 |
svn_version=$(svn info .. 2>/dev/null | grep ^Revision | cut -f 2 -d' ') |
|
6 |
if [ -z "$svn_version" ]; then svn_version=0 ; fi |
|
7 |
if [ -e svn_version.h ]; then |
|
8 |
old=$(cut -f 3 -d' ' svn_version.h) |
|
9 |
if [ "$old" != "$svn_version" ]; then |
|
10 |
rm -rf svn_version.h |
|
11 |
fi |
|
12 |
fi |
|
13 |
if [ ! -e svn_version.h ]; then |
|
14 |
echo "#define SVN_VERSION $svn_version" > svn_version.h |
|
15 |
fi |
|
16 | ||
17 |
# That's all Folks! |
|
18 |
## |
src/version.hpp (working copy) | ||
---|---|---|
38 | 38 |
#include <string> |
39 | 39 | |
40 | 40 |
// svn version has not been implemented yet for DevStudio |
41 |
#if defined(_MSC_VER) |
|
41 |
#if defined(_MSC_VER) && !defined(CMAKE_BUILD_SVN)
|
|
42 | 42 |
#define SVN_VERSION 0 |
43 | 43 |
#else |
44 | 44 |
#include "svn_version.h" |