* [Buildroot] [PATCH 1/2] package/mraa: renumber patch
@ 2020-10-04 11:10 Fabrice Fontaine
2020-10-04 11:10 ` [Buildroot] [PATCH 2/2] package/mraa: drop C++ dependency Fabrice Fontaine
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Fabrice Fontaine @ 2020-10-04 11:10 UTC (permalink / raw)
To: buildroot
Commit fd5376a39d079cc5aa26d67788a0c32d234f2f96 wrongly named the patch
as 0002-x.patch instead of 0001-x.patch
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
...patch => 0001-include-Declare-gVERSION-global-as-extern.patch} | 0
1 file changed, 0 insertions(+), 0 deletions(-)
rename package/mraa/{0002-include-Declare-gVERSION-global-as-extern.patch => 0001-include-Declare-gVERSION-global-as-extern.patch} (100%)
diff --git a/package/mraa/0002-include-Declare-gVERSION-global-as-extern.patch b/package/mraa/0001-include-Declare-gVERSION-global-as-extern.patch
similarity index 100%
rename from package/mraa/0002-include-Declare-gVERSION-global-as-extern.patch
rename to package/mraa/0001-include-Declare-gVERSION-global-as-extern.patch
--
2.28.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 2/2] package/mraa: drop C++ dependency
2020-10-04 11:10 [Buildroot] [PATCH 1/2] package/mraa: renumber patch Fabrice Fontaine
@ 2020-10-04 11:10 ` Fabrice Fontaine
2020-10-10 20:10 ` Peter Korsgaard
2020-10-04 19:54 ` [Buildroot] [PATCH 1/2] package/mraa: renumber patch Yann E. MORIN
2020-10-10 20:09 ` Peter Korsgaard
2 siblings, 1 reply; 5+ messages in thread
From: Fabrice Fontaine @ 2020-10-04 11:10 UTC (permalink / raw)
To: buildroot
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
...2-CMakeLists.txt-add-BUILDCPP-option.patch | 193 ++++++++++++++++++
package/mraa/Config.in | 6 +-
package/mraa/mraa.mk | 3 +-
3 files changed, 197 insertions(+), 5 deletions(-)
create mode 100644 package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch
diff --git a/package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch b/package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch
new file mode 100644
index 0000000000..fbadfe79ef
--- /dev/null
+++ b/package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch
@@ -0,0 +1,193 @@
+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 ()
+
diff --git a/package/mraa/Config.in b/package/mraa/Config.in
index 745b235cb3..c845fe9f99 100644
--- a/package/mraa/Config.in
+++ b/package/mraa/Config.in
@@ -9,7 +9,6 @@ config BR2_PACKAGE_MRAA
bool "mraa"
depends on BR2_PACKAGE_MRAA_ARCH_SUPPORTS
depends on !BR2_STATIC_LIBS
- depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_THREADS
help
mraa is a C/C++ library with bindings to javascript & python
@@ -19,7 +18,6 @@ config BR2_PACKAGE_MRAA
http://iotdk.intel.com/docs/master/mraa
-comment "mraa needs a toolchain w/ C++, threads, dynamic library"
+comment "mraa needs a toolchain w/ threads, dynamic library"
depends on BR2_PACKAGE_MRAA_ARCH_SUPPORTS
- depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
- || BR2_STATIC_LIBS
+ depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
diff --git a/package/mraa/mraa.mk b/package/mraa/mraa.mk
index 89c539e793..910339b386 100644
--- a/package/mraa/mraa.mk
+++ b/package/mraa/mraa.mk
@@ -24,9 +24,10 @@ endif
# USBPLAT only makes sense with FTDI4222, which requires the ftd2xx library,
# which doesn't exist in buildroot
-
+# Disable C++ as it is used only by FTDI4222 and tests
MRAA_CONF_OPTS += \
-DBUILDARCH=$(MRAA_ARCH) \
+ -DBUILDCPP=OFF \
-DBUILDSWIG=OFF \
-DUSBPLAT=OFF \
-DFTDI4222=OFF \
--
2.28.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 1/2] package/mraa: renumber patch
2020-10-04 11:10 [Buildroot] [PATCH 1/2] package/mraa: renumber patch Fabrice Fontaine
2020-10-04 11:10 ` [Buildroot] [PATCH 2/2] package/mraa: drop C++ dependency Fabrice Fontaine
@ 2020-10-04 19:54 ` Yann E. MORIN
2020-10-10 20:09 ` Peter Korsgaard
2 siblings, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2020-10-04 19:54 UTC (permalink / raw)
To: buildroot
Fabrice, All,
On 2020-10-04 13:10 +0200, Fabrice Fontaine spake thusly:
> Commit fd5376a39d079cc5aa26d67788a0c32d234f2f96 wrongly named the patch
> as 0002-x.patch instead of 0001-x.patch
>
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Both applied to master, thanks.
Regards,
Yann E. MORIN.
> ---
> ...patch => 0001-include-Declare-gVERSION-global-as-extern.patch} | 0
> 1 file changed, 0 insertions(+), 0 deletions(-)
> rename package/mraa/{0002-include-Declare-gVERSION-global-as-extern.patch => 0001-include-Declare-gVERSION-global-as-extern.patch} (100%)
>
> diff --git a/package/mraa/0002-include-Declare-gVERSION-global-as-extern.patch b/package/mraa/0001-include-Declare-gVERSION-global-as-extern.patch
> similarity index 100%
> rename from package/mraa/0002-include-Declare-gVERSION-global-as-extern.patch
> rename to package/mraa/0001-include-Declare-gVERSION-global-as-extern.patch
> --
> 2.28.0
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 1/2] package/mraa: renumber patch
2020-10-04 11:10 [Buildroot] [PATCH 1/2] package/mraa: renumber patch Fabrice Fontaine
2020-10-04 11:10 ` [Buildroot] [PATCH 2/2] package/mraa: drop C++ dependency Fabrice Fontaine
2020-10-04 19:54 ` [Buildroot] [PATCH 1/2] package/mraa: renumber patch Yann E. MORIN
@ 2020-10-10 20:09 ` Peter Korsgaard
2 siblings, 0 replies; 5+ messages in thread
From: Peter Korsgaard @ 2020-10-10 20:09 UTC (permalink / raw)
To: buildroot
>>>>> "Fabrice" == Fabrice Fontaine <fontaine.fabrice@gmail.com> writes:
> Commit fd5376a39d079cc5aa26d67788a0c32d234f2f96 wrongly named the patch
> as 0002-x.patch instead of 0001-x.patch
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Committed to 2020.08.x, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 2/2] package/mraa: drop C++ dependency
2020-10-04 11:10 ` [Buildroot] [PATCH 2/2] package/mraa: drop C++ dependency Fabrice Fontaine
@ 2020-10-10 20:10 ` Peter Korsgaard
0 siblings, 0 replies; 5+ messages in thread
From: Peter Korsgaard @ 2020-10-10 20:10 UTC (permalink / raw)
To: buildroot
>>>>> "Fabrice" == Fabrice Fontaine <fontaine.fabrice@gmail.com> writes:
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Committed to 2020.08.x, thanks.
> ---
> ...2-CMakeLists.txt-add-BUILDCPP-option.patch | 193 ++++++++++++++++++
> package/mraa/Config.in | 6 +-
> package/mraa/mraa.mk | 3 +-
> 3 files changed, 197 insertions(+), 5 deletions(-)
> create mode 100644 package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch
> diff --git a/package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch b/package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch
> new file mode 100644
> index 0000000000..fbadfe79ef
> --- /dev/null
> +++ b/package/mraa/0002-CMakeLists.txt-add-BUILDCPP-option.patch
> @@ -0,0 +1,193 @@
> +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 ()
> +
> diff --git a/package/mraa/Config.in b/package/mraa/Config.in
> index 745b235cb3..c845fe9f99 100644
> --- a/package/mraa/Config.in
> +++ b/package/mraa/Config.in
> @@ -9,7 +9,6 @@ config BR2_PACKAGE_MRAA
> bool "mraa"
> depends on BR2_PACKAGE_MRAA_ARCH_SUPPORTS
> depends on !BR2_STATIC_LIBS
> - depends on BR2_INSTALL_LIBSTDCPP
> depends on BR2_TOOLCHAIN_HAS_THREADS
> help
> mraa is a C/C++ library with bindings to javascript & python
> @@ -19,7 +18,6 @@ config BR2_PACKAGE_MRAA
> http://iotdk.intel.com/docs/master/mraa
> -comment "mraa needs a toolchain w/ C++, threads, dynamic library"
> +comment "mraa needs a toolchain w/ threads, dynamic library"
> depends on BR2_PACKAGE_MRAA_ARCH_SUPPORTS
> - depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
> - || BR2_STATIC_LIBS
> + depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
> diff --git a/package/mraa/mraa.mk b/package/mraa/mraa.mk
> index 89c539e793..910339b386 100644
> --- a/package/mraa/mraa.mk
> +++ b/package/mraa/mraa.mk
> @@ -24,9 +24,10 @@ endif
> # USBPLAT only makes sense with FTDI4222, which requires the ftd2xx library,
> # which doesn't exist in buildroot
> -
> +# Disable C++ as it is used only by FTDI4222 and tests
> MRAA_CONF_OPTS += \
> -DBUILDARCH=$(MRAA_ARCH) \
> + -DBUILDCPP=OFF \
> -DBUILDSWIG=OFF \
> -DUSBPLAT=OFF \
> -DFTDI4222=OFF \
> --
> 2.28.0
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-10-10 20:10 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-04 11:10 [Buildroot] [PATCH 1/2] package/mraa: renumber patch Fabrice Fontaine
2020-10-04 11:10 ` [Buildroot] [PATCH 2/2] package/mraa: drop C++ dependency Fabrice Fontaine
2020-10-10 20:10 ` Peter Korsgaard
2020-10-04 19:54 ` [Buildroot] [PATCH 1/2] package/mraa: renumber patch Yann E. MORIN
2020-10-10 20:09 ` Peter Korsgaard
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.