CMakeLists.txt: add BUILDCPP option
C++ is a mandatory dependency since version 1.4.0 and
122cab1f1e
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>
This commit is contained in:
committed by
Propanu
parent
d74b0d8a73
commit
cb88e4dd1f
@@ -1,5 +1,5 @@
|
|||||||
cmake_minimum_required (VERSION 2.8.11)
|
cmake_minimum_required (VERSION 2.8.11)
|
||||||
project (mraa C CXX)
|
project (mraa C)
|
||||||
|
|
||||||
FIND_PACKAGE (Threads REQUIRED)
|
FIND_PACKAGE (Threads REQUIRED)
|
||||||
|
|
||||||
@@ -11,6 +11,8 @@ else ()
|
|||||||
set (CMAKE_C_STANDARD 99)
|
set (CMAKE_C_STANDARD 99)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
option (BUILDCPP "Enable C++ (needed by FTDI4222 and tests)" ON)
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Detect supported warning flags
|
# Detect supported warning flags
|
||||||
# Modified from work By Dan Liew (fpbench - MIT)
|
# Modified from work By Dan Liew (fpbench - MIT)
|
||||||
@@ -33,6 +35,8 @@ set (MRAA_C_WARNING_FLAGS
|
|||||||
-Werror=missing-parameter-type
|
-Werror=missing-parameter-type
|
||||||
)
|
)
|
||||||
|
|
||||||
|
include (CheckCCompilerFlag)
|
||||||
|
if (BUILDCPP)
|
||||||
# Warning flags for the C++ compiler only
|
# Warning flags for the C++ compiler only
|
||||||
set (MRAA_CXX_WARNING_FLAGS
|
set (MRAA_CXX_WARNING_FLAGS
|
||||||
-Wnon-virtual-dtor
|
-Wnon-virtual-dtor
|
||||||
@@ -40,8 +44,9 @@ set (MRAA_CXX_WARNING_FLAGS
|
|||||||
-Wreorder
|
-Wreorder
|
||||||
)
|
)
|
||||||
|
|
||||||
include (CheckCCompilerFlag)
|
enable_language (CXX)
|
||||||
include (CheckCXXCompilerFlag)
|
include (CheckCXXCompilerFlag)
|
||||||
|
endif ()
|
||||||
function (MRAA_SANITIZE_FLAG_NAME OUTPUT_VAR FLAG)
|
function (MRAA_SANITIZE_FLAG_NAME OUTPUT_VAR FLAG)
|
||||||
string (REPLACE "-" "_" SANITIZED_FLAG_NAME "${FLAG}")
|
string (REPLACE "-" "_" SANITIZED_FLAG_NAME "${FLAG}")
|
||||||
string (REPLACE "/" "_" SANITIZED_FLAG_NAME "${SANITIZED_FLAG_NAME}")
|
string (REPLACE "/" "_" SANITIZED_FLAG_NAME "${SANITIZED_FLAG_NAME}")
|
||||||
@@ -62,6 +67,7 @@ foreach (flag ${MRAA_BOTH_WARNING_FLAGS} ${MRAA_C_WARNING_FLAGS})
|
|||||||
endif ()
|
endif ()
|
||||||
endforeach ()
|
endforeach ()
|
||||||
|
|
||||||
|
if (BUILDCPP)
|
||||||
# Globally set C++ compiler warning flags that are supported and emit
|
# Globally set C++ compiler warning flags that are supported and emit
|
||||||
# a warning about unsupported flags
|
# a warning about unsupported flags
|
||||||
foreach (flag ${MRAA_BOTH_WARNING_FLAGS} ${MRAA_CXX_WARNING_FLAGS})
|
foreach (flag ${MRAA_BOTH_WARNING_FLAGS} ${MRAA_CXX_WARNING_FLAGS})
|
||||||
@@ -84,6 +90,7 @@ function(use_cxx_11 targetname)
|
|||||||
message(FATAL_ERROR "Target '${targetname}' requires c++11 which is not supported by this compiler")
|
message(FATAL_ERROR "Target '${targetname}' requires c++11 which is not supported by this compiler")
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
endif()
|
||||||
|
|
||||||
# Set CMAKE_INSTALL_LIBDIR if not defined
|
# Set CMAKE_INSTALL_LIBDIR if not defined
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
|
|||||||
@@ -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 SWIG_FLAGS ";-package;mraa;-I${CMAKE_BINARY_DIR}/src")
|
||||||
set_source_files_properties (mraajava.i PROPERTIES CPLUSPLUS ON)
|
set_source_files_properties (mraajava.i PROPERTIES CPLUSPLUS ON)
|
||||||
|
|
||||||
|
if (BUILDCPP)
|
||||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -DJAVACALLBACK")
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -DJAVACALLBACK")
|
||||||
|
endif()
|
||||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DJAVACALLBACK")
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DJAVACALLBACK")
|
||||||
|
|
||||||
if (NOT DEFINED ENV{JAVA_HOME_NATIVE})
|
if (NOT DEFINED ENV{JAVA_HOME_NATIVE})
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ set_target_properties (mraajs PROPERTIES
|
|||||||
)
|
)
|
||||||
|
|
||||||
message (STATUS "INFO - swig Version ${SWIG_VERSION}")
|
message (STATUS "INFO - swig Version ${SWIG_VERSION}")
|
||||||
|
if (BUILDCPP)
|
||||||
message (STATUS "INFO - CXX compiler Version ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
|
message (STATUS "INFO - CXX compiler Version ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
|
||||||
|
|
||||||
if (${V8_VERSION_MAJOR} GREATER 3)
|
if (${V8_VERSION_MAJOR} GREATER 3)
|
||||||
@@ -57,6 +58,7 @@ if (${V8_VERSION_MAJOR} GREATER 3)
|
|||||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MRAA_CXX11_WORKAROUND_OPTION} ")
|
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MRAA_CXX11_WORKAROUND_OPTION} ")
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
# If a CMAKE_INSTALL_PREFIX has NOT been provided, set NODE_MODULE_INSTALL_PATH
|
# If a CMAKE_INSTALL_PREFIX has NOT been provided, set NODE_MODULE_INSTALL_PATH
|
||||||
# base on the NODE_ROOT_DIR.
|
# base on the NODE_ROOT_DIR.
|
||||||
|
|||||||
Reference in New Issue
Block a user