diff --git a/CMakeLists.txt b/CMakeLists.txt index 439b85b..aa75a8b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -134,8 +134,6 @@ option (ONEWIRE "Add Onewire support to mraa." ON) option (JSONPLAT "Add Platform loading via a json file." ON) option (IMRAA "Add Imraa support to mraa." OFF) option (FTDI4222 "Build with FTDI FT4222 subplatform support." OFF) -option (IPK "Generate IPK using CPack" OFF) -option (RPM "Generate RPM using CPack" OFF) option (ENABLEEXAMPLES "Disable building of examples" ON) option (INSTALLTOOLS "Install all tools" ON) option (BUILDTESTS "Override the addition of tests" ON) @@ -197,66 +195,6 @@ if (BUILDDOC) endif (DOXYGEN_FOUND AND DOXYGEN_VERSION VERSION_GREATER "1.8") 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 (STATUS "INFO - Package arch is ${TARGET_ARCH}") - - set(CPACK_GENERATOR "DEB") - 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 "mraa") - set(CPACK_DEBIAN_PACKAGE_SECTION "libs") - 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 (STATUS "INFO - Enabled RPM packaging for ${DETECTED_ARCH}") - set(CMAKE_INSTALL_PREFIX "/usr") - 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") - # Get distro tag (e.g. 'fc20') by parsing output of rpm --showrc - EXECUTE_PROCESS( - COMMAND rpm --showrc - COMMAND grep -w dist - COMMAND sed -e "s/\\t./ /" - COMMAND awk "{printf \"%s\", \$NF}" - 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) if (ENABLEEXAMPLES) add_subdirectory (examples) diff --git a/README.md b/README.md index 831fb72..1f3dd8b 100644 --- a/README.md +++ b/README.md @@ -123,28 +123,6 @@ in /usr/lib. Subplatforms (i.e. Firmata) have to be added manually with this kind of install from your application, as shown in [this example](examples/javascript/firmata.js). -Installing on Intel 32bit Yocto based opkg image ------------------------------------------------- - -See the section below on compiling or use our repository to install on a glibc -based yocto poky image that supports opkg. Adding this repository is as simple -as and you'll have the latest stable tagged build of mraa installed! - -``` bash -echo "src mraa-upm http://iotdk.intel.com/repos/3.5/intelgalactic/opkg/i586" > /etc/opkg/mraa-upm.conf -opkg update -opkg install mraa -``` - -If you would like to get the latest & greatest builds from master HEAD you can -use our -dev repository - -```bash -echo "src mraa-upm http://iotdk.intel.com/repos/3.5/intelgalactic-dev/opkg/i586" > /etc/opkg/mraa-upm.conf -opkg update -opkg install mraa -``` - Compiling ========= diff --git a/cmake/modules/CPackDeb.cmake b/cmake/modules/CPackDeb.cmake deleted file mode 100644 index e924f54..0000000 --- a/cmake/modules/CPackDeb.cmake +++ /dev/null @@ -1,222 +0,0 @@ -# - The builtin (binary) CPack Deb generator (Unix only) -# CPackDeb may be used to create Deb package using CPack. -# CPackDeb is a CPack generator thus it uses the CPACK_XXX variables -# used by CPack : http://www.cmake.org/Wiki/CMake:CPackConfiguration -# -# However CPackRPM has specific features which are controlled by -# the specifics CPACK_RPM_XXX variables.You'll find a detailed usage on -# the wiki: -# http://www.cmake.org/Wiki/CMake:CPackPackageGenerators#DEB_.28UNIX_only.29 -# However as a handy reminder here comes the list of specific variables: -# -# CPACK_DEBIAN_PACKAGE_NAME -# Mandatory : YES -# Default : CPACK_PACKAGE_NAME (lower case) -# The debian package summary -# CPACK_DEBIAN_PACKAGE_VERSION -# Mandatory : YES -# Default : CPACK_PACKAGE_VERSION -# The debian package version -# CPACK_DEBIAN_PACKAGE_ARCHITECTURE) -# Mandatory : YES -# Default : Output of dpkg --print-architecture or i386 -# The debian package architecture -# CPACK_DEBIAN_PACKAGE_DEPENDS -# Mandatory : NO -# Default : - -# May be used to set deb dependencies. -# CPACK_DEBIAN_PACKAGE_MAINTAINER -# Mandatory : YES -# Default : CPACK_PACKAGE_CONTACT -# The debian package maintainer -# CPACK_DEBIAN_PACKAGE_DESCRIPTION -# Mandatory : YES -# Default : CPACK_PACKAGE_DESCRIPTION_SUMMARY -# The debian package description -# CPACK_DEBIAN_PACKAGE_SECTION -# Mandatory : YES -# Default : 'devel' -# The debian package section -# CPACK_DEBIAN_PACKAGE_PRIORITY -# Mandatory : YES -# Default : 'optional' -# The debian package priority - -#============================================================================= -# Copyright 2007-2009 Kitware, Inc. -# Copyright 2007-2009 Mathieu Malaterre -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distributed this file outside of CMake, substitute the full -# License text for the above reference.) - -# CPack script for creating Debian package -# Author: Mathieu Malaterre -# -# http://wiki.debian.org/HowToPackageForDebian - -IF(CMAKE_BINARY_DIR) - MESSAGE(FATAL_ERROR "CPackDeb.cmake may only be used by CPack internally.") -ENDIF(CMAKE_BINARY_DIR) - -IF(NOT UNIX) - MESSAGE(FATAL_ERROR "CPackDeb.cmake may only be used under UNIX.") -ENDIF(NOT UNIX) - -# Let's define the control file found in debian package: - -# Binary package: -# http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-binarycontrolfiles - -# DEBIAN/control -# debian policy enforce lower case for package name -# Package: (mandatory) -IF(NOT CPACK_DEBIAN_PACKAGE_NAME) - STRING(TOLOWER "${CPACK_PACKAGE_NAME}" CPACK_DEBIAN_PACKAGE_NAME) -ENDIF(NOT CPACK_DEBIAN_PACKAGE_NAME) - -# Version: (mandatory) -IF(NOT CPACK_DEBIAN_PACKAGE_VERSION) - IF(NOT CPACK_PACKAGE_VERSION) - MESSAGE(FATAL_ERROR "Debian package requires a package version") - ENDIF(NOT CPACK_PACKAGE_VERSION) - SET(CPACK_DEBIAN_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}) -ENDIF(NOT CPACK_DEBIAN_PACKAGE_VERSION) - -# Architecture: (mandatory) -IF(NOT CPACK_DEBIAN_PACKAGE_ARCHITECTURE) - # There is no such thing as i686 architecture on debian, you should use i386 instead - # $ dpkg --print-architecture - FIND_PROGRAM(DPKG_CMD dpkg) - IF(NOT DPKG_CMD) - MESSAGE(STATUS "Can not find dpkg in your path, default to i386.") - SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE i386) - ENDIF(NOT DPKG_CMD) - EXECUTE_PROCESS(COMMAND "${DPKG_CMD}" --print-architecture - OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE - OUTPUT_STRIP_TRAILING_WHITESPACE - ) -ENDIF(NOT CPACK_DEBIAN_PACKAGE_ARCHITECTURE) - -# have a look at GET_PROPERTY(result GLOBAL PROPERTY ENABLED_FEATURES), -# this returns the successful FIND_PACKAGE() calls, maybe this can help -# Depends: -# You should set: DEBIAN_PACKAGE_DEPENDS -# TODO: automate 'objdump -p | grep NEEDED' -IF(NOT CPACK_DEBIAN_PACKAGE_DEPENDS) - MESSAGE(STATUS "CPACK_DEBIAN_PACKAGE_DEPENDS not set, the package will have no dependencies.") -ENDIF(NOT CPACK_DEBIAN_PACKAGE_DEPENDS) - -# Maintainer: (mandatory) -IF(NOT CPACK_DEBIAN_PACKAGE_MAINTAINER) - IF(NOT CPACK_PACKAGE_CONTACT) - MESSAGE(FATAL_ERROR "Debian package requires a maintainer for a package, set CPACK_PACKAGE_CONTACT or CPACK_DEBIAN_PACKAGE_MAINTAINER") - ENDIF(NOT CPACK_PACKAGE_CONTACT) - SET(CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_CONTACT}) -ENDIF(NOT CPACK_DEBIAN_PACKAGE_MAINTAINER) - -# Description: (mandatory) -IF(NOT CPACK_DEBIAN_PACKAGE_DESCRIPTION) - IF(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY) - MESSAGE(FATAL_ERROR "Debian package requires a summary for a package, set CPACK_PACKAGE_DESCRIPTION_SUMMARY or CPACK_DEBIAN_PACKAGE_DESCRIPTION") - ENDIF(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY) - SET(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY}) -ENDIF(NOT CPACK_DEBIAN_PACKAGE_DESCRIPTION) - -# Section: (recommended) -IF(NOT CPACK_DEBIAN_PACKAGE_SECTION) - SET(CPACK_DEBIAN_PACKAGE_SECTION "devel") -ENDIF(NOT CPACK_DEBIAN_PACKAGE_SECTION) - -# Priority: (recommended) -IF(NOT CPACK_DEBIAN_PACKAGE_PRIORITY) - SET(CPACK_DEBIAN_PACKAGE_PRIORITY "optional") -ENDIF(NOT CPACK_DEBIAN_PACKAGE_PRIORITY ) - -# Recommends: -# You should set: CPACK_DEBIAN_PACKAGE_RECOMMENDS - -# Suggests: -# You should set: CPACK_DEBIAN_PACKAGE_SUGGESTS - -# CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA -# This variable allow advanced user to add custom script to the control.tar.gz (inside the .deb archive) -# Typical examples are: -# - conffiles -# - postinst -# - postrm -# - prerm" -# Usage: -# SET(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA -# "${CMAKE_CURRENT_SOURCE_DIR/prerm;${CMAKE_CURRENT_SOURCE_DIR}/postrm") - - -# For debian source packages: -# debian/control -# http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-sourcecontrolfiles - -# .dsc -# http://www.debian.org/doc/debian-policy/ch-controlfields.html#s-debiansourcecontrolfiles - -# Builds-Depends: -#IF(NOT CPACK_DEBIAN_PACKAGE_BUILDS_DEPENDS) -# SET(CPACK_DEBIAN_PACKAGE_BUILDS_DEPENDS -# "debhelper (>> 5.0.0), libncurses5-dev, tcl8.4" -# ) -#ENDIF(NOT CPACK_DEBIAN_PACKAGE_BUILDS_DEPENDS) - -# Description: (mandatory) -#if(NOT CPACK_SECTION) -# message(FATAL_ERROR "opkg package requires a package section") -#endif(NOT CPACK_SECTION) - -# Package for opkg -FIND_PROGRAM(OPKG_CMD opkg-build) -if( ${OPKG_CMD} STREQUAL "OPKG_CMD-NOTFOUND" ) - message("CPack: opkg-build not found. Skipping packaging") -else( ${OPKG_CMD} STREQUAL "OPKG_CMD-NOTFOUND" ) - SET(CPACK_OPKG_ROOTDIR "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}") - FILE(MAKE_DIRECTORY ${CPACK_OPKG_ROOTDIR}/CONTROL) - set(CPACK_OPKG_CONTROL_FILE "${CPACK_OPKG_ROOTDIR}/CONTROL/control") - # Write controlfile - FILE(WRITE ${CPACK_OPKG_CONTROL_FILE} - "Package: ${CPACK_PACKAGE_NAME} -Version: ${CPACK_PACKAGE_VERSION} -Description: ${CPACK_PACKAGE_DESCRIPTION_SUMMARY} -Architecture: ${CPACK_DEBIAN_PACKAGE_ARCHITECTURE} -Section: ${CPACK_DEBIAN_PACKAGE_SECTION} -Priority: optional -Maintainer: ${CPACK_DEBIAN_PACKAGE_MAINTAINER} -Depends: -Provides: ${CPACK_DEBIAN_PACKAGE_PROVIDES} -Replaces: ${CPACK_DEBIAN_PACKAGE_REPLACES} -Conflicts: ${CPACK_DEBIAN_PACKAGE_CONFLICTS} -Source: https://github.com/intel-iot-devkit/mraa -#Essential: no -") - -set(OPKG_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}") - execute_process( - COMMAND "${OPKG_CMD}" "-o" "0" "${CPACK_PACKAGE_FILE_NAME}" "." - RESULT_VARIABLE _result - OUTPUT_VARIABLE _res_output - ERROR_VARIABLE _res_error - WORKING_DIRECTORY ${CPACK_TOPLEVEL_DIRECTORY} - ) - - if(${_result}) - message("Result '${_result}'") - message("Output '${_res_output}'") - message("Error '${_res_error}'") - else(${_result}) - message("CPack: Package ${OPKG_FILE_NAME}.ipk generated.") - set(WDIR "${CPACK_TOPLEVEL_DIRECTORY}/${CPACK_PACKAGE_FILE_NAME}") - file(RENAME ${CPACK_TOPLEVEL_DIRECTORY}/${OPKG_FILE_NAME}.ipk ${CPACK_BINARY_DIR}/${OPKG_FILE_NAME}.ipk) - endif(${_result}) -endif( ${OPKG_CMD} STREQUAL "OPKG_CMD-NOTFOUND" ) diff --git a/docker-compose.yaml b/docker-compose.yaml index 31dea3b..25280a3 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -21,8 +21,6 @@ services: - JSONPLAT=${JSONPLAT:-OFF} - IMRAA=${IMRAA:-OFF} - FTDI4222=${FTDI4222:-OFF} - - IPK=${IPK:-OFF} - - RPM=${RPM:-OFF} - ENABLEEXAMPLES=${ENABLEEXAMPLES:-OFF} - INSTALLTOOLS=${INSTALLTOOLS:-ON} - CC=${CC:-clang-3.8} @@ -105,20 +103,6 @@ services: - FTDI4222=ON command: bash -c "./scripts/run-cmake.sh && make -Cbuild" - ipk: - extends: all - environment: - - IPK=ON - - ENABLEEXAMPLES=ON - command: bash -c "./scripts/run-cmake.sh && make -Cbuild package" - - rpm: - extends: all - environment: - - RPM=ON - - ENABLEEXAMPLES=ON - command: bash -c "./scripts/run-cmake.sh && make -Cbuild package" - python2: extends: base image: inteliotdevkit/mraa-python diff --git a/docs/building.md b/docs/building.md index 395df8d..e84aa50 100644 --- a/docs/building.md +++ b/docs/building.md @@ -164,23 +164,6 @@ java -cp $DIR_WHERE_YOU_INSTALLED_MRAA/mraa.jar:. Example If you want to add or improve Java bindings for mraa, please follow the Creating Java Bindings Guide. -## Building an IPK/RPM package using `cpack` - -You can get `cpack` to generate an IPK or RPM package fairly easily if you have -the correct packaging tools - -~~~~~~~~~~~~~{.sh} -cmake -DIPK=ON -DCMAKE_INSTALL_PREFIX=/usr .. -make package -~~~~~~~~~~~~~ - -To use RPM simply enable the RPM option. You'll need `rpmbuild` installed on your -build machine. - -~~~~~~~~~~~~~{.sh} -cmake -DRPM=ON -DCMAKE_INSTALL_PREFIX=/usr .. -~~~~~~~~~~~~~ - ## Building for the Android Things Peripheralmanager Client Requirements: diff --git a/scripts/build-android.sh b/scripts/build-android.sh index 40a3c75..0dc96bf 100755 --- a/scripts/build-android.sh +++ b/scripts/build-android.sh @@ -72,8 +72,6 @@ cmake \ -DJSONPLAT=$JSONPLAT \ -DIMRAA=$IMRAA \ -DFTDI4222=$FTDI4222 \ - -DIPK=$IPK \ - -DRPM=$RPM \ -DENABLEEXAMPLES=$ENABLEEXAMPLES \ -DINSTALLTOOLS=$INSTALLTOOLS \ -DBUILDTESTS=$BUILDTESTS \ diff --git a/scripts/run-cmake.sh b/scripts/run-cmake.sh index 11a2e10..df49180 100755 --- a/scripts/run-cmake.sh +++ b/scripts/run-cmake.sh @@ -17,8 +17,6 @@ cmake \ -DJSONPLAT=$JSONPLAT \ -DIMRAA=$IMRAA \ -DFTDI4222=$FTDI4222 \ - -DIPK=$IPK \ - -DRPM=$RPM \ -DENABLEEXAMPLES=$ENABLEEXAMPLES \ -DINSTALLTOOLS=$INSTALLTOOLS \ -DBUILDTESTS=$BUILDTESTS \