mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
Buildable as shared libraries (#2351)
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu JerryScript-DCO-1.0-Signed-off-by: wille-io mike@wille.io
This commit is contained in:
parent
e1af56586c
commit
8b8bced67f
@ -37,7 +37,7 @@ matrix:
|
||||
|
||||
- env:
|
||||
- JOBNAME="Linux/ARM Build & Correctness Tests"
|
||||
- OPTS="--quiet --jerry-tests --jerry-test-suite --toolchain=cmake/toolchain_linux_armv7l.cmake"
|
||||
- OPTS="--quiet --jerry-tests --jerry-test-suite --toolchain=cmake/toolchain_linux_armv7l.cmake --buildoptions=--linker-flag=-static"
|
||||
- RUNTIME=qemu-arm-static
|
||||
- TIMEOUT=300
|
||||
addons:
|
||||
@ -76,7 +76,7 @@ matrix:
|
||||
|
||||
- env:
|
||||
- JOBNAME="ASAN Tests"
|
||||
- OPTS="--quiet --jerry-tests --jerry-test-suite --skip-list=parser-oom.js --buildoptions=--compile-flag=-fsanitize=address,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--compile-flag=-O2,--debug,--jerry-libc=off,--static-link=off,--system-allocator=on,--linker-flag=-fuse-ld=gold"
|
||||
- OPTS="--quiet --jerry-tests --jerry-test-suite --skip-list=parser-oom.js --buildoptions=--compile-flag=-fsanitize=address,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--compile-flag=-O2,--debug,--jerry-libc=off,--system-allocator=on,--linker-flag=-fuse-ld=gold"
|
||||
- ASAN_OPTIONS=detect_stack_use_after_return=1:check_initialization_order=true:strict_init_order=true
|
||||
- TIMEOUT=600
|
||||
compiler: gcc-5
|
||||
@ -87,7 +87,7 @@ matrix:
|
||||
|
||||
- env:
|
||||
- JOBNAME="UBSAN Tests"
|
||||
- OPTS="--quiet --jerry-tests --jerry-test-suite --skip-list=parser-oom.js --buildoptions=--compile-flag=-fsanitize=undefined,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--debug,--jerry-libc=off,--static-link=off,--system-allocator=on,--linker-flag=-fuse-ld=gold"
|
||||
- OPTS="--quiet --jerry-tests --jerry-test-suite --skip-list=parser-oom.js --buildoptions=--compile-flag=-fsanitize=undefined,--compile-flag=-m32,--compile-flag=-fno-omit-frame-pointer,--compile-flag=-fno-common,--debug,--jerry-libc=off,--system-allocator=on,--linker-flag=-fuse-ld=gold"
|
||||
- UBSAN_OPTIONS=print_stacktrace=1
|
||||
- TIMEOUT=600
|
||||
compiler: gcc-5
|
||||
|
||||
@ -53,9 +53,9 @@ set(UNITTESTS OFF CACHE BOOL "Build unit tests?")
|
||||
set(DOCTESTS OFF CACHE BOOL "Build doc tests?")
|
||||
|
||||
# Optional build settings
|
||||
set(BUILD_SHARED_LIBS OFF CACHE BOOL "Build shared libraries?")
|
||||
set(ENABLE_ALL_IN_ONE OFF CACHE BOOL "Enable all-in-one build?")
|
||||
set(ENABLE_LTO ON CACHE BOOL "Enable LTO build?")
|
||||
set(ENABLE_STATIC_LINK ON CACHE BOOL "Enable static linking?")
|
||||
set(ENABLE_STRIP ON CACHE BOOL "Enable stripping all symbols from release binary?")
|
||||
|
||||
# Optional features
|
||||
@ -79,22 +79,18 @@ if("${PLATFORM}" STREQUAL "DARWIN")
|
||||
set(JERRY_LIBM OFF)
|
||||
set(ENABLE_ALL_IN_ONE ON)
|
||||
set(ENABLE_LTO OFF)
|
||||
set(ENABLE_STATIC_LINK OFF)
|
||||
set(ENABLE_STRIP OFF)
|
||||
|
||||
set(JERRY_LIBC_MESSAGE " (FORCED BY PLATFORM)")
|
||||
set(JERRY_LIBM_MESSAGE " (FORCED BY PLATFORM)")
|
||||
set(ENABLE_ALL_IN_ONE_MESSAGE " (FORCED BY PLATFORM)")
|
||||
set(ENABLE_LTO_MESSAGE " (FORCED BY PLATFORM)")
|
||||
set(ENABLE_STATIC_LINK_MESSAGE " (FORCED BY PLATFORM)")
|
||||
set(ENABLE_STRIP_MESSAGE " (FORCED BY PLATFORM)")
|
||||
endif()
|
||||
|
||||
if(USING_TI)
|
||||
set(ENABLE_STATIC_LINK ON)
|
||||
set(ENABLE_STRIP OFF)
|
||||
|
||||
set(ENABLE_STATIC_LINK_MESSAGE " (FORCED BY COMPILER)")
|
||||
set(ENABLE_STRIP_MESSAGE " (FORCED BY COMPILER)")
|
||||
endif()
|
||||
|
||||
@ -115,9 +111,9 @@ message(STATUS "CMAKE_BUILD_TYPE " ${CMAKE_BUILD_TYPE})
|
||||
message(STATUS "CMAKE_C_COMPILER_ID " ${CMAKE_C_COMPILER_ID})
|
||||
message(STATUS "CMAKE_SYSTEM_NAME " ${CMAKE_SYSTEM_NAME})
|
||||
message(STATUS "CMAKE_SYSTEM_PROCESSOR " ${CMAKE_SYSTEM_PROCESSOR})
|
||||
message(STATUS "BUILD_SHARED_LIBS " ${BUILD_SHARED_LIBS})
|
||||
message(STATUS "ENABLE_ALL_IN_ONE " ${ENABLE_ALL_IN_ONE} ${ENABLE_ALL_IN_ONE_MESSAGE})
|
||||
message(STATUS "ENABLE_LTO " ${ENABLE_LTO} ${ENABLE_LTO_MESSAGE})
|
||||
message(STATUS "ENABLE_STATIC_LINK " ${ENABLE_STATIC_LINK} ${ENABLE_STATIC_LINK_MESSAGE})
|
||||
message(STATUS "ENABLE_STRIP " ${ENABLE_STRIP} ${ENABLE_STRIP_MESSAGE})
|
||||
message(STATUS "JERRY_CMDLINE " ${JERRY_CMDLINE})
|
||||
message(STATUS "JERRY_CMDLINE_TEST " ${JERRY_CMDLINE_TEST})
|
||||
@ -168,13 +164,6 @@ endmacro()
|
||||
jerry_add_compile_flags(${FLAGS_COMMON_ARCH})
|
||||
jerry_add_flags(CMAKE_EXE_LINKER_FLAGS ${FLAGS_COMMON_ARCH})
|
||||
|
||||
# Enable static build
|
||||
if(ENABLE_STATIC_LINK)
|
||||
if(USING_GCC OR USING_CLANG)
|
||||
jerry_add_link_flags("-static")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# LTO
|
||||
if(ENABLE_LTO)
|
||||
if(USING_GCC OR USING_CLANG)
|
||||
@ -197,6 +186,7 @@ if("${PLATFORM}" STREQUAL "DARWIN")
|
||||
jerry_add_link_flags(-lSystem)
|
||||
set(CMAKE_C_ARCHIVE_CREATE "<CMAKE_AR> Sqc <TARGET> <LINK_FLAGS> <OBJECTS>")
|
||||
set(CMAKE_C_ARCHIVE_FINISH "<CMAKE_RANLIB> -no_warning_for_no_symbols -c <TARGET>")
|
||||
set(CMAKE_SHARED_LINKER_FLAGS "-undefined dynamic_lookup")
|
||||
elseif(USING_GCC OR USING_CLANG)
|
||||
jerry_add_link_flags(-Wl,-z,noexecstack)
|
||||
endif()
|
||||
|
||||
@ -269,7 +269,7 @@ endif()
|
||||
math(EXPR MEM_HEAP_AREA_SIZE "${MEM_HEAP_SIZE_KB} * 1024")
|
||||
set(DEFINES_JERRY ${DEFINES_JERRY} CONFIG_MEM_HEAP_AREA_SIZE=${MEM_HEAP_AREA_SIZE})
|
||||
|
||||
add_library(${JERRY_CORE_NAME} STATIC ${SOURCE_CORE_FILES})
|
||||
add_library(${JERRY_CORE_NAME} ${SOURCE_CORE_FILES})
|
||||
|
||||
target_compile_definitions(${JERRY_CORE_NAME} PUBLIC ${DEFINES_JERRY})
|
||||
target_include_directories(${JERRY_CORE_NAME} PUBLIC ${INCLUDE_CORE})
|
||||
|
||||
@ -33,7 +33,7 @@ set(SOURCE_EXT
|
||||
${SOURCE_EXT_MODULE}
|
||||
${SOURCE_EXT_HANDLER})
|
||||
|
||||
add_library(${JERRY_EXT_NAME} STATIC ${SOURCE_EXT})
|
||||
add_library(${JERRY_EXT_NAME} ${SOURCE_EXT})
|
||||
|
||||
target_include_directories(${JERRY_EXT_NAME} PUBLIC ${INCLUDE_EXT})
|
||||
target_compile_definitions(${JERRY_EXT_NAME} PUBLIC ${DEFINES_EXT})
|
||||
|
||||
@ -34,7 +34,7 @@ if(DEFINED PLATFORM AND ((PLATFORM STREQUAL "LINUX") OR (PLATFORM STREQUAL "DARW
|
||||
file(GLOB TARGET_SPECIFIC_LIBC_SOURCE target/posix/*.c target/posix/*.S)
|
||||
endif()
|
||||
|
||||
add_library(${JERRY_LIBC_NAME} STATIC ${SOURCE_LIBC} ${TARGET_SPECIFIC_LIBC_SOURCE})
|
||||
add_library(${JERRY_LIBC_NAME} ${SOURCE_LIBC} ${TARGET_SPECIFIC_LIBC_SOURCE})
|
||||
|
||||
target_compile_definitions(${JERRY_LIBC_NAME} PRIVATE ${DEFINES_LIBC})
|
||||
target_include_directories(${JERRY_LIBC_NAME} PRIVATE ${INCLUDE_LIBC})
|
||||
|
||||
@ -30,7 +30,7 @@ set(INCLUDE_LIBM "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||||
# Source directories
|
||||
file(GLOB SOURCE_LIBM *.c)
|
||||
|
||||
add_library(${JERRY_LIBM_NAME} STATIC ${SOURCE_LIBM})
|
||||
add_library(${JERRY_LIBM_NAME} ${SOURCE_LIBM})
|
||||
set_property(TARGET ${JERRY_LIBM_NAME}
|
||||
PROPERTY COMPILE_FLAGS "${COMPILE_FLAGS_LIBM}")
|
||||
|
||||
|
||||
@ -30,7 +30,7 @@ set(DEFINES_PORT_DEFAULT _BSD_SOURCE _DEFAULT_SOURCE)
|
||||
# - default
|
||||
# - default-minimal (no extra termination and log APIs)
|
||||
foreach(JERRY_PORT_LIBRARY_NAME ${JERRY_PORT_DEFAULT_NAME} ${JERRY_PORT_DEFAULT_NAME}-minimal)
|
||||
add_library(${JERRY_PORT_LIBRARY_NAME} STATIC ${SOURCE_PORT_DEFAULT})
|
||||
add_library(${JERRY_PORT_LIBRARY_NAME} ${SOURCE_PORT_DEFAULT})
|
||||
target_include_directories(${JERRY_PORT_LIBRARY_NAME} PUBLIC ${INCLUDE_PORT_DEFAULT})
|
||||
target_include_directories(${JERRY_PORT_LIBRARY_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/jerry-core/include)
|
||||
target_include_directories(${JERRY_PORT_LIBRARY_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/jerry-ext/include)
|
||||
|
||||
@ -66,7 +66,7 @@ add_custom_target(all-doc-files DEPENDS ${DOCTEST_COMPILE} ${DOCTEST_LINK} ${DOC
|
||||
# Process compile-only doctests: add them to a dummy library
|
||||
# (named libcompile-doc-tests.a) to trigger compilation.
|
||||
if(NOT ("${DOCTEST_COMPILE}" STREQUAL ""))
|
||||
add_library(compile-doc-tests STATIC ${DOCTEST_COMPILE})
|
||||
add_library(compile-doc-tests ${DOCTEST_COMPILE})
|
||||
add_dependencies(compile-doc-tests all-doc-files)
|
||||
target_link_libraries(compile-doc-tests jerry-ext jerry-core jerry-port-default-minimal)
|
||||
set_property(TARGET compile-doc-tests APPEND_STRING PROPERTY COMPILE_FLAGS "${COMPILE_FLAGS_DOCTEST}")
|
||||
|
||||
@ -100,14 +100,14 @@ def get_arguments():
|
||||
help='size of memory heap, in kilobytes (default: %(default)s)')
|
||||
parser.add_argument('--profile', metavar='FILE', action='store', default=DEFAULT_PROFILE,
|
||||
help='specify profile file (default: %(default)s)')
|
||||
parser.add_argument('--shared-libs', metavar='X', choices=['ON', 'OFF'], default='OFF', type=str.upper,
|
||||
help='enable building of shared libraries (%(choices)s; default: %(default)s)')
|
||||
parser.add_argument('--snapshot-exec', metavar='X', choices=['ON', 'OFF'], default='OFF', type=str.upper,
|
||||
help='enable executing snapshot files (%(choices)s; default: %(default)s)')
|
||||
parser.add_argument('--snapshot-save', metavar='X', choices=['ON', 'OFF'], default='OFF', type=str.upper,
|
||||
help='enable saving snapshot files (%(choices)s; default: %(default)s)')
|
||||
parser.add_argument('--system-allocator', metavar='X', choices=['ON', 'OFF'], default='OFF', type=str.upper,
|
||||
help='enable system allocator (%(choices)s; default: %(default)s)')
|
||||
parser.add_argument('--static-link', metavar='X', choices=['ON', 'OFF'], default='ON', type=str.upper,
|
||||
help='enable static linking of binaries (%(choices)s; default: %(default)s)')
|
||||
parser.add_argument('--strip', metavar='X', choices=['ON', 'OFF'], default='ON', type=str.upper,
|
||||
help='strip release binaries (%(choices)s; default: %(default)s)')
|
||||
parser.add_argument('--toolchain', metavar='FILE', action='store', default=default_toolchain(),
|
||||
@ -174,7 +174,7 @@ def generate_build_options(arguments):
|
||||
build_options.append('-DFEATURE_SNAPSHOT_EXEC=%s' % arguments.snapshot_exec)
|
||||
build_options.append('-DFEATURE_SNAPSHOT_SAVE=%s' % arguments.snapshot_save)
|
||||
build_options.append('-DFEATURE_SYSTEM_ALLOCATOR=%s' % arguments.system_allocator)
|
||||
build_options.append('-DENABLE_STATIC_LINK=%s' % arguments.static_link)
|
||||
build_options.append('-DBUILD_SHARED_LIBS=%s' % arguments.shared_libs)
|
||||
build_options.append('-DENABLE_STRIP=%s' % arguments.strip)
|
||||
build_options.append('-DFEATURE_VM_EXEC_STOP=%s' % arguments.vm_exec_stop)
|
||||
|
||||
|
||||
@ -136,6 +136,8 @@ JERRY_BUILDOPTIONS = [
|
||||
['--jerry-libc=off', '--compile-flag=-m32', '--cpointer-32bit=on', '--system-allocator=on']),
|
||||
Options('buildoption_test-external_context',
|
||||
['--jerry-libc=off', '--external-context=on']),
|
||||
Options('buildoption_test-shared_libs',
|
||||
['--jerry-libc=off', '--shared-libs=on']),
|
||||
Options('buildoption_test-cmdline_test',
|
||||
['--jerry-cmdline-test=on']),
|
||||
Options('buildoption_test-cmdline_snapshot',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user