| 1 | PROJECT( libopensync C ) |
|---|
| 2 | |
|---|
| 3 | SET( OPENSYNC_VERSION_MAJOR "0" ) |
|---|
| 4 | SET( OPENSYNC_VERSION_MINOR "39" ) |
|---|
| 5 | SET( OPENSYNC_SVN_REVISION "$Rev$") |
|---|
| 6 | STRING( REGEX REPLACE "Rev: " "" OPENSYNC_SVN_REVISION ${OPENSYNC_SVN_REVISION} ) |
|---|
| 7 | STRING( REGEX REPLACE "^\\$" "" OPENSYNC_SVN_REVISION ${OPENSYNC_SVN_REVISION} ) |
|---|
| 8 | STRING( REGEX REPLACE " \\$$" "" OPENSYNC_SVN_REVISION ${OPENSYNC_SVN_REVISION} ) |
|---|
| 9 | |
|---|
| 10 | |
|---|
| 11 | # The most recent interface number that this library implements. |
|---|
| 12 | #UPDATE: If any interface have been added, removed or changed since |
|---|
| 13 | #UPDATE: the last update increment CURRENT. |
|---|
| 14 | SET( OPENSYNC_LIBVERSION_CURRENT 1 ) |
|---|
| 15 | |
|---|
| 16 | # The implementation number of the CURRENT interface. |
|---|
| 17 | # UPDATE: Increment only if the library code has changed at all, since |
|---|
| 18 | # UPDATE: last release. |
|---|
| 19 | # UPDATE: Set REVISION to 0 if any interface have been added, removed or |
|---|
| 20 | # UPDATE: changed since the last update. |
|---|
| 21 | SET( OPENSYNC_LIBVERSION_REVISION 0 ) |
|---|
| 22 | |
|---|
| 23 | # The difference between the newest and the oldest interfaces. |
|---|
| 24 | # UPDATE: If any interface have been added since the last public |
|---|
| 25 | # UPDATE: release, then increment. |
|---|
| 26 | # UPDATE: If any interface have been removed since the last release |
|---|
| 27 | # UPDATE: reset to 0. |
|---|
| 28 | SET( OPENSYNC_LIBVERSION_AGE 0 ) |
|---|
| 29 | |
|---|
| 30 | |
|---|
| 31 | # The range of implemention CURRENT - AGE is the SOVERSION |
|---|
| 32 | MATH( EXPR OPENSYNC_LIBVERSION_SOVERSION "${OPENSYNC_LIBVERSION_CURRENT} - ${OPENSYNC_LIBVERSION_AGE}" ) |
|---|
| 33 | |
|---|
| 34 | SET( OPENSYNC_LIBVERSION_VERSION "${OPENSYNC_LIBVERSION_SOVERSION}.${OPENSYNC_LIBVERSION_REVISION}.${OPENSYNC_LIBVERSION_AGE}" ) |
|---|
| 35 | |
|---|
| 36 | IF ( $ENV{OPENSYNC_RELEASE} ) |
|---|
| 37 | SET( OPENSYNC_VERSION "${OPENSYNC_VERSION_MAJOR}.${OPENSYNC_VERSION_MINOR}" ) |
|---|
| 38 | ELSE ( $ENV{OPENSYNC_RELEASE} ) |
|---|
| 39 | SET( OPENSYNC_VERSION "${OPENSYNC_VERSION_MAJOR}.${OPENSYNC_VERSION_MINOR}-r${OPENSYNC_SVN_REVISION}" ) |
|---|
| 40 | ENDIF ( $ENV{OPENSYNC_RELEASE} ) |
|---|
| 41 | |
|---|
| 42 | SET( OPENSYNC_PLUGINVERSION ${OPENSYNC_LIBVERSION_SOVERSION} ) |
|---|
| 43 | |
|---|
| 44 | ################################################ |
|---|
| 45 | |
|---|
| 46 | SET( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_SOURCE_DIR}/cmake/modules ) |
|---|
| 47 | |
|---|
| 48 | CMAKE_MINIMUM_REQUIRED( VERSION 2.4.4 ) |
|---|
| 49 | |
|---|
| 50 | IF(COMMAND cmake_policy) |
|---|
| 51 | cmake_policy(SET CMP0003 NEW) |
|---|
| 52 | ENDIF(COMMAND cmake_policy) |
|---|
| 53 | |
|---|
| 54 | INCLUDE( Documentation ) |
|---|
| 55 | INCLUDE( OpenSyncDefaults ) |
|---|
| 56 | INCLUDE( OpenSyncPackaging ) |
|---|
| 57 | |
|---|
| 58 | INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/opensync" ${CMAKE_CURRENT_SOURCE_DIR} ) |
|---|
| 59 | |
|---|
| 60 | ############################################### |
|---|
| 61 | |
|---|
| 62 | FIND_PACKAGE( GLIB2 REQUIRED ) |
|---|
| 63 | FIND_PACKAGE( GTHREAD2 REQUIRED ) |
|---|
| 64 | FIND_PACKAGE( GMODULE2 REQUIRED ) |
|---|
| 65 | FIND_PACKAGE( Sqlite3 REQUIRED ) |
|---|
| 66 | FIND_PACKAGE( LibXml2 REQUIRED ) |
|---|
| 67 | FIND_PACKAGE( LibXslt REQUIRED ) |
|---|
| 68 | FIND_PACKAGE( LibExslt REQUIRED ) |
|---|
| 69 | FIND_PACKAGE( SWIG ) |
|---|
| 70 | FIND_PACKAGE( PythonLibs ) |
|---|
| 71 | FIND_PACKAGE( Check ) |
|---|
| 72 | |
|---|
| 73 | ADD_SUBDIRECTORY( opensync ) |
|---|
| 74 | ADD_SUBDIRECTORY( formats ) |
|---|
| 75 | ADD_SUBDIRECTORY( tools ) |
|---|
| 76 | ADD_SUBDIRECTORY( misc ) |
|---|
| 77 | ADD_SUBDIRECTORY( cmake ) |
|---|
| 78 | |
|---|
| 79 | ADD_SUBDIRECTORY( docs/example-plugin/src/ ) |
|---|
| 80 | |
|---|
| 81 | IF ( SWIG_FOUND ) |
|---|
| 82 | ADD_SUBDIRECTORY( wrapper ) |
|---|
| 83 | ENDIF ( SWIG_FOUND ) |
|---|
| 84 | |
|---|
| 85 | IF ( CHECK_FOUND AND OPENSYNC_UNITTESTS ) |
|---|
| 86 | INCLUDE( Testing ) |
|---|
| 87 | ADD_SUBDIRECTORY( tests ) |
|---|
| 88 | ENDIF ( CHECK_FOUND AND OPENSYNC_UNITTESTS ) |
|---|
| 89 | |
|---|
| 90 | IF ( CMAKE_SYSTEM_NAME MATCHES SunOS ) |
|---|
| 91 | SET( HAVE_SOLARIS 1 ) |
|---|
| 92 | ENDIF (CMAKE_SYSTEM_NAME MATCHES SunOS ) |
|---|
| 93 | |
|---|
| 94 | ############################################## |
|---|
| 95 | |
|---|
| 96 | IF ( BUILD_DOCUMENTATION) |
|---|
| 97 | IF ( DOXYGEN_DOT_EXECUTABLE ) |
|---|
| 98 | SET( HAVE_DOT "YES" ) |
|---|
| 99 | ENDIF ( DOXYGEN_DOT_EXECUTABLE ) |
|---|
| 100 | CONFIGURE_FILE( "Doxyfile.in" "Doxyfile" ) |
|---|
| 101 | CONFIGURE_FILE( "misc/doxygen.css" "misc/doxygen.css" ) |
|---|
| 102 | ADD_CUSTOM_TARGET( DoxygenDoc ${DOXYGEN_EXECUTABLE} ) |
|---|
| 103 | ENDIF ( BUILD_DOCUMENTATION ) |
|---|
| 104 | |
|---|
| 105 | INCLUDE( CheckFunctionExists ) |
|---|
| 106 | CHECK_FUNCTION_EXISTS( flock HAVE_FLOCK ) |
|---|
| 107 | |
|---|
| 108 | # add uninstall target |
|---|
| 109 | CONFIGURE_FILE( "${CMAKE_SOURCE_DIR}/cmake/modules/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) |
|---|
| 110 | |
|---|
| 111 | ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") |
|---|
| 112 | |
|---|
| 113 | CONFIGURE_FILE( "config.h.cmake" "config.h" ) |
|---|
| 114 | CONFIGURE_FILE( "libopensync.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libopensync.pc" ) |
|---|
| 115 | |
|---|
| 116 | ########## INSTALL ############################## |
|---|
| 117 | |
|---|
| 118 | INSTALL( FILES "${CMAKE_CURRENT_BINARY_DIR}/libopensync.pc" DESTINATION ${LIB_INSTALL_DIR}/pkgconfig/ ) |
|---|
| 119 | |
|---|
| 120 | ### CPack ######################################## |
|---|
| 121 | |
|---|
| 122 | OPENSYNC_PACKAGE( ${PROJECT_NAME} ${OPENSYNC_VERSION} ) |
|---|
| 123 | |
|---|