X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=CMakeLists.txt;h=96602017c8343852099f0f8bd79416c065aa40d5;hb=4599f3c12a8dde52413214aeea92ee0a22289e75;hp=f3e0f4687fc39e8e8788d873e9e2ac1768a50963;hpb=1f3802abea5084d1ac5cd1d880e5900fa7f8a314;p=contrib%2Fmraa.git diff --git a/CMakeLists.txt b/CMakeLists.txt index f3e0f46..9660201 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,14 @@ cmake_minimum_required (VERSION 2.8) -project (maa) +project (mraa) -set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall") +FIND_PACKAGE (Threads REQUIRED) + +set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -fno-omit-frame-pointer") set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall") +set (LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "Installation path for libraries") + +# Set CMAKE_LIB_INSTALL_DIR if not defined +include(GNUInstallDirs) # Appends the cmake/modules path to MAKE_MODULE_PATH variable. set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH}) @@ -11,51 +17,129 @@ set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_ include (GetGitRevisionDescription) git_describe (VERSION "--tags") if ("x_${VERSION}" STREQUAL "x_GIT-NOTFOUND") - message (WARNING " - Install git to compile a production libmaa!") - set (VERSION "v0.2.0-dirty") + message (WARNING " - Install git to compile a production libmraa!") + set (VERSION "v0.6.1-dirty") endif () -message (INFO " - MAA Version ${VERSION}") +message (INFO " - libmraa Version ${VERSION}") #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}") -string (REGEX REPLACE "^v[0-9]+\\.[0-9]+\\.[0-9]+(.*)" "\\1" VERSION_SHA1 "${VERSION}") +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}") set (VERSION_SHORT "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") +if ("${VERSION_COMMIT}" MATCHES "^v.*") + set (VERSION_COMMIT "") +endif() + 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 -set (maa_VERSION_MAJOR ${VERSION_MAJOR}) -set (maa_VERSION_MINOR ${VERSION_MINOR}) -set (maa_VERSION_PATCH ${VERSION_PATCH}) -set (maa_VERSION_STRING ${maa_VERSION_MAJOR}.${maa_VERSION_MINOR}.${maa_VERSION_PATCH}) - -set (SWIG_EXECUTABLE /usr/bin/swig) -find_package (SWIG REQUIRED) -include (${SWIG_USE_FILE}) +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}) set (CMAKE_SWIG_FLAGS "") -option (test "Build all tests." OFF) +find_path (SYSTEM_USR_DIR "stdlib.h") +include_directories (${SYSTEM_USR_DIR}) + +option (BUILDDOC "Build all doc." OFF) +option (BUILDSWIG "Build swig modules." ON) +option (BUILDSWIGPYTHON "Build swig python modules." ON) +option (BUILDSWIGNODE "Build swig node modules." ON) +option (IPK "Generate IPK using CPack" OFF) +option (BUILDPYTHON3 "Use python3 for building/installing" OFF) +option (INSTALLGPIOTOOL "Install gpio tool" OFF) +option (BUILDARCH "Override architecture to build for - override" OFF) +option (TESTS "Override the addition of tests" ON) -if (test) - enable_testing () - add_subdirectory (tests) +if (NOT BUILDARCH) + include (TargetArch) + target_architecture (DETECTED_ARCH) + message( INFO " - Target arch is ${DETECTED_ARCH}") +else () + set (DETECTED_ARCH ${BUILDARCH}) + message( INFO " - Override arch is ${DETECTED_ARCH}") +endif() + +if (DETECTED_ARCH STREQUAL "i586" OR DETECTED_ARCH STREQUAL "x86_64" + OR DETECTED_ARCH STREQUAL "i386") + set (X86PLAT ON) +elseif (DETECTED_ARCH MATCHES "arm.*") + set (ARMPLAT ON) +else () + message(FATAL_ERROR "Only x86 and arm platforms currently supported") +endif() + +if (BUILDSWIGPYTHON) + if (BUILDPYTHON3) + set (PYTHONBUILD_VERSION 3) + else () + set (PYTHONBUILD_VERSION 2.7) + endif () + find_package (PythonInterp ${PYTHONBUILD_VERSION} REQUIRED) + if (TESTS) + if (${PYTHONINTERP_FOUND}) + enable_testing () + add_subdirectory (tests) + endif () + endif () endif () -# 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) +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 () + +if (IPK) + # Get target package arch from Yocto ADT sysroot if set or host OS, mapping to Ubuntu name if necessary + if (DEFINED ENV{OECORE_TARGET_SYSROOT}) + GET_FILENAME_COMPONENT (DETECTED_SYSROOT $ENV{OECORE_TARGET_SYSROOT} NAME) + string (REGEX REPLACE "-poky-linux" "" TARGET_ARCH "${DETECTED_SYSROOT}") + else () + # debian uses amd64 to denote x86_64 + if (DETECTED_ARCH STREQUAL "x86_64") + set (TARGET_ARCH "amd64") + else () + set (TARGET_ARCH ${DETECTED_ARCH}) + endif () + endif () + message (INFO " - Package arch is ${TARGET_ARCH}") + + set(CPACK_GENERATOR "DEB" "TGZ") + set(OPKG_ARCH ${TARGET_ARCH}) + set(CPACK_BINARY_DIR ${CMAKE_BINARY_DIR}) + set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Intel IoT-Devkit") #required + set(mraa_PACKAGE_ON_TAG ".") + if ("${VERSION_COMMIT}" STREQUAL "") + set(mraa_PACKAGE_ON_TAG "") + endif() + set(CPACK_PACKAGE_VERSION + "${mraa_VERSION_MAJOR}.${mraa_VERSION_MINOR}.${mraa_VERSION_PATCH}${mraa_PACKAGE_ON_TAG}${VERSION_COMMIT}") + set(CPACK_PACKAGE_NAME "libmraa${mraa_VERSION_MAJOR}") + set(CPACK_DEBIAN_PACKAGE_SECTION "libs") + set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${TARGET_ARCH}) + set(CPACK_SYSTEM_NAME ${TARGET_ARCH}) + set(CPACK_DEBIAN_PACKAGE_PROVIDES "libmraa-dev, libmraa-dbg, libmraa-doc") + set(CPACK_DEBIAN_PACKAGE_REPLACES ${CPACK_DEBIAN_PACKAGE_PROVIDES}) + set(CPACK_DEBIAN_PACKAGE_CONFLICTS ${CPACK_DEBIAN_PACKAGE_PROVIDES}) + set(WDIR "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}") + include (CPack) +endif() add_subdirectory (src) add_subdirectory (examples)