X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=CMakeLists.txt;h=3ad76d3604c2107851659cca2e9a443a7d3b4cc1;hb=ba348a2da407ff67bb6c8c36aa0105a5458270d3;hp=16c8f3cd9d963f40717c8c660dcba1d7cec309e5;hpb=6853997a922f5067a242d07395cb8e768f14c4be;p=contrib%2Fmraa.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 16c8f3c..3ad76d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,10 +1,14 @@ cmake_minimum_required (VERSION 2.8) project (mraa) -FIND_PACKAGE (Threads) +FIND_PACKAGE (Threads REQUIRED) -set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall") +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}) @@ -12,12 +16,12 @@ set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_ # Make a version file containing the current version from git. include (GetGitRevisionDescription) git_describe (VERSION "--tags") -if ("x_${VERSION}" STREQUAL "x_GIT-NOTFOUND") +if ("x_${VERSION}" STREQUAL "x_GIT-NOTFOUND" OR "x_${VERSION}" STREQUAL "x_HEAD-HASH-NOTFOUND") message (WARNING " - Install git to compile a production libmraa!") - set (VERSION "v0.3.1-dirty") + set (VERSION "v0.7.4-dirty") endif () -message (INFO " - MRAA Version ${VERSION}") +message (INFO " - libmraa Version ${VERSION}") #parse the version information into pieces. string (REGEX REPLACE "^v([0-9]+)\\..*" "\\1" VERSION_MAJOR "${VERSION}") @@ -42,16 +46,59 @@ set (mraa_VERSION_STRING ${mraa_VERSION_MAJOR}.${mraa_VERSION_MINOR}.${mraa_VERS set (CMAKE_SWIG_FLAGS "") -option (GTEST "Build all gtests." 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 (BUILDSWIGJAVA "Build Java API." OFF) option (IPK "Generate IPK using CPack" OFF) +option (RPM "Generate RPM using CPack" OFF) +option (BUILDPYTHON3 "Use python3 for building/installing" OFF) +option (ENABLEEXAMPLES "Disable building of examples" ON) +option (INSTALLGPIOTOOL "Install gpio tool" OFF) +option (BUILDARCH "Override architecture to build for - override" OFF) +option (TESTS "Override the addition of tests" ON) + +if (NOT BUILDSWIG) + set (BUILDSWIGPYTHON OFF) + set (BUILDSWIGNODE OFF) + set (BUILDSWIGJAVA OFF) +endif() + +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 (GTEST) - enable_testing () - add_subdirectory (tests) +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 () if (BUILDDOC) @@ -68,12 +115,22 @@ if (BUILDDOC) endif () if (IPK) - include (TargetArch) - target_architecture (DETECTED_ARCH) - message( INFO " - Target arch is ${DETECTED_ARCH}") - - set(CPACK_GENERATOR "DEB") - set(OPKG_ARCH ${DETECTED_ARCH}) + # 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 ".") @@ -82,16 +139,39 @@ if (IPK) 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_PACKAGE_NAME "mraa") set(CPACK_DEBIAN_PACKAGE_SECTION "libs") - set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${DETECTED_ARCH}) - set(CPACK_SYSTEM_NAME ${DETECTED_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_ARCHITECTURE ${TARGET_ARCH}) + set(CPACK_SYSTEM_NAME ${TARGET_ARCH}) + set(CPACK_DEBIAN_PACKAGE_PROVIDES "mraa-dev, mraa-dbg, mraa-doc") + set(CPACK_DEBIAN_PACKAGE_REPLACES "${CPACK_DEBIAN_PACKAGE_PROVIDES}, libmraa, libmraa-dev, libmraa-doc") set(CPACK_DEBIAN_PACKAGE_CONFLICTS ${CPACK_DEBIAN_PACKAGE_PROVIDES}) set(WDIR "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}") include (CPack) endif() +if (RPM) + message (INFO " - Enabled RPM packaging for ${DETECTED_ARCH}") + set(CPACK_PACKAGE_VERSION ${VERSION}) + set(CPACK_GENERATOR "RPM") + set(CPACK_PACKAGE_NAME "libmraa${mraa_VERSION_MAJOR}") + set(CPACK_PACKAGE_RELEASE 1) + set(CPACK_PACKAGE_VERSION + "${mraa_VERSION_MAJOR}.${mraa_VERSION_MINOR}.${mraa_VERSION_PATCH}${mraa_PACKAGE_ON_TAG}${VERSION_COMMIT}") + set(CPACK_PACKAGE_CONTACT "Intel IoT-Devkit") + set(CPACK_PACKAGE_VENDOR "Intel IoT-Devkit") + set(CPACK_RPM_PACKAGE_PROVIDES "${CPACK_PACKAGE_NAME}-devel") + EXECUTE_PROCESS(COMMAND rpm --showrc + COMMAND grep -E "dist[[:space:]]*\\." + COMMAND sed -e "s/^.*dist\\s*\\.//" + COMMAND tr \\n \\t + COMMAND sed -e s/\\t// + OUTPUT_VARIABLE DIST_TAG) + set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CPACK_PACKAGE_RELEASE}.${DIST_TAG}.${DETECTED_ARCH}") + include(CPack) +endif() + add_subdirectory (src) -add_subdirectory (examples) +if (ENABLEEXAMPLES) + add_subdirectory (examples) +endif ()