Introducing jerry-libc's interface include directory.

This commit is contained in:
Ruben Ayrapetyan
2015-03-19 20:49:36 +03:00
parent 1ec7ffcbab
commit 5e125187e5
11 changed files with 189 additions and 78 deletions
+20 -7
View File
@@ -47,10 +47,6 @@ project (Jerry CXX C ASM)
add_custom_target(static_check)
add_dependencies(static_check cppcheck)
# Disable _FORTIFY_SOURCE
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -U_FORTIFY_SOURCE")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -U_FORTIFY_SOURCE")
# Architecture-specific compile/link flags
foreach(FLAG ${FLAGS_COMMON_ARCH})
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLAG}")
@@ -77,6 +73,11 @@ project (Jerry CXX C ASM)
option(STRIP_RELEASE_BINARY "Strip symbols from release binaries" OFF)
set(MCU_SCRIPT_FILE "tests/blinky.js" CACHE STRING "Script to run on MCU")
elseif("${PLATFORM}" STREQUAL "EXTERNAL")
set(PLATFORM_EXT "EXTERNAL")
set(EXTERNAL_BUILD TRUE)
set(EXTERNAL_LIBC_INTERFACE "UNDEFINED" CACHE STRING "Path to external libc's include directory")
else()
message(FATAL_ERROR "Platform is not supported")
endif()
@@ -85,6 +86,13 @@ project (Jerry CXX C ASM)
# Script to run on MCU
set(MCU_SCRIPT_GENERATED_HEADER ${CMAKE_BINARY_DIR}/generated.h)
# Should we use external libc?
if(NOT DEFINED EXTERNAL_LIBC_INTERFACE AND NOT EXTERNAL_LIBC_INTERFACE EQUAL "UNDEFINED")
set(USE_EXTERNAL_LIBC FALSE)
else()
set(USE_EXTERNAL_LIBC TRUE)
endif()
# Build modes
# Debug
set(BUILD_MODE_PREFIX_DEBUG debug)
@@ -225,12 +233,16 @@ project (Jerry CXX C ASM)
set(SOURCE_JERRY_STANDALONE_MAIN ${SOURCE_JERRY_STANDALONE_MAIN_${PLATFORM_EXT}})
# Component targets
# Jerry's libc
if(NOT ${USE_EXTERNAL_LIBC})
add_subdirectory(jerry-libc)
else()
set(INCLUDE_LIBC_INTERFACE ${EXTERNAL_LIBC_INTERFACE})
endif()
# Jerry's Core
add_subdirectory(jerry-core)
# Jerry's libc
add_subdirectory(jerry-libc)
# Plugins
add_subdirectory(plugins)
@@ -268,6 +280,7 @@ project (Jerry CXX C ASM)
PROPERTY LINK_FLAGS "${COMPILE_FLAGS_JERRY} ${CXX_FLAGS_JERRY} ${FLAGS_COMMON_${BUILD_MODE}} ${LINKER_FLAGS_COMMON} ${LINKER_FLAGS_STATIC}")
target_compile_definitions(${TARGET_NAME} PRIVATE ${DEFINES_JERRY})
target_include_directories(${TARGET_NAME} PRIVATE ${INCLUDE_CORE_INTERFACE})
target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${INCLUDE_LIBC_INTERFACE})
target_link_libraries(${TARGET_NAME} ${PLUGINS_TARGET_NAME} ${CORE_TARGET_NAME} ${LIBC_TARGET_NAME} ${PREFIX_IMPORTED_LIB}libgcc)
add_cppcheck_target(${TARGET_NAME})