2014-04-10 11:07:05 +01:00
|
|
|
cmake_minimum_required (VERSION 2.8)
|
2014-06-24 17:24:54 +01:00
|
|
|
project (mraa)
|
2014-04-08 18:43:26 +01:00
|
|
|
|
2014-05-07 14:48:21 +01:00
|
|
|
FIND_PACKAGE (Threads)
|
|
|
|
|
|
2014-04-28 00:29:14 +01:00
|
|
|
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall")
|
|
|
|
|
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall")
|
2014-04-08 18:43:26 +01:00
|
|
|
|
2014-04-28 00:29:14 +01:00
|
|
|
# Appends the cmake/modules path to MAKE_MODULE_PATH variable.
|
|
|
|
|
set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
|
|
|
|
|
|
|
|
|
|
# Make a version file containing the current version from git.
|
|
|
|
|
include (GetGitRevisionDescription)
|
|
|
|
|
git_describe (VERSION "--tags")
|
2014-04-28 11:40:26 +01:00
|
|
|
if ("x_${VERSION}" STREQUAL "x_GIT-NOTFOUND")
|
2014-06-24 17:24:54 +01:00
|
|
|
message (WARNING " - Install git to compile a production libmraa!")
|
2014-06-20 16:34:11 +01:00
|
|
|
set (VERSION "v0.3.1-dirty")
|
2014-04-28 11:40:26 +01:00
|
|
|
endif ()
|
2014-04-28 00:29:14 +01:00
|
|
|
|
2014-06-24 17:24:54 +01:00
|
|
|
message (INFO " - MRAA Version ${VERSION}")
|
2014-04-28 00:29:14 +01:00
|
|
|
|
|
|
|
|
#parse the version information into pieces.
|
|
|
|
|
string (REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${VERSION}")
|
|
|
|
|
string (REGEX REPLACE "^v[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${VERSION}")
|
|
|
|
|
string (REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" VERSION_PATCH "${VERSION}")
|
2014-06-09 13:20:11 +01:00
|
|
|
string (REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+\\-([0-9]+).*" "\\1" VERSION_COMMIT "${VERSION}")
|
|
|
|
|
string (REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+-[0-9]+\\-(.*)" "\\1" VERSION_SHA1 "${VERSION}")
|
2014-04-28 00:29:14 +01:00
|
|
|
set (VERSION_SHORT "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
|
|
|
|
|
2014-06-09 19:14:03 +01:00
|
|
|
if ("${VERSION_COMMIT}" MATCHES "^v.*")
|
|
|
|
|
set (VERSION_COMMIT "")
|
|
|
|
|
endif()
|
|
|
|
|
|
2014-04-28 00:29:14 +01:00
|
|
|
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/version.c.in
|
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/src/version.c)
|
|
|
|
|
|
|
|
|
|
# this is the library version, independant of git revision
|
2014-06-24 17:24:54 +01:00
|
|
|
set (mraa_VERSION_MAJOR ${VERSION_MAJOR})
|
|
|
|
|
set (mraa_VERSION_MINOR ${VERSION_MINOR})
|
|
|
|
|
set (mraa_VERSION_PATCH ${VERSION_PATCH})
|
|
|
|
|
set (mraa_VERSION_STRING ${mraa_VERSION_MAJOR}.${mraa_VERSION_MINOR}.${mraa_VERSION_PATCH})
|
2014-04-08 18:43:26 +01:00
|
|
|
|
2014-04-27 21:17:54 +01:00
|
|
|
set (CMAKE_SWIG_FLAGS "")
|
2014-04-23 17:28:14 +01:00
|
|
|
|
2014-05-20 15:40:28 +01:00
|
|
|
option (GTEST "Build all gtests." OFF)
|
2014-05-22 11:05:46 +01:00
|
|
|
option (BUILDDOC "Build all doc." OFF)
|
2014-05-23 13:56:45 +01:00
|
|
|
option (BUILDSWIG "Build swig modules." ON)
|
|
|
|
|
option (BUILDSWIGPYTHON "Build swig python modules." ON)
|
|
|
|
|
option (BUILDSWIGNODE "Build swig node modules." ON)
|
2014-06-03 13:29:28 +01:00
|
|
|
option (IPK "Generate IPK using CPack" OFF)
|
2014-04-10 11:07:05 +01:00
|
|
|
|
2014-05-22 11:05:46 +01:00
|
|
|
if (GTEST)
|
2014-04-10 11:07:05 +01:00
|
|
|
enable_testing ()
|
|
|
|
|
add_subdirectory (tests)
|
2014-04-23 17:28:14 +01:00
|
|
|
endif ()
|
2014-04-27 21:17:54 +01:00
|
|
|
|
2014-05-22 11:05:46 +01:00
|
|
|
if (BUILDDOC)
|
|
|
|
|
# add a target to generate API documentation with Doxygen
|
|
|
|
|
find_package (Doxygen)
|
|
|
|
|
if (DOXYGEN_FOUND)
|
|
|
|
|
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
|
|
|
|
|
add_custom_target (doc
|
|
|
|
|
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
|
|
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
|
|
|
COMMENT "Generating API documentation with Doxygen" VERBATIM
|
|
|
|
|
)
|
|
|
|
|
endif (DOXYGEN_FOUND)
|
|
|
|
|
endif ()
|
2014-04-28 00:29:14 +01:00
|
|
|
|
2014-06-03 13:29:28 +01:00
|
|
|
if (IPK)
|
|
|
|
|
include (TargetArch)
|
|
|
|
|
target_architecture (DETECTED_ARCH)
|
|
|
|
|
message( INFO " - Target arch is ${DETECTED_ARCH}")
|
|
|
|
|
|
|
|
|
|
set(CPACK_GENERATOR "DEB")
|
2014-06-09 13:20:11 +01:00
|
|
|
set(OPKG_ARCH ${DETECTED_ARCH})
|
2014-06-03 13:29:28 +01:00
|
|
|
set(CPACK_BINARY_DIR ${CMAKE_BINARY_DIR})
|
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Intel IoT-Devkit") #required
|
2014-06-24 17:24:54 +01:00
|
|
|
set(mraa_PACKAGE_ON_TAG ".")
|
2014-06-09 19:14:03 +01:00
|
|
|
if ("${VERSION_COMMIT}" STREQUAL "")
|
2014-06-24 17:24:54 +01:00
|
|
|
set(mraa_PACKAGE_ON_TAG "")
|
2014-06-09 19:14:03 +01:00
|
|
|
endif()
|
|
|
|
|
set(CPACK_PACKAGE_VERSION
|
2014-06-24 17:24:54 +01:00
|
|
|
"${mraa_VERSION_MAJOR}.${mraa_VERSION_MINOR}.${mraa_VERSION_PATCH}${mraa_PACKAGE_ON_TAG}${VERSION_COMMIT}")
|
|
|
|
|
set(CPACK_PACKAGE_NAME "libmraa${mraa_VERSION_MAJOR}")
|
2014-06-09 13:20:11 +01:00
|
|
|
set(CPACK_DEBIAN_PACKAGE_SECTION "libs")
|
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${DETECTED_ARCH})
|
|
|
|
|
set(CPACK_SYSTEM_NAME ${DETECTED_ARCH})
|
2014-06-24 17:24:54 +01:00
|
|
|
set(CPACK_DEBIAN_PACKAGE_PROVIDES "libmraa-dev, libmraa-dbg, libmraa-doc")
|
2014-06-09 19:14:03 +01:00
|
|
|
set(CPACK_DEBIAN_PACKAGE_REPLACES ${CPACK_DEBIAN_PACKAGE_PROVIDES})
|
|
|
|
|
set(CPACK_DEBIAN_PACKAGE_CONFLICTS ${CPACK_DEBIAN_PACKAGE_PROVIDES})
|
2014-06-03 13:29:28 +01:00
|
|
|
set(WDIR "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}")
|
|
|
|
|
include (CPack)
|
|
|
|
|
endif()
|
|
|
|
|
|
2014-04-28 00:29:14 +01:00
|
|
|
add_subdirectory (src)
|
|
|
|
|
add_subdirectory (examples)
|