root/trunk/CMakeLists.txt

Revision 3850, 4.1 KB (checked in by bricks, 4 days ago)

Bugfix: gthread and gmodule are required for opensync. thanks to ianmartin.

  • Property svn:keywords set to Rev
Line 
1PROJECT( libopensync C )
2
3SET( OPENSYNC_VERSION_MAJOR "0" )
4SET( OPENSYNC_VERSION_MINOR "39" )
5SET( OPENSYNC_SVN_REVISION "$Rev$")
6STRING( REGEX REPLACE "Rev: " "" OPENSYNC_SVN_REVISION ${OPENSYNC_SVN_REVISION} )
7STRING( REGEX REPLACE "^\\$" "" OPENSYNC_SVN_REVISION ${OPENSYNC_SVN_REVISION} )
8STRING( 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.
14SET( 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.
21SET( 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.
28SET( OPENSYNC_LIBVERSION_AGE 0 )
29
30
31# The range of implemention CURRENT - AGE is the SOVERSION
32MATH( EXPR OPENSYNC_LIBVERSION_SOVERSION "${OPENSYNC_LIBVERSION_CURRENT} - ${OPENSYNC_LIBVERSION_AGE}" )
33
34SET( OPENSYNC_LIBVERSION_VERSION "${OPENSYNC_LIBVERSION_SOVERSION}.${OPENSYNC_LIBVERSION_REVISION}.${OPENSYNC_LIBVERSION_AGE}" )
35
36IF ( $ENV{OPENSYNC_RELEASE} )
37        SET( OPENSYNC_VERSION "${OPENSYNC_VERSION_MAJOR}.${OPENSYNC_VERSION_MINOR}" )   
38ELSE ( $ENV{OPENSYNC_RELEASE} )
39        SET( OPENSYNC_VERSION "${OPENSYNC_VERSION_MAJOR}.${OPENSYNC_VERSION_MINOR}-r${OPENSYNC_SVN_REVISION}" )
40ENDIF ( $ENV{OPENSYNC_RELEASE} )
41
42SET( OPENSYNC_PLUGINVERSION ${OPENSYNC_LIBVERSION_SOVERSION} )
43
44################################################       
45
46SET( CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_SOURCE_DIR}/cmake/modules )
47
48CMAKE_MINIMUM_REQUIRED( VERSION 2.4.4 )
49
50IF(COMMAND cmake_policy)
51  cmake_policy(SET CMP0003 NEW)
52ENDIF(COMMAND cmake_policy)
53
54INCLUDE( Documentation )
55INCLUDE( OpenSyncDefaults )
56INCLUDE( OpenSyncPackaging )
57
58INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/opensync" ${CMAKE_CURRENT_SOURCE_DIR} )
59
60###############################################
61
62FIND_PACKAGE( GLIB2 REQUIRED )
63FIND_PACKAGE( GTHREAD2 REQUIRED )
64FIND_PACKAGE( GMODULE2 REQUIRED )
65FIND_PACKAGE( Sqlite3 REQUIRED )
66FIND_PACKAGE( LibXml2 REQUIRED )
67FIND_PACKAGE( LibXslt REQUIRED )
68FIND_PACKAGE( LibExslt REQUIRED )
69FIND_PACKAGE( SWIG )   
70FIND_PACKAGE( PythonLibs )
71FIND_PACKAGE( Check )
72
73ADD_SUBDIRECTORY( opensync )
74ADD_SUBDIRECTORY( formats )
75ADD_SUBDIRECTORY( tools )
76ADD_SUBDIRECTORY( misc )
77ADD_SUBDIRECTORY( cmake )
78
79ADD_SUBDIRECTORY( docs/example-plugin/src/ )
80
81IF ( SWIG_FOUND )
82        ADD_SUBDIRECTORY( wrapper )
83ENDIF ( SWIG_FOUND )
84
85IF ( CHECK_FOUND AND OPENSYNC_UNITTESTS )
86        INCLUDE( Testing )
87        ADD_SUBDIRECTORY( tests )
88ENDIF ( CHECK_FOUND AND OPENSYNC_UNITTESTS )
89
90IF ( CMAKE_SYSTEM_NAME MATCHES SunOS )
91        SET( HAVE_SOLARIS 1 )
92ENDIF (CMAKE_SYSTEM_NAME MATCHES SunOS )
93
94##############################################
95
96IF ( 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} )
103ENDIF ( BUILD_DOCUMENTATION )
104
105INCLUDE( CheckFunctionExists )
106CHECK_FUNCTION_EXISTS( flock HAVE_FLOCK )
107
108# add uninstall target
109CONFIGURE_FILE( "${CMAKE_SOURCE_DIR}/cmake/modules/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY)
110
111ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
112
113CONFIGURE_FILE( "config.h.cmake" "config.h" )
114CONFIGURE_FILE( "libopensync.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/libopensync.pc" )
115
116########## INSTALL ##############################
117       
118INSTALL( FILES "${CMAKE_CURRENT_BINARY_DIR}/libopensync.pc" DESTINATION ${LIB_INSTALL_DIR}/pkgconfig/ )
119
120### CPack ########################################
121
122OPENSYNC_PACKAGE( ${PROJECT_NAME} ${OPENSYNC_VERSION} )
123
Note: See TracBrowser for help on using the browser.