Private
Public Access
2
0

cmake: enable settign of MRAAPLATFORMFORCE to reduce libmraa.so size

Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
Brendan Le Foll
2015-12-03 12:20:15 +00:00
parent b1016635c3
commit 2dd94cda3b
3 changed files with 47 additions and 0 deletions

View File

@@ -64,6 +64,8 @@ option (INSTALLGPIOTOOL "Install gpio tool" OFF)
option (BUILDARCH "Override architecture to build for - override" OFF) option (BUILDARCH "Override architecture to build for - override" OFF)
option (TESTS "Override the addition of tests" ON) option (TESTS "Override the addition of tests" ON)
set (MRAAPLATFORMFORCE "" CACHE STRING "ALL")
if (NOT BUILDSWIG) if (NOT BUILDSWIG)
set (BUILDSWIGPYTHON OFF) set (BUILDSWIGPYTHON OFF)
set (BUILDSWIGNODE OFF) set (BUILDSWIGNODE OFF)

View File

@@ -28,6 +28,30 @@ set (mraa_LIB_X86_SRCS_NOAUTO
${PROJECT_SOURCE_DIR}/src/x86/intel_minnow_byt_compatible.c ${PROJECT_SOURCE_DIR}/src/x86/intel_minnow_byt_compatible.c
) )
message (INFO " - Adding support for platform ${MRAAPLATFORMFORCE}")
#keywords in if statements are case sensitive
if (NOT ${MRAAPLATFORMFORCE} STREQUAL "ALL")
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Dx${MRAAPLATFORMFORCE} -DMRAA_PLATFORM_FORCE=${MRAAPLATFORMFORCE}")
if (${MRAAPLATFORMFORCE} STREQUAL "MRAA_INTEL_GALILEO_GEN2")
set (mraa_LIB_X86_SRCS_NOAUTO ${PROJECT_SOURCE_DIR}/src/x86/x86.c ${PROJECT_SOURCE_DIR}/src/x86/intel_galileo_rev_g.c)
elseif (${MRAAPLATFORMFORCE} STREQUAL "MRAA_INTEL_GALILEO_GEN1")
set (mraa_LIB_X86_SRCS_NOAUTO ${PROJECT_SOURCE_DIR}/src/x86/x86.c ${PROJECT_SOURCE_DIR}/src/x86/intel_galileo_rev_d.c)
elseif (${MRAAPLATFORMFORCE} STREQUAL "MRAA_INTEL_DE3815")
set (mraa_LIB_X86_SRCS_NOAUTO ${PROJECT_SOURCE_DIR}/src/x86/x86.c ${PROJECT_SOURCE_DIR}/src/x86/intel_de3815.c)
elseif (${MRAAPLATFORMFORCE} STREQUAL "MRAA_INTEL_EDISON_FAB_C")
set (mraa_LIB_X86_SRCS_NOAUTO ${PROJECT_SOURCE_DIR}/src/x86/x86.c ${PROJECT_SOURCE_DIR}/src/x86/intel_edison_fab_c.c)
elseif (${MRAAPLATFORMFORCE} STREQUAL "MRAA_INTEL_MINNOWBOARD_MAX")
set (mraa_LIB_X86_SRCS_NOAUTO ${PROJECT_SOURCE_DIR}/src/x86/x86.c ${PROJECT_SOURCE_DIR}/src/x86/intel_minnow_byt_compatible.c)
elseif (${MRAAPLATFORMFORCE} STREQUAL "MRAA_INTEL_NUC5")
set (mraa_LIB_X86_SRCS_NOAUTO ${PROJECT_SOURCE_DIR}/src/x86/x86.c ${PROJECT_SOURCE_DIR}/src/x86/intel_nuc5.c)
else ()
message (ERROR " - Unknown x86 platform enabled!")
endif ()
else ()
message (INFO " - Adding support for all platforms")
endif ()
set (mraa_LIB_ARM_SRCS_NOAUTO set (mraa_LIB_ARM_SRCS_NOAUTO
${PROJECT_SOURCE_DIR}/src/arm/arm.c ${PROJECT_SOURCE_DIR}/src/arm/arm.c
${PROJECT_SOURCE_DIR}/src/arm/raspberry_pi.c ${PROJECT_SOURCE_DIR}/src/arm/raspberry_pi.c

View File

@@ -26,6 +26,7 @@
#include <string.h> #include <string.h>
#include "mraa_internal.h" #include "mraa_internal.h"
#include "x86/intel_galileo_rev_d.h" #include "x86/intel_galileo_rev_d.h"
#include "x86/intel_galileo_rev_g.h" #include "x86/intel_galileo_rev_g.h"
#include "x86/intel_edison_fab_c.h" #include "x86/intel_edison_fab_c.h"
@@ -36,7 +37,9 @@
mraa_platform_t mraa_platform_t
mraa_x86_platform() mraa_x86_platform()
{ {
#ifndef MRAA_PLATFORM_FORCE
mraa_platform_t platform_type = MRAA_UNKNOWN_PLATFORM; mraa_platform_t platform_type = MRAA_UNKNOWN_PLATFORM;
char* line = NULL; char* line = NULL;
// let getline allocate memory for *line // let getline allocate memory for *line
size_t len = 0; size_t len = 0;
@@ -80,4 +83,22 @@ mraa_x86_platform()
} }
return platform_type; return platform_type;
#else
#if defined(xMRAA_INTEL_GALILEO_GEN2)
plat = mraa_intel_galileo_gen2();
#elif defined(xMRAA_INTEL_EDISON_FAB_C)
plat = mraa_intel_edison_fab_c();
#elif defined(xMRAA_INTEL_DE3815)
plat = mraa_intel_de3815();
#elif defined(xMRAA_INTEL_MINNOWBOARD_MAX)
plat = mraa_intel_minnowboard_byt_compatible();
#elif defined(xMRAA_INTEL_GALILEO_GEN1)
plat = mraa_intel_galileo_rev_d();
#elif defined(xMRAA_INTEL_NUC5)
plat = mraa_intel_nuc5();
#else
#error "Not using a valid platform value from mraa_platform_t - cannot compile"
#endif
return MRAA_PLATFORM_FORCE;
#endif
} }