version.h: add versioning info from git
[contrib/mraa.git] / CMakeLists.txt
1 cmake_minimum_required (VERSION 2.8)
2 project (maa)
3
4 set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall")
5 set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall")
6
7 # Appends the cmake/modules path to MAKE_MODULE_PATH variable.
8 set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
9
10 # Make a version file containing the current version from git.
11 include (GetGitRevisionDescription)
12 git_describe (VERSION "--tags")
13
14 message (INFO " - MAA Version ${VERSION}")
15
16 #parse the version information into pieces.
17 string (REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${VERSION}")
18 string (REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${VERSION}")
19 string (REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${VERSION}")
20 string (REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+(.*)" "\\1" VERSION_SHA1 "${VERSION}")
21 set (VERSION_SHORT "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
22
23 configure_file (${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/version.c.in
24                 ${CMAKE_CURRENT_BINARY_DIR}/src/version.c)
25
26 # this is the library version, independant of git revision
27 set (maa_VERSION_MAJOR ${VERSION_MAJOR})
28 set (maa_VERSION_MINOR ${VERSION_MINOR})
29 set (maa_VERSION_PATCH ${VERSION_PATCH})
30 set (maa_VERSION_STRING ${maa_VERSION_MAJOR}.${maa_VERSION_MINOR}.${maa_VERSION_PATCH})
31
32 set (SWIG_EXECUTABLE /usr/bin/swig)
33 find_package (SWIG REQUIRED)
34 include (${SWIG_USE_FILE})
35
36 set (CMAKE_SWIG_FLAGS "")
37
38 option (test "Build all tests." OFF)
39
40 if (test)
41   enable_testing ()
42   add_subdirectory (tests)
43 endif ()
44
45 # add a target to generate API documentation with Doxygen
46 find_package (Doxygen)
47 if (DOXYGEN_FOUND)
48   configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
49   add_custom_target (doc
50     ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
51     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
52     COMMENT "Generating API documentation with Doxygen" VERBATIM
53   )
54 endif (DOXYGEN_FOUND)
55
56 add_subdirectory (src)
57 add_subdirectory (examples)