@@ -2,14 +2,12 @@ cmake_minimum_required(VERSION 3.15)
22
33# Metadata
44
5- project (NativeScript)
5+ project (NativeScript CXX OBJCXX )
66
77set (NAME NativeScript)
88set (VERSION 0.1.0)
99set (BUNDLE_IDENTIFIER "org.nativescript.runtime" )
1010
11- enable_language (OBJCXX )
12-
1311set (CMAKE_CXX_STANDARD 20)
1412
1513set (BUILD_FRAMEWORK TRUE )
@@ -21,8 +19,9 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMMON_FLAGS}")
2119# Arguments
2220
2321set (TARGET_PLATFORM "macos" CACHE STRING "Target platform for the Objective-C bridge" )
24- set (TARGET_ENGINE "hermes " CACHE STRING "Target JS engine for the NativeScript runtime" )
22+ set (TARGET_ENGINE "v8 " CACHE STRING "Target JS engine for the NativeScript runtime" )
2523set (METADATA_SIZE 0 CACHE STRING "Size of embedded metadata in bytes" )
24+ set (BUILD_CLI_BINARY OFF CACHE BOOL "Build the NativeScript CLI binary" )
2625
2726if (TARGET_PLATFORM STREQUAL "ios" )
2827 set (CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET "13.0" )
@@ -72,7 +71,7 @@ elseif(TARGET_ENGINE STREQUAL "hermes")
7271 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -std=c++20 -DTARGET_ENGINE_HERMES" )
7372elseif (TARGET_ENGINE STREQUAL "v8" )
7473 set (TARGET_ENGINE_V8 TRUE )
75- add_link_options ("-fuse-ld=/opt/homebrew/opt/llvm/bin/ld64. lld" )
74+ add_link_options ("-fuse-ld=lld" )
7675 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -stdlib=libc++ -std=c++20 -DTARGET_ENGINE_V8" )
7776elseif (TARGET_ENGINE STREQUAL "quickjs" )
7877 set (TARGET_ENGINE_QUICKJS TRUE )
8685endif ()
8786
8887if (ENABLE_JS_RUNTIME)
88+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DENABLE_JS_RUNTIME" )
8989 set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_JS_RUNTIME" )
9090elseif (TARGET_PLATFORM_MACOS)
9191 # If building a generic library for macOS, we'll build a dylib instead of a framework
@@ -102,7 +102,6 @@ message(STATUS "ENABLE_JS_RUNTIME = ${ENABLE_JS_RUNTIME}")
102102include_directories (
103103 ./
104104 ../metadata-generator/include
105- ada
106105 napi/common
107106 libffi/${LIBFFI_BUILD}/include
108107)
@@ -128,20 +127,30 @@ set(SOURCE_FILES
128127 ffi/Interop.mm
129128 ffi/InlineFunctions.mm
130129 ffi/ClassBuilder.mm
130+ ffi/NativeScriptException.mm
131131)
132132
133133if (ENABLE_JS_RUNTIME)
134134 set (SOURCE_FILES
135135 ${SOURCE_FILES}
136- runtime/Console.cpp
136+ runtime/modules/console/ Console.cpp
137137 runtime/Runtime.cpp
138- runtime/Require.cpp
139- runtime/Performance.cpp
138+ runtime/modules/worker/Worker.mm
139+ runtime/modules/worker/MessageJSON.cpp
140+ runtime/modules/worker/MessageV8.cpp
141+ runtime/modules/worker/ConcurrentQueue.cpp
142+ runtime/modules/worker/WorkerImpl.mm
143+ runtime/modules/worker/WorkerImpl.mm
144+ runtime/modules/module/ModuleInternal.cpp
145+ runtime/modules/performance/Performance.cpp
140146 runtime/Bundle.mm
141- runtime/Timers.mm
142- runtime/App.mm
147+ runtime/modules/timers/ Timers.mm
148+ runtime/modules/app/ App.mm
143149 runtime/NativeScript.mm
144150 runtime/RuntimeConfig.cpp
151+ runtime/modules/url/ada/ada.cpp
152+ runtime/modules/url/URL.cpp
153+ runtime/modules/url/URLSearchParams.cpp
145154 )
146155
147156 if (TARGET_ENGINE_V8)
@@ -220,6 +229,13 @@ else()
220229 )
221230endif ()
222231
232+ if (BUILD_CLI_BINARY)
233+ set (SOURCE_FILES ${SOURCE_FILES}
234+ cli/main.cpp
235+ cli/segappend.cpp
236+ )
237+ endif ()
238+
223239# Find SDK
224240
225241find_program (XCODEBUILD_EXECUTABLE xcodebuild )
@@ -248,11 +264,15 @@ message(STATUS "SDK = ${CMAKE_OSX_SYSROOT}")
248264
249265# Build targets
250266
251- add_library (
252- ${NAME}
253- SHARED
254- ${SOURCE_FILES}
255- )
267+ if (BUILD_CLI_BINARY)
268+ add_executable (${NAME} ${SOURCE_FILES} )
269+ else ()
270+ add_library (
271+ ${NAME}
272+ SHARED
273+ ${SOURCE_FILES}
274+ )
275+ endif ()
256276
257277target_sources (
258278 ${NAME}
0 commit comments