11# Minimal CMake packaging wrapper for JerryScript
2- # Builds a static jerry-core with ES.next profile, no tools/debugger/snapshots, and a custom port layer for MrDocs .
2+ # Builds a static jerry-core with ES.next profile, no tools/debugger/snapshots, and reuses the upstream default port .
33
44cmake_minimum_required (VERSION 3.16)
55project (jerryscript VERSION 3.0.0 LANGUAGES C)
@@ -18,7 +18,21 @@ option(JERRY_PARSER_STATS "Enable parser statistics" OFF)
1818option (JERRY_LINE_INFO "Enable line info" OFF )
1919option (JERRY_LTO "Enable LTO" OFF )
2020option (JERRY_LIBC "Use bundled libc" OFF )
21- option (JERRY_PORT_DEFAULT "Use default port implementation" ON )
21+ option (JERRY_PORT "Build default port implementation" ON )
22+
23+ # Minimal platform/compiler detection to satisfy jerry-port CMake expectations.
24+ set (PLATFORM "${CMAKE_SYSTEM_NAME} " )
25+ string (TOUPPER "${PLATFORM} " PLATFORM)
26+
27+ if (MSVC )
28+ set (USING_MSVC 1)
29+ endif ()
30+ if (CMAKE_C_COMPILER_ID MATCHES "GNU" )
31+ set (USING_GCC 1)
32+ endif ()
33+ if (CMAKE_C_COMPILER_ID MATCHES "Clang" )
34+ set (USING_CLANG 1)
35+ endif ()
2236
2337if (MSVC AND NOT DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
2438 set (CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreadedDLL" CACHE STRING "" FORCE)
@@ -27,22 +41,27 @@ endif()
2741# Upstream expects an amalgam target; stub it.
2842add_custom_target (amalgam)
2943
30- add_library (jerryscript-port STATIC port.c)
31- target_include_directories (jerryscript-port PUBLIC
32- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /jerry-core/include >
33- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >)
34-
3544add_subdirectory (jerry-core)
45+ if (JERRY_PORT)
46+ add_subdirectory (jerry-port)
47+ endif ()
3648
3749set_target_properties (jerry-core PROPERTIES POSITION_INDEPENDENT_CODE ON )
3850set_target_properties (jerry-core PROPERTIES
3951 INTERFACE_INCLUDE_DIRECTORIES "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /jerry-core/include>;$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >"
4052)
41- target_link_libraries (jerry-core jerryscript-port)
53+ if (TARGET jerry-port)
54+ target_link_libraries (jerry-core jerry-port)
55+ endif ()
4256
4357add_library (jerryscript ALIAS jerry-core)
4458
45- install (TARGETS jerry-core jerryscript-port
59+ set (_install_targets jerry-core)
60+ if (TARGET jerry-port)
61+ list (APPEND _install_targets jerry-port)
62+ endif ()
63+
64+ install (TARGETS ${_install_targets}
4665 EXPORT jerryscriptTargets
4766 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
4867 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
0 commit comments