diff --git a/CMakeLists.txt b/CMakeLists.txt index aa3fe84710..3399ea1c56 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,13 +78,14 @@ 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 "${CMAKE_SYSTEM_VERSION}") + set(PLATFORM_EXT "EXTERNAL") set(EXTERNAL_BUILD TRUE) set(EXTERNAL_LIBC_INTERFACE "UNDEFINED" CACHE STRING "Path to external libc include directory") set(EXTERNAL_LIBS_INTERFACE "UNDEFINED" CACHE STRING "Path to external libraries' include directory") + set(EXTERNAL_MEM_HEAP_SIZE_KB "256" CACHE STRING "Size of memory heap, in kilobytes") else() - message(FATAL_ERROR "Platform is not supported") + message(FATAL_ERROR "Platform '${PLATFORM}' is not supported") endif() # Intermediate files @@ -182,6 +183,14 @@ project (Jerry CXX C ASM) "COMPACT_PROFILE" "COMPACT_PROFILE_MINIMAL") + # External + set(MODIFIERS_LISTS_EXTERNAL + "FULL_PROFILE" + "COMPACT_PROFILE" + "COMPACT_PROFILE_MINIMAL" + "FULL_PROFILE MEMORY_STATISTICS" + "COMPACT_PROFILE MEMORY_STATISTICS") + # Compiler / Linker flags set(COMPILE_FLAGS_JERRY "-fno-builtin") set(LINKER_FLAGS_COMMON "-Wl,-z,noexecstack") @@ -366,28 +375,20 @@ project (Jerry CXX C ASM) endif() endif() else() - set(MAIN_MODULE_TARGET_NAME ${TARGET_NAME}.${PLATFORM_L}.main) - add_library(${MAIN_MODULE_TARGET_NAME} ${SOURCE_JERRY_STANDALONE_MAIN}) - set_property(TARGET ${MAIN_MODULE_TARGET_NAME} - PROPERTY COMPILE_FLAGS "${COMPILE_FLAGS_JERRY} ${CXX_FLAGS_JERRY} ${FLAGS_COMMON_${BUILD_MODE}}") - target_compile_definitions(${MAIN_MODULE_TARGET_NAME} PRIVATE ${DEFINES_JERRY}) - target_include_directories(${MAIN_MODULE_TARGET_NAME} PRIVATE ${INCLUDE_CORE_INTERFACE}) - target_include_directories(${MAIN_MODULE_TARGET_NAME} SYSTEM PRIVATE ${INCLUDE_LIBC_INTERFACE}) - target_include_directories(${MAIN_MODULE_TARGET_NAME} SYSTEM PRIVATE ${INCLUDE_EXTERNAL_LIBS_INTERFACE}) - add_custom_target(${TARGET_NAME} ALL) - add_dependencies(${TARGET_NAME} ${MAIN_MODULE_TARGET_NAME} ${FDLIBM_TARGET_NAME}${CORE_TARGET_NAME}) + add_dependencies(${TARGET_NAME} ${FDLIBM_TARGET_NAME} ${CORE_TARGET_NAME}) add_custom_command(TARGET ${TARGET_NAME} POST_BUILD COMMAND mkdir -p ${CMAKE_BINARY_DIR}/${TARGET_NAME} - COMMAND echo - $ - $ - $ > ${CMAKE_BINARY_DIR}/${TARGET_NAME}/list) + COMMAND echo $ > ${CMAKE_BINARY_DIR}/${TARGET_NAME}/list + COMMAND echo $ >> ${CMAKE_BINARY_DIR}/${TARGET_NAME}/list) if(${USE_JERRY_LIBC}) add_dependencies(${TARGET_NAME} ${LIBC_TARGET_NAME}) + add_custom_command(TARGET ${TARGET_NAME} + POST_BUILD + COMMAND echo $ >> ${CMAKE_BINARY_DIR}/${TARGET_NAME}/list) endif() add_cppcheck_target(${TARGET_NAME}) diff --git a/build/configs/toolchain_external.cmake b/build/configs/toolchain_external.cmake index 5ad75cce1d..97b4df29ef 100644 --- a/build/configs/toolchain_external.cmake +++ b/build/configs/toolchain_external.cmake @@ -15,7 +15,7 @@ include(CMakeForceCompiler) set(CMAKE_SYSTEM_NAME EXTERNAL) -set(CMAKE_SYSTEM_VERSION ${EXTERNAL_TARGET_NAME}) +set(CMAKE_SYSTEM_PROCESSOR "${EXTERNAL_CMAKE_SYSTEM_PROCESSOR}") CMAKE_FORCE_C_COMPILER(${EXTERNAL_CMAKE_C_COMPILER} GNU) CMAKE_FORCE_CXX_COMPILER(${EXTERNAL_CMAKE_CXX_COMPILER} GNU) diff --git a/jerry-core/CMakeLists.txt b/jerry-core/CMakeLists.txt index 0e797264e6..826ea256f4 100644 --- a/jerry-core/CMakeLists.txt +++ b/jerry-core/CMakeLists.txt @@ -88,6 +88,12 @@ project (JerryCore CXX C ASM) math(EXPR MEM_HEAP_AREA_SIZE_16K "16 * 1024") set(DEFINES_JERRY_MCU_STM32F4 CONFIG_MEM_HEAP_AREA_SIZE=${MEM_HEAP_AREA_SIZE_16K}) + # External + if(DEFINED EXTERNAL_MEM_HEAP_SIZE_KB) + math(EXPR MEM_HEAP_AREA_SIZE_EXTERNAL "${EXTERNAL_MEM_HEAP_SIZE_KB} * 1024") + set(DEFINES_JERRY_EXTERNAL CONFIG_MEM_HEAP_AREA_SIZE=${MEM_HEAP_AREA_SIZE_EXTERNAL}) + endif() + # Include directories set(INCLUDE_CORE ${CMAKE_SOURCE_DIR}/jerry-core diff --git a/jerry-core/config.h b/jerry-core/config.h index 249574910e..b282050806 100644 --- a/jerry-core/config.h +++ b/jerry-core/config.h @@ -53,6 +53,8 @@ */ #ifndef CONFIG_MEM_HEAP_AREA_SIZE # define CONFIG_MEM_HEAP_AREA_SIZE (256 * 1024) +#elif CONFIG_MEM_HEAP_AREA_SIZE > (256 * 1024) +# error "Currently, maximum 256 kilobytes heap size is supported" #endif /* !CONFIG_MEM_HEAP_AREA_SIZE */ /**