@zappdev/cli 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -0
- package/dist/zapp-cli.js +9471 -0
- package/native/src/app/app.zc +490 -0
- package/native/src/event/event.zc +24 -0
- package/native/src/event/events.zc +70 -0
- package/native/src/platform/darwin/backend.zc +923 -0
- package/native/src/platform/darwin/backend_bootstrap.zc +9 -0
- package/native/src/platform/darwin/bootstrap.zc +9 -0
- package/native/src/platform/darwin/engine_jsc.zc +86 -0
- package/native/src/platform/darwin/engine_qjs.zc +92 -0
- package/native/src/platform/darwin/platform.zc +156 -0
- package/native/src/platform/darwin/webview.zc +550 -0
- package/native/src/platform/darwin/webview_bootstrap.zc +9 -0
- package/native/src/platform/darwin/window.zc +1223 -0
- package/native/src/platform/darwin/worker/common.zc +223 -0
- package/native/src/platform/darwin/worker/core/base64_core.zc +29 -0
- package/native/src/platform/darwin/worker/core/crypto_core.zc +19 -0
- package/native/src/platform/darwin/worker/core/encoding_core.zc +32 -0
- package/native/src/platform/darwin/worker/core/fetch_core.zc +145 -0
- package/native/src/platform/darwin/worker/core/url_core.zc +69 -0
- package/native/src/platform/darwin/worker/core/websocket_core.zc +179 -0
- package/native/src/platform/darwin/worker/dispatch.zc +55 -0
- package/native/src/platform/darwin/worker/jsc/base64_jsc.zc +39 -0
- package/native/src/platform/darwin/worker/jsc/crypto_jsc.zc +49 -0
- package/native/src/platform/darwin/worker/jsc/encoding_jsc.zc +86 -0
- package/native/src/platform/darwin/worker/jsc/fetch_jsc.zc +149 -0
- package/native/src/platform/darwin/worker/jsc/url_jsc.zc +54 -0
- package/native/src/platform/darwin/worker/jsc/websocket_jsc.zc +127 -0
- package/native/src/platform/darwin/worker/jsc.zc +670 -0
- package/native/src/platform/darwin/worker/mod.zc +30 -0
- package/native/src/platform/darwin/worker/qjs/fetch_qjs.zc +233 -0
- package/native/src/platform/darwin/worker/qjs/qjs_macros.zc +23 -0
- package/native/src/platform/darwin/worker/qjs/websocket_qjs.zc +223 -0
- package/native/src/platform/darwin/worker/qjs.zc +1053 -0
- package/native/src/platform/darwin/worker/timers.zc +149 -0
- package/native/src/platform/darwin/worker/timers_qjs.zc +209 -0
- package/native/src/platform/platform.zc +64 -0
- package/native/src/platform/shared/log.zc +156 -0
- package/native/src/platform/shared/worker/qjs/base64_qjs.zc +38 -0
- package/native/src/platform/shared/worker/qjs/crypto_qjs.zc +44 -0
- package/native/src/platform/shared/worker/qjs/encoding_qjs.zc +95 -0
- package/native/src/platform/shared/worker/qjs/url_qjs.zc +65 -0
- package/native/src/platform/shared/worker_registry.zc +206 -0
- package/native/src/platform/window.zc +446 -0
- package/native/src/platform/windows/backend.zc +452 -0
- package/native/src/platform/windows/backend_bootstrap.zc +9 -0
- package/native/src/platform/windows/bootstrap.zc +9 -0
- package/native/src/platform/windows/engine_qjs.zc +60 -0
- package/native/src/platform/windows/platform.zc +387 -0
- package/native/src/platform/windows/webview.zc +1175 -0
- package/native/src/platform/windows/webview_bootstrap.zc +9 -0
- package/native/src/platform/windows/window.zc +1271 -0
- package/native/src/platform/windows/worker/common.zc +409 -0
- package/native/src/platform/windows/worker/core/base64_core.zc +52 -0
- package/native/src/platform/windows/worker/core/crypto_core.zc +34 -0
- package/native/src/platform/windows/worker/core/encoding_core.zc +60 -0
- package/native/src/platform/windows/worker/core/fetch_core.zc +274 -0
- package/native/src/platform/windows/worker/core/url_core.zc +216 -0
- package/native/src/platform/windows/worker/core/websocket_core.zc +343 -0
- package/native/src/platform/windows/worker/dispatch.zc +34 -0
- package/native/src/platform/windows/worker/mod.zc +46 -0
- package/native/src/platform/windows/worker/qjs/fetch_qjs.zc +255 -0
- package/native/src/platform/windows/worker/qjs/websocket_qjs.zc +263 -0
- package/native/src/platform/windows/worker/qjs.zc +1049 -0
- package/native/src/platform/windows/worker/timers_qjs.zc +288 -0
- package/native/src/platform/worker.zc +8 -0
- package/native/src/service/service.zc +228 -0
- package/native/vendor/quickjs-ng/.gitattributes +4 -0
- package/native/vendor/quickjs-ng/.github/dependabot.yml +7 -0
- package/native/vendor/quickjs-ng/.github/workflows/ci.yml +812 -0
- package/native/vendor/quickjs-ng/.github/workflows/docs.yml +49 -0
- package/native/vendor/quickjs-ng/.github/workflows/release.yml +162 -0
- package/native/vendor/quickjs-ng/.github/workflows/test-docs.yml +23 -0
- package/native/vendor/quickjs-ng/.github/workflows/tsan.yml +32 -0
- package/native/vendor/quickjs-ng/.github/workflows/valgrind.yml +33 -0
- package/native/vendor/quickjs-ng/.gitmodules +5 -0
- package/native/vendor/quickjs-ng/CMakeLists.txt +553 -0
- package/native/vendor/quickjs-ng/LICENSE +24 -0
- package/native/vendor/quickjs-ng/Makefile +149 -0
- package/native/vendor/quickjs-ng/amalgam.js +53 -0
- package/native/vendor/quickjs-ng/api-test.c +927 -0
- package/native/vendor/quickjs-ng/builtin-array-fromasync.h +119 -0
- package/native/vendor/quickjs-ng/builtin-array-fromasync.js +36 -0
- package/native/vendor/quickjs-ng/builtin-iterator-zip-keyed.h +332 -0
- package/native/vendor/quickjs-ng/builtin-iterator-zip-keyed.js +194 -0
- package/native/vendor/quickjs-ng/builtin-iterator-zip.h +337 -0
- package/native/vendor/quickjs-ng/builtin-iterator-zip.js +210 -0
- package/native/vendor/quickjs-ng/ctest.c +17 -0
- package/native/vendor/quickjs-ng/cutils.h +2013 -0
- package/native/vendor/quickjs-ng/cxxtest.cc +2 -0
- package/native/vendor/quickjs-ng/dtoa.c +1619 -0
- package/native/vendor/quickjs-ng/dtoa.h +87 -0
- package/native/vendor/quickjs-ng/examples/fib.c +67 -0
- package/native/vendor/quickjs-ng/examples/fib_module.js +10 -0
- package/native/vendor/quickjs-ng/examples/hello.js +1 -0
- package/native/vendor/quickjs-ng/examples/hello_module.js +6 -0
- package/native/vendor/quickjs-ng/examples/meson.build +17 -0
- package/native/vendor/quickjs-ng/examples/pi_bigint.js +118 -0
- package/native/vendor/quickjs-ng/examples/point.c +154 -0
- package/native/vendor/quickjs-ng/examples/test_fib.js +8 -0
- package/native/vendor/quickjs-ng/examples/test_point.js +43 -0
- package/native/vendor/quickjs-ng/fuzz.c +51 -0
- package/native/vendor/quickjs-ng/gen/function_source.c +81 -0
- package/native/vendor/quickjs-ng/gen/hello.c +53 -0
- package/native/vendor/quickjs-ng/gen/hello_module.c +106 -0
- package/native/vendor/quickjs-ng/gen/repl.c +3053 -0
- package/native/vendor/quickjs-ng/gen/standalone.c +324 -0
- package/native/vendor/quickjs-ng/gen/test_fib.c +81 -0
- package/native/vendor/quickjs-ng/libregexp-opcode.h +58 -0
- package/native/vendor/quickjs-ng/libregexp.c +2687 -0
- package/native/vendor/quickjs-ng/libregexp.h +98 -0
- package/native/vendor/quickjs-ng/libunicode-table.h +4707 -0
- package/native/vendor/quickjs-ng/libunicode.c +1746 -0
- package/native/vendor/quickjs-ng/libunicode.h +126 -0
- package/native/vendor/quickjs-ng/list.h +107 -0
- package/native/vendor/quickjs-ng/lre-test.c +73 -0
- package/native/vendor/quickjs-ng/meson.build +684 -0
- package/native/vendor/quickjs-ng/meson_options.txt +6 -0
- package/native/vendor/quickjs-ng/qjs-wasi-reactor.c +208 -0
- package/native/vendor/quickjs-ng/qjs.c +748 -0
- package/native/vendor/quickjs-ng/qjsc.c +673 -0
- package/native/vendor/quickjs-ng/quickjs-atom.h +267 -0
- package/native/vendor/quickjs-ng/quickjs-c-atomics.h +54 -0
- package/native/vendor/quickjs-ng/quickjs-libc.c +4986 -0
- package/native/vendor/quickjs-ng/quickjs-libc.h +79 -0
- package/native/vendor/quickjs-ng/quickjs-opcode.h +369 -0
- package/native/vendor/quickjs-ng/quickjs.c +60259 -0
- package/native/vendor/quickjs-ng/quickjs.h +1419 -0
- package/native/vendor/quickjs-ng/repl.js +1927 -0
- package/native/vendor/quickjs-ng/run-test262.c +2417 -0
- package/native/vendor/quickjs-ng/standalone.js +129 -0
- package/native/vendor/quickjs-ng/tests/assert.js +49 -0
- package/native/vendor/quickjs-ng/tests/bug1221.js +16 -0
- package/native/vendor/quickjs-ng/tests/bug1296.js +12 -0
- package/native/vendor/quickjs-ng/tests/bug1297.js +22 -0
- package/native/vendor/quickjs-ng/tests/bug1301.js +21 -0
- package/native/vendor/quickjs-ng/tests/bug1302.js +24 -0
- package/native/vendor/quickjs-ng/tests/bug1305.js +26 -0
- package/native/vendor/quickjs-ng/tests/bug1318.js +54 -0
- package/native/vendor/quickjs-ng/tests/bug1352.js +8 -0
- package/native/vendor/quickjs-ng/tests/bug1354.js +6 -0
- package/native/vendor/quickjs-ng/tests/bug1355.js +58 -0
- package/native/vendor/quickjs-ng/tests/bug1368.js +9 -0
- package/native/vendor/quickjs-ng/tests/bug39/1.js +6 -0
- package/native/vendor/quickjs-ng/tests/bug39/2.js +6 -0
- package/native/vendor/quickjs-ng/tests/bug39/3.js +7 -0
- package/native/vendor/quickjs-ng/tests/bug488-upstream.js +7 -0
- package/native/vendor/quickjs-ng/tests/bug633/0.js +7 -0
- package/native/vendor/quickjs-ng/tests/bug633/1.js +4 -0
- package/native/vendor/quickjs-ng/tests/bug633/2.js +4 -0
- package/native/vendor/quickjs-ng/tests/bug633/3.js +4 -0
- package/native/vendor/quickjs-ng/tests/bug645/0.js +4 -0
- package/native/vendor/quickjs-ng/tests/bug645/1.js +9 -0
- package/native/vendor/quickjs-ng/tests/bug645/2.js +7 -0
- package/native/vendor/quickjs-ng/tests/bug648.js +13 -0
- package/native/vendor/quickjs-ng/tests/bug652.js +4 -0
- package/native/vendor/quickjs-ng/tests/bug741.js +19 -0
- package/native/vendor/quickjs-ng/tests/bug775.js +7 -0
- package/native/vendor/quickjs-ng/tests/bug776.js +7 -0
- package/native/vendor/quickjs-ng/tests/bug832.js +2 -0
- package/native/vendor/quickjs-ng/tests/bug858.js +26 -0
- package/native/vendor/quickjs-ng/tests/bug904.js +6 -0
- package/native/vendor/quickjs-ng/tests/bug988.js +7 -0
- package/native/vendor/quickjs-ng/tests/bug999.js +3 -0
- package/native/vendor/quickjs-ng/tests/destructured-export.js +8 -0
- package/native/vendor/quickjs-ng/tests/detect_module/0.js +1 -0
- package/native/vendor/quickjs-ng/tests/detect_module/1.js +2 -0
- package/native/vendor/quickjs-ng/tests/detect_module/2.js +1 -0
- package/native/vendor/quickjs-ng/tests/detect_module/3.js +8 -0
- package/native/vendor/quickjs-ng/tests/detect_module/4.js +3 -0
- package/native/vendor/quickjs-ng/tests/empty.js +0 -0
- package/native/vendor/quickjs-ng/tests/fixture_cyclic_import.js +2 -0
- package/native/vendor/quickjs-ng/tests/fixture_string_exports.js +12 -0
- package/native/vendor/quickjs-ng/tests/function_source.js +14 -0
- package/native/vendor/quickjs-ng/tests/microbench.js +1267 -0
- package/native/vendor/quickjs-ng/tests/null_or_undefined.js +38 -0
- package/native/vendor/quickjs-ng/tests/str-pad-leak.js +5 -0
- package/native/vendor/quickjs-ng/tests/test_bigint.js +107 -0
- package/native/vendor/quickjs-ng/tests/test_bjson.js +366 -0
- package/native/vendor/quickjs-ng/tests/test_builtin.js +1314 -0
- package/native/vendor/quickjs-ng/tests/test_closure.js +220 -0
- package/native/vendor/quickjs-ng/tests/test_cyclic_import.js +12 -0
- package/native/vendor/quickjs-ng/tests/test_domexception.js +35 -0
- package/native/vendor/quickjs-ng/tests/test_language.js +755 -0
- package/native/vendor/quickjs-ng/tests/test_loop.js +367 -0
- package/native/vendor/quickjs-ng/tests/test_queue_microtask.js +39 -0
- package/native/vendor/quickjs-ng/tests/test_std.js +340 -0
- package/native/vendor/quickjs-ng/tests/test_string_exports.js +25 -0
- package/native/vendor/quickjs-ng/tests/test_worker.js +43 -0
- package/native/vendor/quickjs-ng/tests/test_worker_module.js +30 -0
- package/native/vendor/quickjs-ng/tests.conf +14 -0
- package/native/vendor/quickjs-ng/unicode_download.sh +19 -0
- package/native/vendor/quickjs-ng/unicode_gen.c +3108 -0
- package/native/vendor/quickjs-ng/unicode_gen_def.h +310 -0
- package/native/vendor/quickjs-ng/update-version.sh +32 -0
- package/native/vendor/webview2/include/WebView2.h +60636 -0
- package/native/vendor/webview2/include/WebView2EnvironmentOptions.h +406 -0
- package/package.json +33 -0
- package/src/backend.ts +139 -0
- package/src/build-config.ts +87 -0
- package/src/build.ts +276 -0
- package/src/common.ts +195 -0
- package/src/config.ts +89 -0
- package/src/dev.ts +164 -0
- package/src/generate.ts +200 -0
- package/src/icons.ts +116 -0
- package/src/init.ts +190 -0
- package/src/package.ts +150 -0
- package/src/zapp-cli.ts +263 -0
|
@@ -0,0 +1,553 @@
|
|
|
1
|
+
cmake_minimum_required(VERSION 3.10)
|
|
2
|
+
|
|
3
|
+
project(quickjs LANGUAGES C)
|
|
4
|
+
|
|
5
|
+
include(CheckCCompilerFlag)
|
|
6
|
+
include(GNUInstallDirs)
|
|
7
|
+
|
|
8
|
+
set(CMAKE_C_VISIBILITY_PRESET hidden)
|
|
9
|
+
set(CMAKE_C_STANDARD_REQUIRED ON)
|
|
10
|
+
set(CMAKE_C_EXTENSIONS ON)
|
|
11
|
+
set(CMAKE_C_STANDARD 11)
|
|
12
|
+
|
|
13
|
+
macro(xoption OPTION_NAME OPTION_TEXT OPTION_DEFAULT)
|
|
14
|
+
option(${OPTION_NAME} ${OPTION_TEXT} ${OPTION_DEFAULT})
|
|
15
|
+
if(DEFINED ENV{${OPTION_NAME}})
|
|
16
|
+
# Allow setting the option through an environment variable.
|
|
17
|
+
set(${OPTION_NAME} $ENV{${OPTION_NAME}})
|
|
18
|
+
endif()
|
|
19
|
+
if(${OPTION_NAME})
|
|
20
|
+
add_definitions(-D${OPTION_NAME})
|
|
21
|
+
endif()
|
|
22
|
+
message(STATUS " ${OPTION_NAME}: ${${OPTION_NAME}}")
|
|
23
|
+
endmacro()
|
|
24
|
+
|
|
25
|
+
# note: QJS_ENABLE_TSAN is currently incompatible with the other sanitizers but we
|
|
26
|
+
# don't explicitly check for that because who knows what the future will bring?
|
|
27
|
+
# QJS_ENABLE_MSAN only works with clang at the time of writing; also not checked
|
|
28
|
+
# for the same reason
|
|
29
|
+
xoption(BUILD_SHARED_LIBS "Build a shared library" OFF)
|
|
30
|
+
# if we ever require CMake 3.21, we can automatically detect this setting by looking at PROJECT_IS_TOP_LEVEL
|
|
31
|
+
# similar to how glslang does
|
|
32
|
+
xoption(QJS_ENABLE_INSTALL "Enable quickjs installation" ON)
|
|
33
|
+
xoption(QJS_BUILD_WERROR "Build with -Werror" OFF)
|
|
34
|
+
xoption(QJS_BUILD_EXAMPLES "Build examples" OFF)
|
|
35
|
+
xoption(QJS_BUILD_CLI_STATIC "Build a static qjs executable" OFF)
|
|
36
|
+
xoption(QJS_BUILD_CLI_WITH_MIMALLOC "Build the qjs executable with mimalloc" OFF)
|
|
37
|
+
xoption(QJS_BUILD_CLI_WITH_STATIC_MIMALLOC "Build the qjs executable with mimalloc (statically linked)" OFF)
|
|
38
|
+
xoption(QJS_DISABLE_PARSER "Disable JS source code parser" OFF)
|
|
39
|
+
xoption(QJS_ENABLE_ASAN "Enable AddressSanitizer (ASan)" OFF)
|
|
40
|
+
xoption(QJS_ENABLE_MSAN "Enable MemorySanitizer (MSan)" OFF)
|
|
41
|
+
xoption(QJS_ENABLE_TSAN "Enable ThreadSanitizer (TSan)" OFF)
|
|
42
|
+
xoption(QJS_ENABLE_UBSAN "Enable UndefinedBehaviorSanitizer (UBSan)" OFF)
|
|
43
|
+
|
|
44
|
+
# Used to properly define JS_LIBC_EXTERN.
|
|
45
|
+
add_compile_definitions(QUICKJS_NG_BUILD)
|
|
46
|
+
|
|
47
|
+
# MINGW doesn't exist in older cmake versions, newer versions don't know
|
|
48
|
+
# about CMAKE_COMPILER_IS_MINGW, and there is no unique CMAKE_C_COMPILER_ID
|
|
49
|
+
# for mingw-based compilers...
|
|
50
|
+
if(MINGW)
|
|
51
|
+
# do nothing
|
|
52
|
+
elseif(CMAKE_C_COMPILER MATCHES "mingw")
|
|
53
|
+
set(MINGW TRUE)
|
|
54
|
+
else()
|
|
55
|
+
set(MINGW FALSE)
|
|
56
|
+
endif()
|
|
57
|
+
|
|
58
|
+
if(CMAKE_SYSTEM_NAME STREQUAL "tvOS")
|
|
59
|
+
set(TVOS TRUE)
|
|
60
|
+
else()
|
|
61
|
+
set(TVOS FALSE)
|
|
62
|
+
endif()
|
|
63
|
+
if(CMAKE_SYSTEM_NAME STREQUAL "watchOS")
|
|
64
|
+
set(WATCHOS TRUE)
|
|
65
|
+
else()
|
|
66
|
+
set(WATCHOS FALSE)
|
|
67
|
+
endif()
|
|
68
|
+
|
|
69
|
+
if(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
|
70
|
+
set(SUNOS TRUE)
|
|
71
|
+
else()
|
|
72
|
+
set(SUNOS FALSE)
|
|
73
|
+
endif()
|
|
74
|
+
|
|
75
|
+
if(NOT CMAKE_BUILD_TYPE)
|
|
76
|
+
message(STATUS "No build type selected, default to Release")
|
|
77
|
+
set(CMAKE_BUILD_TYPE "Release")
|
|
78
|
+
endif()
|
|
79
|
+
|
|
80
|
+
message(STATUS "Building in ${CMAKE_BUILD_TYPE} mode")
|
|
81
|
+
message(STATUS "Building with ${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION} on ${CMAKE_SYSTEM}")
|
|
82
|
+
|
|
83
|
+
macro(xcheck_add_c_compiler_flag FLAG)
|
|
84
|
+
string(REPLACE "-" "" FLAG_NO_HYPHEN ${FLAG})
|
|
85
|
+
check_c_compiler_flag(${FLAG} COMPILER_SUPPORTS_${FLAG_NO_HYPHEN})
|
|
86
|
+
if(COMPILER_SUPPORTS_${FLAG_NO_HYPHEN})
|
|
87
|
+
add_compile_options(${FLAG})
|
|
88
|
+
endif()
|
|
89
|
+
endmacro()
|
|
90
|
+
|
|
91
|
+
xcheck_add_c_compiler_flag(-Wall)
|
|
92
|
+
if(NOT MSVC AND NOT IOS AND NOT TVOS AND NOT WATCHOS)
|
|
93
|
+
if(QJS_BUILD_WERROR)
|
|
94
|
+
xcheck_add_c_compiler_flag(-Werror)
|
|
95
|
+
endif()
|
|
96
|
+
xcheck_add_c_compiler_flag(-Wextra)
|
|
97
|
+
endif()
|
|
98
|
+
xcheck_add_c_compiler_flag(-Wformat=2)
|
|
99
|
+
xcheck_add_c_compiler_flag(-Wno-implicit-fallthrough)
|
|
100
|
+
xcheck_add_c_compiler_flag(-Wno-sign-compare)
|
|
101
|
+
xcheck_add_c_compiler_flag(-Wno-missing-field-initializers)
|
|
102
|
+
xcheck_add_c_compiler_flag(-Wno-unused-parameter)
|
|
103
|
+
xcheck_add_c_compiler_flag(-Wno-unused-but-set-variable)
|
|
104
|
+
xcheck_add_c_compiler_flag(-Wno-unused-result)
|
|
105
|
+
xcheck_add_c_compiler_flag(-Wno-stringop-truncation)
|
|
106
|
+
xcheck_add_c_compiler_flag(-Wno-array-bounds)
|
|
107
|
+
if(NOT SUNOS)
|
|
108
|
+
xcheck_add_c_compiler_flag(-funsigned-char)
|
|
109
|
+
endif()
|
|
110
|
+
|
|
111
|
+
# ClangCL is command line compatible with MSVC, so 'MSVC' is set.
|
|
112
|
+
if(MSVC)
|
|
113
|
+
xcheck_add_c_compiler_flag(-Wno-unsafe-buffer-usage)
|
|
114
|
+
xcheck_add_c_compiler_flag(-Wno-sign-conversion)
|
|
115
|
+
xcheck_add_c_compiler_flag(-Wno-nonportable-system-include-path)
|
|
116
|
+
xcheck_add_c_compiler_flag(-Wno-implicit-int-conversion)
|
|
117
|
+
xcheck_add_c_compiler_flag(-Wno-shorten-64-to-32)
|
|
118
|
+
xcheck_add_c_compiler_flag(-Wno-reserved-macro-identifier)
|
|
119
|
+
xcheck_add_c_compiler_flag(-Wno-reserved-identifier)
|
|
120
|
+
xcheck_add_c_compiler_flag(-Wdeprecated-declarations)
|
|
121
|
+
xcheck_add_c_compiler_flag(/experimental:c11atomics)
|
|
122
|
+
xcheck_add_c_compiler_flag(/wd4018) # -Wno-sign-conversion
|
|
123
|
+
xcheck_add_c_compiler_flag(/wd4061) # -Wno-implicit-fallthrough
|
|
124
|
+
xcheck_add_c_compiler_flag(/wd4100) # -Wno-unused-parameter
|
|
125
|
+
xcheck_add_c_compiler_flag(/wd4200) # -Wno-zero-length-array
|
|
126
|
+
xcheck_add_c_compiler_flag(/wd4242) # -Wno-shorten-64-to-32
|
|
127
|
+
xcheck_add_c_compiler_flag(/wd4244) # -Wno-shorten-64-to-32
|
|
128
|
+
xcheck_add_c_compiler_flag(/wd4245) # -Wno-sign-compare
|
|
129
|
+
xcheck_add_c_compiler_flag(/wd4267) # -Wno-shorten-64-to-32
|
|
130
|
+
xcheck_add_c_compiler_flag(/wd4388) # -Wno-sign-compare
|
|
131
|
+
xcheck_add_c_compiler_flag(/wd4389) # -Wno-sign-compare
|
|
132
|
+
xcheck_add_c_compiler_flag(/wd4456) # Hides previous local declaration
|
|
133
|
+
xcheck_add_c_compiler_flag(/wd4457) # Hides function parameter
|
|
134
|
+
xcheck_add_c_compiler_flag(/wd4710) # Function not inlined
|
|
135
|
+
xcheck_add_c_compiler_flag(/wd4711) # Function was inlined
|
|
136
|
+
xcheck_add_c_compiler_flag(/wd4820) # Padding added after construct
|
|
137
|
+
xcheck_add_c_compiler_flag(/wd4996) # -Wdeprecated-declarations
|
|
138
|
+
xcheck_add_c_compiler_flag(/wd5045) # Compiler will insert Spectre mitigation for memory load if /Qspectre switch specified
|
|
139
|
+
endif()
|
|
140
|
+
|
|
141
|
+
# Set a 8MB default stack size on Windows.
|
|
142
|
+
# It defaults to 1MB on MSVC, which is the same as our current JS stack size,
|
|
143
|
+
# so it will overflow and crash otherwise.
|
|
144
|
+
# On MinGW it defaults to 2MB.
|
|
145
|
+
if(WIN32)
|
|
146
|
+
if(MSVC)
|
|
147
|
+
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:8388608")
|
|
148
|
+
else()
|
|
149
|
+
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--stack,8388608")
|
|
150
|
+
endif()
|
|
151
|
+
endif()
|
|
152
|
+
|
|
153
|
+
# MacOS and GCC 11 or later need -Wno-maybe-uninitialized
|
|
154
|
+
# https://github.com/quickjs-ng/quickjs/issues/453
|
|
155
|
+
if(APPLE AND CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 11)
|
|
156
|
+
xcheck_add_c_compiler_flag(-Wno-maybe-uninitialized)
|
|
157
|
+
endif()
|
|
158
|
+
|
|
159
|
+
if(CMAKE_SYSTEM_NAME STREQUAL "WASI")
|
|
160
|
+
add_compile_definitions(
|
|
161
|
+
_WASI_EMULATED_PROCESS_CLOCKS
|
|
162
|
+
_WASI_EMULATED_SIGNAL
|
|
163
|
+
)
|
|
164
|
+
add_link_options(
|
|
165
|
+
-lwasi-emulated-process-clocks
|
|
166
|
+
-lwasi-emulated-signal
|
|
167
|
+
)
|
|
168
|
+
endif()
|
|
169
|
+
|
|
170
|
+
if(CMAKE_BUILD_TYPE MATCHES "Debug")
|
|
171
|
+
xcheck_add_c_compiler_flag(/Od)
|
|
172
|
+
xcheck_add_c_compiler_flag(-O0)
|
|
173
|
+
xcheck_add_c_compiler_flag(-ggdb)
|
|
174
|
+
xcheck_add_c_compiler_flag(-fno-omit-frame-pointer)
|
|
175
|
+
endif()
|
|
176
|
+
|
|
177
|
+
if(BUILD_SHARED_LIBS)
|
|
178
|
+
message(STATUS "Building a shared library")
|
|
179
|
+
endif()
|
|
180
|
+
|
|
181
|
+
if(QJS_ENABLE_ASAN)
|
|
182
|
+
message(STATUS "Building with ASan")
|
|
183
|
+
add_compile_options(
|
|
184
|
+
-fsanitize=address
|
|
185
|
+
-fno-sanitize-recover=all
|
|
186
|
+
-fno-omit-frame-pointer
|
|
187
|
+
)
|
|
188
|
+
add_link_options(
|
|
189
|
+
-fsanitize=address
|
|
190
|
+
-fno-sanitize-recover=all
|
|
191
|
+
-fno-omit-frame-pointer
|
|
192
|
+
)
|
|
193
|
+
endif()
|
|
194
|
+
|
|
195
|
+
if(QJS_ENABLE_MSAN)
|
|
196
|
+
message(STATUS "Building with MSan")
|
|
197
|
+
add_compile_options(
|
|
198
|
+
-fsanitize=memory
|
|
199
|
+
-fno-sanitize-recover=all
|
|
200
|
+
-fno-omit-frame-pointer
|
|
201
|
+
)
|
|
202
|
+
add_link_options(
|
|
203
|
+
-fsanitize=memory
|
|
204
|
+
-fno-sanitize-recover=all
|
|
205
|
+
-fno-omit-frame-pointer
|
|
206
|
+
)
|
|
207
|
+
endif()
|
|
208
|
+
|
|
209
|
+
if(QJS_ENABLE_TSAN)
|
|
210
|
+
message(STATUS "Building with TSan")
|
|
211
|
+
add_compile_options(
|
|
212
|
+
-fsanitize=thread
|
|
213
|
+
-fno-sanitize-recover=all
|
|
214
|
+
-fno-omit-frame-pointer
|
|
215
|
+
)
|
|
216
|
+
add_link_options(
|
|
217
|
+
-fsanitize=thread
|
|
218
|
+
-fno-sanitize-recover=all
|
|
219
|
+
-fno-omit-frame-pointer
|
|
220
|
+
)
|
|
221
|
+
endif()
|
|
222
|
+
|
|
223
|
+
if(QJS_ENABLE_UBSAN)
|
|
224
|
+
message(STATUS "Building with UBSan")
|
|
225
|
+
add_compile_options(
|
|
226
|
+
-fsanitize=undefined
|
|
227
|
+
-fno-sanitize-recover=all
|
|
228
|
+
-fno-omit-frame-pointer
|
|
229
|
+
)
|
|
230
|
+
add_link_options(
|
|
231
|
+
-fsanitize=undefined
|
|
232
|
+
-fno-sanitize-recover=all
|
|
233
|
+
-fno-omit-frame-pointer
|
|
234
|
+
)
|
|
235
|
+
endif()
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
# QuickJS library
|
|
239
|
+
#
|
|
240
|
+
|
|
241
|
+
xoption(QJS_BUILD_LIBC "Build standard library modules as part of the library" OFF)
|
|
242
|
+
macro(add_qjs_libc_if_needed target)
|
|
243
|
+
if(NOT QJS_BUILD_LIBC)
|
|
244
|
+
target_link_libraries(${target} PRIVATE qjs-libc)
|
|
245
|
+
endif()
|
|
246
|
+
endmacro()
|
|
247
|
+
macro(add_static_if_needed target)
|
|
248
|
+
if(QJS_BUILD_CLI_STATIC OR MINGW)
|
|
249
|
+
target_link_options(${target} PRIVATE -static)
|
|
250
|
+
if(MINGW)
|
|
251
|
+
target_link_options(${target} PRIVATE -static-libgcc)
|
|
252
|
+
endif()
|
|
253
|
+
endif()
|
|
254
|
+
endmacro()
|
|
255
|
+
|
|
256
|
+
set(qjs_sources
|
|
257
|
+
dtoa.c
|
|
258
|
+
libregexp.c
|
|
259
|
+
libunicode.c
|
|
260
|
+
quickjs.c
|
|
261
|
+
)
|
|
262
|
+
|
|
263
|
+
if(QJS_BUILD_LIBC)
|
|
264
|
+
list(APPEND qjs_sources quickjs-libc.c)
|
|
265
|
+
# The definition must be added to the entire project.
|
|
266
|
+
add_compile_definitions(QJS_BUILD_LIBC)
|
|
267
|
+
endif()
|
|
268
|
+
list(APPEND qjs_defines _GNU_SOURCE)
|
|
269
|
+
if(WIN32)
|
|
270
|
+
# NB: Windows 7 is EOL and we are only supporting in so far as it doesn't interfere with progress.
|
|
271
|
+
list(APPEND qjs_defines WIN32_LEAN_AND_MEAN _WIN32_WINNT=0x0601)
|
|
272
|
+
endif()
|
|
273
|
+
if(TVOS)
|
|
274
|
+
list(APPEND qjs_defines _TVOS)
|
|
275
|
+
endif()
|
|
276
|
+
if(WATCHOS)
|
|
277
|
+
list(APPEND qjs_defines _WATCHOS)
|
|
278
|
+
endif()
|
|
279
|
+
list(APPEND qjs_libs ${CMAKE_DL_LIBS})
|
|
280
|
+
find_package(Threads)
|
|
281
|
+
if(NOT CMAKE_SYSTEM_NAME STREQUAL "WASI")
|
|
282
|
+
list(APPEND qjs_libs ${CMAKE_THREAD_LIBS_INIT})
|
|
283
|
+
endif()
|
|
284
|
+
|
|
285
|
+
# try to find libm
|
|
286
|
+
find_library(M_LIBRARIES m)
|
|
287
|
+
if(M_LIBRARIES OR CMAKE_C_COMPILER_ID STREQUAL "TinyCC")
|
|
288
|
+
list(APPEND qjs_libs m)
|
|
289
|
+
endif()
|
|
290
|
+
|
|
291
|
+
add_library(qjs ${qjs_sources})
|
|
292
|
+
target_compile_definitions(qjs PRIVATE ${qjs_defines})
|
|
293
|
+
target_include_directories(qjs PUBLIC
|
|
294
|
+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
|
295
|
+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
|
296
|
+
)
|
|
297
|
+
target_link_libraries(qjs PUBLIC ${qjs_libs})
|
|
298
|
+
|
|
299
|
+
# Pass a compiler definition so that Windows gets its declspec's right.
|
|
300
|
+
get_target_property(QJS_LIB_TYPE qjs TYPE)
|
|
301
|
+
if(QJS_LIB_TYPE STREQUAL "SHARED_LIBRARY")
|
|
302
|
+
target_compile_definitions(qjs
|
|
303
|
+
PRIVATE BUILDING_QJS_SHARED
|
|
304
|
+
PUBLIC USING_QJS_SHARED
|
|
305
|
+
)
|
|
306
|
+
endif()
|
|
307
|
+
|
|
308
|
+
# An interface library for modules.
|
|
309
|
+
add_library(qjs_module_lib INTERFACE)
|
|
310
|
+
target_include_directories(qjs_module_lib INTERFACE
|
|
311
|
+
$<TARGET_PROPERTY:qjs,INTERFACE_INCLUDE_DIRECTORIES>
|
|
312
|
+
)
|
|
313
|
+
target_compile_definitions(qjs_module_lib INTERFACE
|
|
314
|
+
QUICKJS_NG_MODULE_BUILD
|
|
315
|
+
$<TARGET_PROPERTY:qjs,INTERFACE_COMPILE_DEFINITIONS>
|
|
316
|
+
)
|
|
317
|
+
if(WIN32)
|
|
318
|
+
# Since Windows cannot resolve symbols at load time, we need to
|
|
319
|
+
# explicitly link it to qjs.
|
|
320
|
+
target_link_libraries(qjs_module_lib INTERFACE
|
|
321
|
+
qjs
|
|
322
|
+
)
|
|
323
|
+
endif()
|
|
324
|
+
|
|
325
|
+
if(NOT QJS_BUILD_LIBC)
|
|
326
|
+
add_library(qjs-libc STATIC quickjs-libc.c)
|
|
327
|
+
target_compile_definitions(qjs-libc PRIVATE ${qjs_defines})
|
|
328
|
+
target_link_libraries(qjs-libc PRIVATE ${qjs_libs} qjs)
|
|
329
|
+
endif()
|
|
330
|
+
|
|
331
|
+
if(EMSCRIPTEN)
|
|
332
|
+
add_executable(qjs_wasm ${qjs_sources})
|
|
333
|
+
target_link_options(qjs_wasm PRIVATE
|
|
334
|
+
# in emscripten 3.x, this will be set to 16k which is too small for quickjs. #write sth. to force github rebuild
|
|
335
|
+
-sSTACK_SIZE=2097152 # let it be 2m = 2 * 1024 * 1024 = 2097152, otherwise, stack overflow may be occured at bootstrap
|
|
336
|
+
-sNO_INVOKE_RUN
|
|
337
|
+
-sNO_EXIT_RUNTIME
|
|
338
|
+
-sMODULARIZE # do not mess the global
|
|
339
|
+
-sEXPORT_ES6 # export js file to morden es module
|
|
340
|
+
-sEXPORT_NAME=getQuickJs # give a name
|
|
341
|
+
-sTEXTDECODER=1 # it will be 2 if we use -Oz, and that will cause js -> c string convertion fail
|
|
342
|
+
-sNO_DEFAULT_TO_CXX # this project is pure c project, no need for c plus plus handle
|
|
343
|
+
-sEXPORTED_RUNTIME_METHODS=ccall,cwrap
|
|
344
|
+
)
|
|
345
|
+
target_compile_definitions(qjs_wasm PRIVATE ${qjs_defines})
|
|
346
|
+
target_link_libraries(qjs_wasm PRIVATE m)
|
|
347
|
+
endif()
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
# QuickJS bytecode compiler
|
|
351
|
+
#
|
|
352
|
+
|
|
353
|
+
add_executable(qjsc
|
|
354
|
+
qjsc.c
|
|
355
|
+
)
|
|
356
|
+
add_qjs_libc_if_needed(qjsc)
|
|
357
|
+
add_static_if_needed(qjsc)
|
|
358
|
+
target_compile_definitions(qjsc PRIVATE ${qjs_defines})
|
|
359
|
+
target_link_libraries(qjsc PRIVATE qjs)
|
|
360
|
+
|
|
361
|
+
|
|
362
|
+
# QuickJS CLI
|
|
363
|
+
#
|
|
364
|
+
|
|
365
|
+
add_executable(qjs_exe
|
|
366
|
+
gen/repl.c
|
|
367
|
+
gen/standalone.c
|
|
368
|
+
qjs.c
|
|
369
|
+
)
|
|
370
|
+
add_qjs_libc_if_needed(qjs_exe)
|
|
371
|
+
add_static_if_needed(qjs_exe)
|
|
372
|
+
set_target_properties(qjs_exe PROPERTIES
|
|
373
|
+
OUTPUT_NAME "qjs"
|
|
374
|
+
)
|
|
375
|
+
target_compile_definitions(qjs_exe PRIVATE ${qjs_defines})
|
|
376
|
+
target_link_libraries(qjs_exe PRIVATE qjs)
|
|
377
|
+
if (NOT WIN32)
|
|
378
|
+
set_target_properties(qjs_exe PROPERTIES ENABLE_EXPORTS TRUE)
|
|
379
|
+
endif()
|
|
380
|
+
|
|
381
|
+
# WASI Reactor
|
|
382
|
+
#
|
|
383
|
+
|
|
384
|
+
if(CMAKE_SYSTEM_NAME STREQUAL "WASI")
|
|
385
|
+
option(QJS_WASI_REACTOR "Build WASI reactor (exports library functions, no _start)" OFF)
|
|
386
|
+
if(QJS_WASI_REACTOR)
|
|
387
|
+
add_executable(qjs_wasi
|
|
388
|
+
quickjs-libc.c
|
|
389
|
+
qjs-wasi-reactor.c
|
|
390
|
+
)
|
|
391
|
+
set_target_properties(qjs_wasi PROPERTIES
|
|
392
|
+
OUTPUT_NAME "qjs"
|
|
393
|
+
SUFFIX ".wasm"
|
|
394
|
+
)
|
|
395
|
+
target_compile_definitions(qjs_wasi PRIVATE ${qjs_defines})
|
|
396
|
+
target_link_libraries(qjs_wasi qjs)
|
|
397
|
+
target_link_options(qjs_wasi PRIVATE
|
|
398
|
+
-mexec-model=reactor
|
|
399
|
+
# Export all symbols with default visibility (JS_EXTERN functions)
|
|
400
|
+
-Wl,--export-dynamic
|
|
401
|
+
# Memory management (libc symbols need explicit export)
|
|
402
|
+
-Wl,--export=malloc
|
|
403
|
+
-Wl,--export=free
|
|
404
|
+
-Wl,--export=realloc
|
|
405
|
+
-Wl,--export=calloc
|
|
406
|
+
)
|
|
407
|
+
endif()
|
|
408
|
+
endif()
|
|
409
|
+
|
|
410
|
+
if(QJS_BUILD_CLI_WITH_MIMALLOC OR QJS_BUILD_CLI_WITH_STATIC_MIMALLOC)
|
|
411
|
+
find_package(mimalloc REQUIRED)
|
|
412
|
+
# Upstream mimalloc doesn't provide a way to know if both libraries are supported.
|
|
413
|
+
if(QJS_BUILD_CLI_WITH_STATIC_MIMALLOC)
|
|
414
|
+
target_link_libraries(qjs_exe PRIVATE mimalloc-static)
|
|
415
|
+
else()
|
|
416
|
+
target_link_libraries(qjs_exe PRIVATE mimalloc)
|
|
417
|
+
endif()
|
|
418
|
+
endif()
|
|
419
|
+
|
|
420
|
+
# Test262 runner
|
|
421
|
+
#
|
|
422
|
+
|
|
423
|
+
if(NOT EMSCRIPTEN)
|
|
424
|
+
add_executable(run-test262
|
|
425
|
+
run-test262.c
|
|
426
|
+
)
|
|
427
|
+
add_qjs_libc_if_needed(run-test262)
|
|
428
|
+
target_compile_definitions(run-test262 PRIVATE ${qjs_defines})
|
|
429
|
+
target_link_libraries(run-test262 PRIVATE qjs)
|
|
430
|
+
endif()
|
|
431
|
+
|
|
432
|
+
# Interrupt test
|
|
433
|
+
#
|
|
434
|
+
|
|
435
|
+
add_executable(api-test
|
|
436
|
+
api-test.c
|
|
437
|
+
)
|
|
438
|
+
target_compile_definitions(api-test PRIVATE ${qjs_defines})
|
|
439
|
+
target_link_libraries(api-test PRIVATE qjs)
|
|
440
|
+
|
|
441
|
+
add_executable(lre-test
|
|
442
|
+
lre-test.c
|
|
443
|
+
libregexp.c
|
|
444
|
+
libunicode.c
|
|
445
|
+
)
|
|
446
|
+
target_compile_definitions(lre-test PRIVATE ${qjs_defines})
|
|
447
|
+
|
|
448
|
+
# Unicode generator
|
|
449
|
+
#
|
|
450
|
+
|
|
451
|
+
add_executable(unicode_gen EXCLUDE_FROM_ALL
|
|
452
|
+
libunicode.c
|
|
453
|
+
unicode_gen.c
|
|
454
|
+
)
|
|
455
|
+
target_compile_definitions(unicode_gen PRIVATE ${qjs_defines})
|
|
456
|
+
|
|
457
|
+
add_executable(function_source
|
|
458
|
+
gen/function_source.c
|
|
459
|
+
)
|
|
460
|
+
add_qjs_libc_if_needed(function_source)
|
|
461
|
+
target_include_directories(function_source PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
462
|
+
target_compile_definitions(function_source PRIVATE ${qjs_defines})
|
|
463
|
+
target_link_libraries(function_source PRIVATE qjs)
|
|
464
|
+
|
|
465
|
+
# Examples
|
|
466
|
+
#
|
|
467
|
+
|
|
468
|
+
if(QJS_BUILD_EXAMPLES)
|
|
469
|
+
if(WIN32 AND NOT (QJS_LIB_TYPE STREQUAL "SHARED_LIBRARY"))
|
|
470
|
+
message(AUTHOR_WARNING
|
|
471
|
+
"Binary modules used with static qjs on Windows. There might be\n"
|
|
472
|
+
"runtime errors when the module is used due to two copies of qjs\n"
|
|
473
|
+
"in memory.\n"
|
|
474
|
+
"Please use \"-DBUILD_SHARED_LIBS=true\" if possible."
|
|
475
|
+
)
|
|
476
|
+
endif()
|
|
477
|
+
|
|
478
|
+
add_executable(hello
|
|
479
|
+
gen/hello.c
|
|
480
|
+
)
|
|
481
|
+
add_qjs_libc_if_needed(hello)
|
|
482
|
+
target_include_directories(hello PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
483
|
+
target_compile_definitions(hello PRIVATE ${qjs_defines})
|
|
484
|
+
target_link_libraries(hello PRIVATE qjs)
|
|
485
|
+
|
|
486
|
+
add_executable(hello_module
|
|
487
|
+
gen/hello_module.c
|
|
488
|
+
)
|
|
489
|
+
add_qjs_libc_if_needed(hello_module)
|
|
490
|
+
target_include_directories(hello_module PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
491
|
+
target_compile_definitions(hello_module PRIVATE ${qjs_defines})
|
|
492
|
+
target_link_libraries(hello_module PRIVATE qjs)
|
|
493
|
+
|
|
494
|
+
add_library(fib MODULE examples/fib.c)
|
|
495
|
+
set_target_properties(fib PROPERTIES
|
|
496
|
+
PREFIX ""
|
|
497
|
+
)
|
|
498
|
+
target_link_libraries(fib PRIVATE qjs_module_lib)
|
|
499
|
+
if(APPLE)
|
|
500
|
+
target_link_options(fib PRIVATE -undefined dynamic_lookup)
|
|
501
|
+
endif()
|
|
502
|
+
|
|
503
|
+
add_library(point MODULE examples/point.c)
|
|
504
|
+
set_target_properties(point PROPERTIES
|
|
505
|
+
PREFIX ""
|
|
506
|
+
)
|
|
507
|
+
target_link_libraries(point PRIVATE qjs_module_lib)
|
|
508
|
+
if(APPLE)
|
|
509
|
+
target_link_options(point PRIVATE -undefined dynamic_lookup)
|
|
510
|
+
endif()
|
|
511
|
+
|
|
512
|
+
add_executable(test_fib
|
|
513
|
+
gen/test_fib.c
|
|
514
|
+
)
|
|
515
|
+
add_qjs_libc_if_needed(test_fib)
|
|
516
|
+
target_include_directories(test_fib PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
517
|
+
target_compile_definitions(test_fib PRIVATE ${qjs_defines})
|
|
518
|
+
target_link_libraries(test_fib PRIVATE qjs)
|
|
519
|
+
# Loads fib.so which depends on symbols from libqjs.
|
|
520
|
+
set_target_properties(test_fib PROPERTIES ENABLE_EXPORTS TRUE)
|
|
521
|
+
endif()
|
|
522
|
+
|
|
523
|
+
# Install target
|
|
524
|
+
#
|
|
525
|
+
|
|
526
|
+
if (QJS_ENABLE_INSTALL)
|
|
527
|
+
file(STRINGS quickjs.h quickjs_h REGEX QJS_VERSION)
|
|
528
|
+
string(REGEX MATCH "QJS_VERSION_MAJOR ([0-9]*)" _ "${quickjs_h}")
|
|
529
|
+
set(QJS_VERSION_MAJOR ${CMAKE_MATCH_1})
|
|
530
|
+
string(REGEX MATCH "QJS_VERSION_MINOR ([0-9]*)" _ "${quickjs_h}")
|
|
531
|
+
set(QJS_VERSION_MINOR ${CMAKE_MATCH_1})
|
|
532
|
+
string(REGEX MATCH "QJS_VERSION_PATCH ([0-9]*)" _ "${quickjs_h}")
|
|
533
|
+
set(QJS_VERSION_PATCH ${CMAKE_MATCH_1})
|
|
534
|
+
set_target_properties(qjs PROPERTIES
|
|
535
|
+
VERSION ${QJS_VERSION_MAJOR}.${QJS_VERSION_MINOR}.${QJS_VERSION_PATCH}
|
|
536
|
+
SOVERSION ${QJS_VERSION_MAJOR}
|
|
537
|
+
)
|
|
538
|
+
install(FILES quickjs.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
|
539
|
+
if(QJS_BUILD_LIBC)
|
|
540
|
+
install(FILES quickjs-libc.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
|
541
|
+
endif()
|
|
542
|
+
if(NOT IOS AND NOT TVOS AND NOT WATCHOS)
|
|
543
|
+
install(TARGETS qjs_exe RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
544
|
+
install(TARGETS qjsc RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
545
|
+
endif()
|
|
546
|
+
install(TARGETS qjs EXPORT qjsConfig
|
|
547
|
+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
548
|
+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
549
|
+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
550
|
+
install(EXPORT qjsConfig DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/quickjs)
|
|
551
|
+
install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
|
552
|
+
install(DIRECTORY examples DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
|
553
|
+
endif()
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2017-2026 Fabrice Bellard
|
|
4
|
+
Copyright (c) 2017-2024 Charlie Gordon
|
|
5
|
+
Copyright (c) 2023-2026 Ben Noordhuis
|
|
6
|
+
Copyright (c) 2023-2026 Saúl Ibarra Corretgé
|
|
7
|
+
|
|
8
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
9
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
10
|
+
in the Software without restriction, including without limitation the rights
|
|
11
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
12
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
13
|
+
furnished to do so, subject to the following conditions:
|
|
14
|
+
|
|
15
|
+
The above copyright notice and this permission notice shall be included in
|
|
16
|
+
all copies or substantial portions of the Software.
|
|
17
|
+
|
|
18
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
19
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
20
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
21
|
+
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
22
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
23
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
24
|
+
THE SOFTWARE.
|