mirror of
https://github.com/radareorg/quickjs.git
synced 2026-11-07 14:38:27 -10:00
Support for iOS, tvOS and watchOS (#1214)
This commit is contained in:
1 parent
3d6606a2d5
commit
38ef7c08cf
2 files changed
+44
-26
No files matched your search
+41
-24
@@ -21,6 +21,17 @@ else()
|
||||
set(MINGW FALSE)
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "tvOS")
|
||||
set(TVOS TRUE)
|
||||
else()
|
||||
set(TVOS FALSE)
|
||||
endif()
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL "watchOS")
|
||||
set(WATCHOS TRUE)
|
||||
else()
|
||||
set(WATCHOS FALSE)
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
message(STATUS "No build type selected, default to Release")
|
||||
set(CMAKE_BUILD_TYPE "Release")
|
||||
@@ -38,7 +49,7 @@ macro(xcheck_add_c_compiler_flag FLAG)
|
||||
endmacro()
|
||||
|
||||
xcheck_add_c_compiler_flag(-Wall)
|
||||
if(NOT MSVC AND NOT IOS)
|
||||
if(NOT MSVC AND NOT IOS AND NOT TVOS AND NOT WATCHOS)
|
||||
xcheck_add_c_compiler_flag(-Werror)
|
||||
xcheck_add_c_compiler_flag(-Wextra)
|
||||
endif()
|
||||
@@ -241,6 +252,12 @@ if(WIN32)
|
||||
# NB: Windows 7 is EOL and we are only supporting in so far as it doesn't interfere with progress.
|
||||
list(APPEND qjs_defines WIN32_LEAN_AND_MEAN _WIN32_WINNT=0x0601)
|
||||
endif()
|
||||
if(TVOS)
|
||||
list(APPEND qjs_defines _TVOS)
|
||||
endif()
|
||||
if(WATCHOS)
|
||||
list(APPEND qjs_defines _WATCHOS)
|
||||
endif()
|
||||
list(APPEND qjs_libs ${CMAKE_DL_LIBS})
|
||||
find_package(Threads)
|
||||
if(NOT CMAKE_SYSTEM_NAME STREQUAL "WASI")
|
||||
@@ -416,29 +433,29 @@ endif()
|
||||
# Install target
|
||||
#
|
||||
|
||||
if(NOT IOS)
|
||||
file(STRINGS quickjs.h quickjs_h REGEX QJS_VERSION)
|
||||
string(REGEX MATCH "QJS_VERSION_MAJOR ([0-9]*)" _ "${quickjs_h}")
|
||||
set(QJS_VERSION_MAJOR ${CMAKE_MATCH_1})
|
||||
string(REGEX MATCH "QJS_VERSION_MINOR ([0-9]*)" _ "${quickjs_h}")
|
||||
set(QJS_VERSION_MINOR ${CMAKE_MATCH_1})
|
||||
string(REGEX MATCH "QJS_VERSION_PATCH ([0-9]*)" _ "${quickjs_h}")
|
||||
set(QJS_VERSION_PATCH ${CMAKE_MATCH_1})
|
||||
set_target_properties(qjs PROPERTIES
|
||||
VERSION ${QJS_VERSION_MAJOR}.${QJS_VERSION_MINOR}.${QJS_VERSION_PATCH}
|
||||
SOVERSION ${QJS_VERSION_MAJOR}
|
||||
)
|
||||
install(FILES quickjs.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
if(QJS_BUILD_LIBC)
|
||||
install(FILES quickjs-libc.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
endif()
|
||||
file(STRINGS quickjs.h quickjs_h REGEX QJS_VERSION)
|
||||
string(REGEX MATCH "QJS_VERSION_MAJOR ([0-9]*)" _ "${quickjs_h}")
|
||||
set(QJS_VERSION_MAJOR ${CMAKE_MATCH_1})
|
||||
string(REGEX MATCH "QJS_VERSION_MINOR ([0-9]*)" _ "${quickjs_h}")
|
||||
set(QJS_VERSION_MINOR ${CMAKE_MATCH_1})
|
||||
string(REGEX MATCH "QJS_VERSION_PATCH ([0-9]*)" _ "${quickjs_h}")
|
||||
set(QJS_VERSION_PATCH ${CMAKE_MATCH_1})
|
||||
set_target_properties(qjs PROPERTIES
|
||||
VERSION ${QJS_VERSION_MAJOR}.${QJS_VERSION_MINOR}.${QJS_VERSION_PATCH}
|
||||
SOVERSION ${QJS_VERSION_MAJOR}
|
||||
)
|
||||
install(FILES quickjs.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
if(QJS_BUILD_LIBC)
|
||||
install(FILES quickjs-libc.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
endif()
|
||||
if(NOT IOS AND NOT TVOS AND NOT WATCHOS)
|
||||
install(TARGETS qjs_exe RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(TARGETS qjsc RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(TARGETS qjs EXPORT qjsConfig
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(EXPORT qjsConfig DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/quickjs)
|
||||
install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||
install(DIRECTORY examples DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||
endif()
|
||||
install(TARGETS qjs EXPORT qjsConfig
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
install(EXPORT qjsConfig DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/quickjs)
|
||||
install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||
install(DIRECTORY examples DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||
+3
-2
@@ -69,6 +69,7 @@
|
||||
#if defined(__APPLE__)
|
||||
typedef sig_t sighandler_t;
|
||||
#include <crt_externs.h>
|
||||
#include <TargetConditionals.h>
|
||||
#define environ (*_NSGetEnviron())
|
||||
#endif
|
||||
|
||||
@@ -3114,7 +3115,7 @@ static JSValue js_os_realpath(JSContext *ctx, JSValueConst this_val,
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(_WIN32) && !defined(__wasi__)
|
||||
#if !defined(_WIN32) && !defined(__wasi__) && !(defined(__APPLE__) && (TARGET_OS_TV || TARGET_OS_WATCH))
|
||||
static JSValue js_os_symlink(JSContext *ctx, JSValueConst this_val,
|
||||
int argc, JSValueConst *argv)
|
||||
{
|
||||
@@ -4173,7 +4174,7 @@ static const JSCFunctionListEntry js_os_funcs[] = {
|
||||
#if !defined(__wasi__)
|
||||
JS_CFUNC_DEF("realpath", 1, js_os_realpath ),
|
||||
#endif
|
||||
#if !defined(_WIN32) && !defined(__wasi__)
|
||||
#if !defined(_WIN32) && !defined(__wasi__) && !(defined(__APPLE__) && (TARGET_OS_TV || TARGET_OS_WATCH))
|
||||
JS_CFUNC_MAGIC_DEF("lstat", 1, js_os_stat, 1 ),
|
||||
JS_CFUNC_DEF("symlink", 2, js_os_symlink ),
|
||||
JS_CFUNC_DEF("readlink", 1, js_os_readlink ),
|
||||
|
||||
Reference in new issue
Block a user