Skip to content

Commit f355d30

Browse files
authored
Support MacOS (#20)
Fix build issues to allow use with MacOS. - Fix compiler warnings, type casting stuff. - Require GNU sed. MacOS version silently produces wrong results as it doesn't support GNU escapes. NB. Can this be rewritten, perhaps with python script? - Fix #include path issue. MacOS uses case-insensitive filenames and warns about conflict between "jerryscript.h" and "Jerryscript.h". Refactor to isolate jerryscript paths which aren't required by applications
1 parent 21ac3e0 commit f355d30

File tree

9 files changed

+18
-20
lines changed

9 files changed

+18
-20
lines changed

component.mk

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ COMPONENT_SRCDIRS := \
1010

1111
COMPONENT_INCDIRS := \
1212
src/include \
13+
$(JERRYSCRIPT_ROOT)
14+
15+
EXTRA_INCDIR := \
1316
$(JERRYSCRIPT_ROOT)/jerry-core \
1417
$(JERRYSCRIPT_SRCDIRS)
1518

@@ -137,6 +140,12 @@ endif
137140

138141
JERRY_TYPES_H := $(COMPONENT_PATH)/src/include/Jerryscript/.typemaps.h
139142

143+
ifeq ($(UNAME),Darwin)
144+
SED ?= gsed
145+
else
146+
SED ?= sed
147+
endif
148+
140149
# Generate MAP #define for a jerryscript C enumeration
141150
# $1 -> e.g. JERRY_FUNCTION_TYPE_
142151
# $2 -> source file
@@ -145,7 +154,7 @@ define JerryGetTypes
145154
$(Q) printf "#define $(if $3,$3_,$1)MAP(XX)" >> $@
146155
$(Q) $(foreach v,\
147156
$(shell $(AWK) -F " |,|=" '/$1/ { sub(/^ +$1/,""); print $$1 }' $(JERRYSCRIPT_ROOT)/jerry-core/include/jerryscript-$2.h),\
148-
printf " \\\\\n\tXX($1$v, %s)" $$( echo "$v" | sed -E 's/(.*)/\L\1/; s/(^|_)([a-z0-9])/\U\2/g' ) >> $@; )
157+
printf " \\\\\n\tXX($1$v, %s)" $$( echo "$v" | $(SED) -E 's/(.*)/\L\1/; s/(^|_)([a-z0-9])/\U\2/g' ) >> $@; )
149158
$(Q) printf "\n\n" >> $@
150159
endef
151160

src/Context.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
*/
1212

1313
#include "include/Jerryscript/Context.h"
14-
#include <jerryscript.h>
1514

1615
namespace Jerryscript
1716
{
@@ -23,7 +22,7 @@ Context::Context() : Context(JERRY_GLOBAL_HEAP_SIZE * 1024)
2322

2423
Context::Context(size_t heapSize)
2524
{
26-
auto ctx = jerry_create_context(std::max(heapSize, 1024U), alloc, this);
25+
auto ctx = jerry_create_context(std::max(heapSize, size_t(1024U)), alloc, this);
2726
context.reset(reinterpret_cast<uint8_t*>(ctx));
2827
}
2928

src/Debug.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
*/
99

1010
#include "include/Jerryscript/Debug.h"
11-
#include <jerryscript.h>
1211
#include <debug_progmem.h>
1312

1413
namespace Jerryscript
@@ -21,8 +20,8 @@ bool printHeap()
2120
return false;
2221
}
2322

24-
m_printf(_F("[JS] Heap size %u, allocated %u, peak %u\r\n"), stats.size, stats.allocated_bytes,
25-
stats.peak_allocated_bytes);
23+
m_printf(_F("[JS] Heap size %u, allocated %u, peak %u\r\n"), unsigned(stats.size), unsigned(stats.allocated_bytes),
24+
unsigned(stats.peak_allocated_bytes));
2625
return true;
2726
}
2827

src/Types.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#include <debug_progmem.h>
1616

1717
extern "C" {
18-
#include <ecma/base/ecma-helpers.h>
18+
#include <jerry-core/ecma/base/ecma-helpers.h>
1919
}
2020

2121
// Check Ecma values are correct

src/include/Jerryscript.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,7 @@
11
#pragma once
22

3-
#ifdef __cplusplus
4-
53
#include "Jerryscript/Task.h"
64
#include "Jerryscript/Debug.h"
75
#include "Jerryscript/Function.h"
86
#include "Jerryscript/Except.h"
97
#include "Jerryscript/Context.h"
10-
11-
#else
12-
13-
#include_next <jerryscript.h>
14-
15-
#endif

src/include/Jerryscript/Debug.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
#pragma once
1111

12-
#include <include/jerryscript.h>
12+
#include <jerry-core/include/jerryscript.h>
1313

1414
namespace Jerryscript
1515
{

src/include/Jerryscript/Types.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
#pragma once
1414

15-
#include <include/jerryscript.h>
15+
#include <jerry-core/include/jerryscript.h>
1616
#include ".typemaps.h"
1717
#include <WString.h>
1818
#include <WVector.h>

src/jerry-port.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
#include "include/Jerryscript/Except.h"
1616
#include "include/Jerryscript/Context.h"
17-
#include <include/jerryscript-port.h>
18-
#include <include/jerryscript-core.h>
17+
#include <jerry-core/include/jerryscript-port.h>
18+
#include <jerry-core/include/jerryscript-core.h>
1919
#include "include/jerry_port_vm.h"
2020
#include <debug_progmem.h>
2121
#include <Platform/RTC.h>

test/modules/types.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include <JerryTest.h>
2-
#include <jcontext.h>
32

43
namespace
54
{

0 commit comments

Comments
 (0)