Skip to content

Commit e811be1

Browse files
authored
feat: allow export load at runtime (#263)
1 parent 4064596 commit e811be1

File tree

6 files changed

+42
-6
lines changed

6 files changed

+42
-6
lines changed

ecsact/runtime/async.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@
1313
# if defined(ECSACT_ASYNC_API)
1414
# define ECSACT_ASYNC_API_FN(ret, name) ECSACT_ASYNC_API ret name
1515
# elif defined(ECSACT_ASYNC_API_LOAD_AT_RUNTIME)
16-
# define ECSACT_ASYNC_API_FN(ret, name) ECSACT_EXTERN ret(*name)
16+
# if defined(ECSACT_ASYNC_API_EXPORT)
17+
# define ECSACT_ASYNC_API_FN(ret, name) \
18+
ECSACT_EXTERN ECSACT_EXPORT(#name) ret(*name)
19+
# else
20+
# define ECSACT_ASYNC_API_FN(ret, name) \
21+
ECSACT_EXTERN ECSACT_IMPORT("env", #name) ret(*name)
22+
# endif
1723
# elif defined(ECSACT_ASYNC_API_EXPORT)
1824
# define ECSACT_ASYNC_API_FN(ret, name) \
1925
ECSACT_EXTERN ECSACT_EXPORT(#name) ret name

ecsact/runtime/core.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@
1414
# if defined(ECSACT_CORE_API)
1515
# define ECSACT_CORE_API_FN(ret, name) ECSACT_CORE_API ret name
1616
# elif defined(ECSACT_CORE_API_LOAD_AT_RUNTIME)
17-
# define ECSACT_CORE_API_FN(ret, name) ECSACT_EXTERN ret(*name)
17+
# if defined(ECSACT_CORE_API_EXPORT)
18+
# define ECSACT_CORE_API_FN(ret, name) \
19+
ECSACT_EXTERN ECSACT_EXPORT(#name) ret(*name)
20+
# else
21+
# define ECSACT_CORE_API_FN(ret, name) \
22+
ECSACT_EXTERN ECSACT_IMPORT("env", #name) ret(*name)
23+
# endif
1824
# elif defined(ECSACT_CORE_API_EXPORT)
1925
# define ECSACT_CORE_API_FN(ret, name) \
2026
ECSACT_EXTERN ECSACT_EXPORT(#name) ret name

ecsact/runtime/dynamic.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,13 @@
1616
# if defined(ECSACT_DYNAMIC_API)
1717
# define ECSACT_DYNAMIC_API_FN(ret, name) ECSACT_DYNAMIC_API ret name
1818
# elif defined(ECSACT_DYNAMIC_API_LOAD_AT_RUNTIME)
19-
# define ECSACT_DYNAMIC_API_FN(ret, name) ECSACT_EXTERN ret(*name)
19+
# if defined(ECSACT_DYNAMIC_API_EXPORT)
20+
# define ECSACT_DYNAMIC_API_FN(ret, name) \
21+
ECSACT_EXTERN ECSACT_EXPORT(#name) ret(*name)
22+
# else
23+
# define ECSACT_DYNAMIC_API_FN(ret, name) \
24+
ECSACT_EXTERN ECSACT_IMPORT("env", #name) ret(*name)
25+
# endif
2026
# elif defined(ECSACT_DYNAMIC_API_EXPORT)
2127
# define ECSACT_DYNAMIC_API_FN(ret, name) \
2228
ECSACT_EXTERN ECSACT_EXPORT(#name) ret name

ecsact/runtime/meta.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@
1414
# if defined(ECSACT_META_API)
1515
# define ECSACT_META_API_FN(ret, name) ECSACT_META_API ret name
1616
# elif defined(ECSACT_META_API_LOAD_AT_RUNTIME)
17-
# define ECSACT_META_API_FN(ret, name) ECSACT_EXTERN ret(*name)
17+
# if defined(ECSACT_META_API_EXPORT)
18+
# define ECSACT_META_API_FN(ret, name) \
19+
ECSACT_EXTERN ECSACT_EXPORT(#name) ret(*name)
20+
# else
21+
# define ECSACT_META_API_FN(ret, name) \
22+
ECSACT_EXTERN ECSACT_IMPORT("env", #name) ret(*name)
23+
# endif
1824
# elif defined(ECSACT_META_API_EXPORT)
1925
# define ECSACT_META_API_FN(ret, name) \
2026
ECSACT_EXTERN ECSACT_EXPORT(#name) ret name

ecsact/runtime/serialize.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@
1313
# if defined(ECSACT_SERIALIZE_API)
1414
# define ECSACT_SERIALIZE_API_FN(ret, name) ECSACT_SERIALIZE_API ret name
1515
# elif defined(ECSACT_SERIALIZE_API_LOAD_AT_RUNTIME)
16-
# define ECSACT_SERIALIZE_API_FN(ret, name) ECSACT_EXTERN ret(*name)
16+
# if defined(ECSACT_SERIALIZE_API_EXPORT)
17+
# define ECSACT_SERIALIZE_API_FN(ret, name) \
18+
ECSACT_EXTERN ECSACT_EXPORT(#name) ret(*name)
19+
# else
20+
# define ECSACT_SERIALIZE_API_FN(ret, name) \
21+
ECSACT_EXTERN ECSACT_IMPORT("env", #name) ret(*name)
22+
# endif
1723
# elif defined(ECSACT_SERIALIZE_API_EXPORT)
1824
# define ECSACT_SERIALIZE_API_FN(ret, name) \
1925
ECSACT_EXTERN ECSACT_EXPORT(#name) ret name

ecsact/runtime/static.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@
1313
# if defined(ECSACT_STATIC_API)
1414
# define ECSACT_STATIC_API_FN(ret, name) ECSACT_STATIC_API ret name
1515
# elif defined(ECSACT_STATIC_API_LOAD_AT_RUNTIME)
16-
# define ECSACT_STATIC_API_FN(ret, name) ECSACT_EXTERN ret(*name)
16+
# if defined(ECSACT_STATIC_API_EXPORT)
17+
# define ECSACT_STATIC_API_FN(ret, name) \
18+
ECSACT_EXTERN ECSACT_EXPORT(#name) ret(*name)
19+
# else
20+
# define ECSACT_STATIC_API_FN(ret, name) \
21+
ECSACT_EXTERN ECSACT_IMPORT("env", #name) ret(*name)
22+
# endif
1723
# elif defined(ECSACT_STATIC_API_EXPORT)
1824
# define ECSACT_STATIC_API_FN(ret, name) \
1925
ECSACT_EXTERN ECSACT_EXPORT(#name) ret name

0 commit comments

Comments
 (0)