Files
operating-system/buildroot/package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch
Stefan Agner a0871be6c0 Bump buildroot to 2020.11-rc1 (#985)
* Update buildroot-patches for 2020.11-rc1 buildroot

* Update buildroot to 2020.11-rc1

Signed-off-by: Stefan Agner <stefan@agner.ch>

* Don't rely on sfdisk --list-free output

The --list-free (-F) argument does not allow machine readable mode. And
it seems that the output format changes over time (different spacing,
using size postfixes instead of raw blocks).

Use sfdisk json output and calculate free partition space ourselfs. This
works for 2.35 and 2.36 and is more robust since we rely on output which
is meant for scripts to parse.

* Migrate defconfigs for Buildroot 2020.11-rc1

In particular, rename BR2_TARGET_UBOOT_BOOT_SCRIPT(_SOURCE) to
BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT(_SOURCE).

* Rebase/remove systemd patches for systemd 246

* Drop apparmor/libapparmor from buildroot-external

* hassos-persists: use /run as directory for lockfiles

The U-Boot tools use /var/lock by default which is not created any more
by systemd by default (it is under tmpfiles legacy.conf, which we no
longer install).

* Disable systemd-update-done.service

The service is not suited for pure read-only systems. In particular the
service needs to be able to write a file in /etc and /var. Remove the
service. Note: This is a static service and cannot be removed using
systemd-preset.

* Disable apparmor.service for now

The service loads all default profiles. Some might actually cause
problems. E.g. the profile for ping seems not to match our setup for
/etc/resolv.conf:
[85503.634653] audit: type=1400 audit(1605286002.684:236): apparmor="DENIED" operation="open" profile="ping" name="/run/resolv.conf" pid=27585 comm="ping" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
2020-11-13 18:25:44 +01:00

194 lines
7.6 KiB
Diff

From cb88e4dd1fbbb9d24e625dba2768b88ed99da309 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Sat, 13 Jun 2020 22:51:37 +0200
Subject: [PATCH] CMakeLists.txt: add BUILDCPP option
C++ is a mandatory dependency since version 1.4.0 and
https://github.com/eclipse/mraa/commit/122cab1f1e53b7c9c7cd82905b962071f9bad9dc
As a result, build on embedded toolchains that do not support C++ fails
on:
CMake Error at CMakeLists.txt:2 (project):
The CMAKE_CXX_COMPILER:
/home/naourr/work/instance-1/output-1/per-package/mraa/host/bin/arm-linux-g++
is not a full path to an existing compiler tool.
Fixes:
- http://autobuild.buildroot.org/results/31086422e03611c16ab59c4418e3669b580bc0c0
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Retrieved from:
https://github.com/eclipse/mraa/commit/cb88e4dd1fbbb9d24e625dba2768b88ed99da309]
---
CMakeLists.txt | 69 +++++++++++++++++++----------------
src/java/CMakeLists.txt | 4 +-
src/javascript/CMakeLists.txt | 34 +++++++++--------
3 files changed, 59 insertions(+), 48 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 250d9106e..90c0dc920 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required (VERSION 2.8.11)
-project (mraa C CXX)
+project (mraa C)
FIND_PACKAGE (Threads REQUIRED)
@@ -11,6 +11,8 @@ else ()
set (CMAKE_C_STANDARD 99)
endif ()
+option (BUILDCPP "Enable C++ (needed by FTDI4222 and tests)" ON)
+
###############################################################################
# Detect supported warning flags
# Modified from work By Dan Liew (fpbench - MIT)
@@ -33,15 +35,18 @@ set (MRAA_C_WARNING_FLAGS
-Werror=missing-parameter-type
)
-# Warning flags for the C++ compiler only
-set (MRAA_CXX_WARNING_FLAGS
- -Wnon-virtual-dtor
- -Woverloaded-virtual
- -Wreorder
-)
-
include (CheckCCompilerFlag)
-include (CheckCXXCompilerFlag)
+if (BUILDCPP)
+ # Warning flags for the C++ compiler only
+ set (MRAA_CXX_WARNING_FLAGS
+ -Wnon-virtual-dtor
+ -Woverloaded-virtual
+ -Wreorder
+ )
+
+ enable_language (CXX)
+ include (CheckCXXCompilerFlag)
+endif ()
function (MRAA_SANITIZE_FLAG_NAME OUTPUT_VAR FLAG)
string (REPLACE "-" "_" SANITIZED_FLAG_NAME "${FLAG}")
string (REPLACE "/" "_" SANITIZED_FLAG_NAME "${SANITIZED_FLAG_NAME}")
@@ -62,28 +67,30 @@ foreach (flag ${MRAA_BOTH_WARNING_FLAGS} ${MRAA_C_WARNING_FLAGS})
endif ()
endforeach ()
-# Globally set C++ compiler warning flags that are supported and emit
-# a warning about unsupported flags
-foreach (flag ${MRAA_BOTH_WARNING_FLAGS} ${MRAA_CXX_WARNING_FLAGS})
- MRAA_SANITIZE_FLAG_NAME (SANITIZED_FLAG_NAME "${flag}")
- CHECK_CXX_COMPILER_FLAG ("${flag}" HAS_CXX_${SANITIZED_FLAG_NAME})
- if (HAS_CXX_${SANITIZED_FLAG_NAME})
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
- else ()
- message (WARNING "C++ compiler does not support flag \"${flag}\"")
- endif ()
-endforeach ()
-
-# This function adds the c++11 flag to a c++ target (if supported)
-function(use_cxx_11 targetname)
- include(CheckCXXCompilerFlag)
- CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
- if (COMPILER_SUPPORTS_CXX11)
- set_target_properties(${targetname} PROPERTIES COMPILE_FLAGS "-std=c++11")
- else()
- message(FATAL_ERROR "Target '${targetname}' requires c++11 which is not supported by this compiler")
- endif()
-endfunction()
+if (BUILDCPP)
+ # Globally set C++ compiler warning flags that are supported and emit
+ # a warning about unsupported flags
+ foreach (flag ${MRAA_BOTH_WARNING_FLAGS} ${MRAA_CXX_WARNING_FLAGS})
+ MRAA_SANITIZE_FLAG_NAME (SANITIZED_FLAG_NAME "${flag}")
+ CHECK_CXX_COMPILER_FLAG ("${flag}" HAS_CXX_${SANITIZED_FLAG_NAME})
+ if (HAS_CXX_${SANITIZED_FLAG_NAME})
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
+ else ()
+ message (WARNING "C++ compiler does not support flag \"${flag}\"")
+ endif ()
+ endforeach ()
+
+ # This function adds the c++11 flag to a c++ target (if supported)
+ function(use_cxx_11 targetname)
+ include(CheckCXXCompilerFlag)
+ CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
+ if (COMPILER_SUPPORTS_CXX11)
+ set_target_properties(${targetname} PROPERTIES COMPILE_FLAGS "-std=c++11")
+ else()
+ message(FATAL_ERROR "Target '${targetname}' requires c++11 which is not supported by this compiler")
+ endif()
+ endfunction()
+endif()
# Set CMAKE_INSTALL_LIBDIR if not defined
include(GNUInstallDirs)
diff --git a/src/java/CMakeLists.txt b/src/java/CMakeLists.txt
index 231c755fa..cfa72a0df 100644
--- a/src/java/CMakeLists.txt
+++ b/src/java/CMakeLists.txt
@@ -16,7 +16,9 @@ include_directories (
set_source_files_properties (mraajava.i PROPERTIES SWIG_FLAGS ";-package;mraa;-I${CMAKE_BINARY_DIR}/src")
set_source_files_properties (mraajava.i PROPERTIES CPLUSPLUS ON)
-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -DJAVACALLBACK")
+if (BUILDCPP)
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -DJAVACALLBACK")
+endif()
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DJAVACALLBACK")
if (NOT DEFINED ENV{JAVA_HOME_NATIVE})
diff --git a/src/javascript/CMakeLists.txt b/src/javascript/CMakeLists.txt
index 25fd36275..99a96b49d 100644
--- a/src/javascript/CMakeLists.txt
+++ b/src/javascript/CMakeLists.txt
@@ -36,25 +36,27 @@ set_target_properties (mraajs PROPERTIES
)
message (STATUS "INFO - swig Version ${SWIG_VERSION}")
-message (STATUS "INFO - CXX compiler Version ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
+if (BUILDCPP)
+ message (STATUS "INFO - CXX compiler Version ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
-if (${V8_VERSION_MAJOR} GREATER 3)
- message (STATUS "INFO - Using V8 version > 3 so requiring C++11 compiler")
- # Node 0.12.x V8 engine major version is '3'.
- # Node 2.1.0 V8 engine major version is '4'.
- set_property (TARGET mraajs PROPERTY CXX_STANDARD 11)
- set_property (TARGET mraajs PROPERTY CXX_STANDARD_REQUIRED ON)
- if (CMAKE_VERSION VERSION_LESS "3.1")
- message (WARNING "Need to use CMAKE version 3.1+, but it is ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}, using a workaround.")
- if (CMAKE_COMPILER_IS_GNUCXX)
- if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.7")
- message (FATAL_ERROR "GNU gcc compiler is also too old (need 4.7+, but ${CMAKE_CXX_COMPILER_VERSION}) and does not support C++11 standard.")
+ if (${V8_VERSION_MAJOR} GREATER 3)
+ message (STATUS "INFO - Using V8 version > 3 so requiring C++11 compiler")
+ # Node 0.12.x V8 engine major version is '3'.
+ # Node 2.1.0 V8 engine major version is '4'.
+ set_property (TARGET mraajs PROPERTY CXX_STANDARD 11)
+ set_property (TARGET mraajs PROPERTY CXX_STANDARD_REQUIRED ON)
+ if (CMAKE_VERSION VERSION_LESS "3.1")
+ message (WARNING "Need to use CMAKE version 3.1+, but it is ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}, using a workaround.")
+ if (CMAKE_COMPILER_IS_GNUCXX)
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.7")
+ message (FATAL_ERROR "GNU gcc compiler is also too old (need 4.7+, but ${CMAKE_CXX_COMPILER_VERSION}) and does not support C++11 standard.")
+ endif ()
+ set (MRAA_CXX11_WORKAROUND_OPTION "-std=gnu++11")
+ else ()
+ set (MRAA_CXX11_WORKAROUND_OPTION "-std=c++11")
endif ()
- set (MRAA_CXX11_WORKAROUND_OPTION "-std=gnu++11")
- else ()
- set (MRAA_CXX11_WORKAROUND_OPTION "-std=c++11")
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MRAA_CXX11_WORKAROUND_OPTION} ")
endif ()
- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MRAA_CXX11_WORKAROUND_OPTION} ")
endif ()
endif ()