mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
CMakeLists maintenance (#1826)
Removed various superfluous declarations, and rewrote some parts to be nicer or more consistent. JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
This commit is contained in:
parent
11d5402c35
commit
905cd705ef
@ -19,10 +19,25 @@ project (Jerry C ASM)
|
||||
set(PLATFORM "${CMAKE_SYSTEM_NAME}")
|
||||
string(TOUPPER "${PLATFORM}" PLATFORM)
|
||||
|
||||
# Remove rdynamic option
|
||||
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS )
|
||||
# Determining compiler
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
|
||||
set(USING_GCC 1)
|
||||
endif()
|
||||
|
||||
# Components
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
set(USING_CLANG 1)
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "TI")
|
||||
set(USING_TI 1)
|
||||
endif()
|
||||
|
||||
# Determining build type
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE "MinSizeRel")
|
||||
endif()
|
||||
|
||||
# Optional components
|
||||
set(JERRY_CMDLINE ON CACHE BOOL "Build jerry command line tool?")
|
||||
set(JERRY_CMDLINE_MINIMAL OFF CACHE BOOL "Build jerry minimal command line tool?")
|
||||
set(JERRY_PORT_DEFAULT ON CACHE BOOL "Build default jerry port implementation?")
|
||||
@ -37,29 +52,26 @@ 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?")
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE "MinSizeRel")
|
||||
endif()
|
||||
|
||||
# Option overrides
|
||||
if(JERRY_CMDLINE OR JERRY_CMDLINE_MINIMAL)
|
||||
set(JERRY_PORT_DEFAULT "ON")
|
||||
set(JERRY_PORT_DEFAULT ON)
|
||||
|
||||
set(JERRY_PORT_DEFAULT_MESSAGE " (FORCED BY CMDLINE)")
|
||||
endif()
|
||||
|
||||
if(JERRY_CMDLINE)
|
||||
set(JERRY_EXT "ON")
|
||||
set(JERRY_EXT ON)
|
||||
|
||||
set(JERRY_EXT_MESSAGE " (FORCED BY CMDLINE)")
|
||||
endif()
|
||||
|
||||
if("${PLATFORM}" STREQUAL "DARWIN")
|
||||
set(JERRY_LIBC "OFF")
|
||||
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 OFF)
|
||||
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)")
|
||||
@ -69,22 +81,9 @@ if("${PLATFORM}" STREQUAL "DARWIN")
|
||||
set(ENABLE_STRIP_MESSAGE " (FORCED BY PLATFORM)")
|
||||
endif()
|
||||
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
|
||||
set(USING_GCC 1)
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
set(USING_CLANG 1)
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "TI")
|
||||
set(USING_TI 1)
|
||||
endif()
|
||||
|
||||
if(USING_TI)
|
||||
set(ENABLE_STATIC_LINK "ON")
|
||||
set(ENABLE_STRIP "OFF")
|
||||
set(ENABLE_STATIC_LINK ON)
|
||||
set(ENABLE_STRIP OFF)
|
||||
|
||||
set(ENABLE_STATIC_LINK_MESSAGE " (FORCED BY COMPILER)")
|
||||
set(ENABLE_STRIP_MESSAGE " (FORCED BY COMPILER)")
|
||||
@ -119,6 +118,9 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/")
|
||||
# Archive targets output Directory
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib/")
|
||||
|
||||
# Remove rdynamic option
|
||||
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS )
|
||||
|
||||
# Compile/link flags
|
||||
# Helper macros
|
||||
macro(jerry_add_flags VAR)
|
||||
|
||||
@ -36,12 +36,23 @@ set(FEATURE_VALGRIND_FREYA OFF CACHE BOOL "Enable Valgrind-Freya support
|
||||
set(FEATURE_VM_EXEC_STOP OFF CACHE BOOL "Enable VM execution stopping?")
|
||||
set(MEM_HEAP_SIZE_KB "512" CACHE STRING "Size of memory heap, in kilobytes")
|
||||
|
||||
# Option overrides
|
||||
if(FEATURE_SYSTEM_ALLOCATOR)
|
||||
set(FEATURE_CPOINTER_32_BIT ON)
|
||||
|
||||
set(FEATURE_CPOINTER_32_BIT_MESSAGE " (FORCED BY SYSTEM ALLOCATOR)")
|
||||
endif()
|
||||
|
||||
if(NOT FEATURE_JS_PARSER)
|
||||
set(FEATURE_SNAPSHOT_EXEC ON)
|
||||
set(FEATURE_PARSER_DUMP OFF)
|
||||
|
||||
set(FEATURE_SNAPSHOT_EXEC_MESSAGE " (FORCED BY DISABLED JS PARSER)")
|
||||
set(FEATURE_PARSER_DUMP_MESSAGE " (FORCED BY DISABLED JS PARSER)")
|
||||
endif()
|
||||
|
||||
# Status messages
|
||||
message(STATUS "FEATURE_CPOINTER_32_BIT " ${FEATURE_CPOINTER_32_BIT})
|
||||
message(STATUS "FEATURE_CPOINTER_32_BIT " ${FEATURE_CPOINTER_32_BIT} ${FEATURE_CPOINTER_32_BIT_MESSAGE})
|
||||
message(STATUS "FEATURE_DEBUGGER " ${FEATURE_DEBUGGER})
|
||||
message(STATUS "FEATURE_DEBUGGER_PORT " ${FEATURE_DEBUGGER_PORT})
|
||||
message(STATUS "FEATURE_ERROR_MESSAGES " ${FEATURE_ERROR_MESSAGES})
|
||||
@ -49,10 +60,10 @@ message(STATUS "FEATURE_EXTERNAL_CONTEXT " ${FEATURE_EXTERNAL_CONTEXT})
|
||||
message(STATUS "FEATURE_JS_PARSER " ${FEATURE_JS_PARSER})
|
||||
message(STATUS "FEATURE_MEM_STATS " ${FEATURE_MEM_STATS})
|
||||
message(STATUS "FEATURE_MEM_STRESS_TEST " ${FEATURE_MEM_STRESS_TEST})
|
||||
message(STATUS "FEATURE_PARSER_DUMP " ${FEATURE_PARSER_DUMP})
|
||||
message(STATUS "FEATURE_PARSER_DUMP " ${FEATURE_PARSER_DUMP} ${FEATURE_PARSER_DUMP_MESSAGE})
|
||||
message(STATUS "FEATURE_PROFILE " ${FEATURE_PROFILE})
|
||||
message(STATUS "FEATURE_REGEXP_DUMP " ${FEATURE_REGEXP_DUMP})
|
||||
message(STATUS "FEATURE_SNAPSHOT_EXEC " ${FEATURE_SNAPSHOT_EXEC})
|
||||
message(STATUS "FEATURE_SNAPSHOT_EXEC " ${FEATURE_SNAPSHOT_EXEC} ${FEATURE_SNAPSHOT_EXEC_MESSAGE})
|
||||
message(STATUS "FEATURE_SNAPSHOT_SAVE " ${FEATURE_SNAPSHOT_SAVE})
|
||||
message(STATUS "FEATURE_SYSTEM_ALLOCATOR " ${FEATURE_SYSTEM_ALLOCATOR})
|
||||
message(STATUS "FEATURE_VALGRIND " ${FEATURE_VALGRIND})
|
||||
@ -96,6 +107,7 @@ file(GLOB SOURCE_CORE_VM vm/*.c)
|
||||
|
||||
set(SOURCE_CORE_FILES
|
||||
${SOURCE_CORE_API}
|
||||
${SOURCE_CORE_DEBUGGER}
|
||||
${SOURCE_CORE_ECMA_BASE}
|
||||
${SOURCE_CORE_ECMA_BUILTINS}
|
||||
${SOURCE_CORE_ECMA_BUILTINS_TYPEDARRAY}
|
||||
@ -108,10 +120,6 @@ set(SOURCE_CORE_FILES
|
||||
${SOURCE_CORE_PARSER_REGEXP}
|
||||
${SOURCE_CORE_VM})
|
||||
|
||||
if(FEATURE_DEBUGGER)
|
||||
set(SOURCE_CORE_FILES ${SOURCE_CORE_FILES} ${SOURCE_CORE_DEBUGGER})
|
||||
endif()
|
||||
|
||||
# All-in-one build
|
||||
if(ENABLE_ALL_IN_ONE)
|
||||
set(ALL_IN_FILE "${CMAKE_BINARY_DIR}/jerry-all-in.c")
|
||||
@ -122,13 +130,7 @@ if(ENABLE_ALL_IN_ONE)
|
||||
file(APPEND ${ALL_IN_FILE} "#include \"${FILE}\"\n")
|
||||
endforeach()
|
||||
|
||||
foreach(FILE ${SOURCE_PORT_FILES})
|
||||
file(APPEND ${ALL_IN_FILE} "#include \"${FILE}\"\n")
|
||||
endforeach()
|
||||
|
||||
set(SOURCE_CORE ${ALL_IN_FILE})
|
||||
else()
|
||||
set(SOURCE_CORE ${SOURCE_CORE_FILES} ${SOURCE_PORT_FILES})
|
||||
set(SOURCE_CORE_FILES ${ALL_IN_FILE})
|
||||
endif()
|
||||
|
||||
# Third-party
|
||||
@ -166,15 +168,6 @@ if(FEATURE_JS_PARSER)
|
||||
set(DEFINES_JERRY ${DEFINES_JERRY} JERRY_JS_PARSER=1)
|
||||
else()
|
||||
set(DEFINES_JERRY ${DEFINES_JERRY} JERRY_JS_PARSER=0)
|
||||
|
||||
if(NOT FEATURE_SNAPSHOT_EXEC MATCHES ON)
|
||||
set(FEATURE_SNAPSHOT_EXEC ON)
|
||||
message(STATUS "JS-Parser has been disabled, snapshot is now on")
|
||||
endif()
|
||||
if(FEATURE_PARSER_DUMP)
|
||||
set(FEATURE_PARSER_DUMP OFF)
|
||||
message(STATUS "Parser byte-code dumps has been disabled")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Memory statistics
|
||||
@ -184,9 +177,11 @@ endif()
|
||||
|
||||
# Enable debugger
|
||||
if(FEATURE_DEBUGGER)
|
||||
set(DEFINES_JERRY ${DEFINES_JERRY} JERRY_DEBUGGER)
|
||||
if(JERRY_LIBC)
|
||||
message(FATAL_ERROR "This configuration is not supported. Please build against your system libc to enable the JerryScript debugger.")
|
||||
endif()
|
||||
|
||||
# Debugger port
|
||||
set(DEFINES_JERRY ${DEFINES_JERRY} JERRY_DEBUGGER)
|
||||
set(DEFINES_JERRY ${DEFINES_JERRY} JERRY_DEBUGGER_PORT=${FEATURE_DEBUGGER_PORT})
|
||||
endif()
|
||||
|
||||
@ -200,21 +195,18 @@ if(FEATURE_PARSER_DUMP)
|
||||
set(DEFINES_JERRY ${DEFINES_JERRY} PARSER_DUMP_BYTE_CODE)
|
||||
endif()
|
||||
|
||||
# Profile
|
||||
if (NOT IS_ABSOLUTE ${FEATURE_PROFILE})
|
||||
set(FEATURE_PROFILE "${CMAKE_CURRENT_SOURCE_DIR}/profiles/${FEATURE_PROFILE}.profile")
|
||||
endif()
|
||||
|
||||
if(EXISTS ${FEATURE_PROFILE})
|
||||
FILE(READ "${FEATURE_PROFILE}" PROFILE_SETTINGS)
|
||||
STRING(REGEX REPLACE "^#.*$" "" PROFILE_SETTINGS "${PROFILE_SETTINGS}")
|
||||
STRING(REGEX REPLACE "[\r|\n]" ";" PROFILE_SETTINGS "${PROFILE_SETTINGS}")
|
||||
file(READ "${FEATURE_PROFILE}" PROFILE_SETTINGS)
|
||||
string(REGEX REPLACE "^#.*$" "" PROFILE_SETTINGS "${PROFILE_SETTINGS}")
|
||||
string(REGEX REPLACE "[\r|\n]" ";" PROFILE_SETTINGS "${PROFILE_SETTINGS}")
|
||||
set(DEFINES_JERRY ${DEFINES_JERRY} ${PROFILE_SETTINGS})
|
||||
else()
|
||||
MESSAGE(FATAL_ERROR "Profile file: '${FEATURE_PROFILE}' doesn't exist!")
|
||||
endif()
|
||||
|
||||
if(JERRY_LIBC AND FEATURE_DEBUGGER)
|
||||
MESSAGE(FATAL_ERROR "This configuration is not supported. Please build against your system libc to enable the JerryScript debugger.")
|
||||
message(FATAL_ERROR "Profile file: '${FEATURE_PROFILE}' doesn't exist!")
|
||||
endif()
|
||||
|
||||
if(JERRY_LIBC AND FEATURE_SYSTEM_ALLOCATOR)
|
||||
@ -262,25 +254,19 @@ 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})
|
||||
add_library(${JERRY_CORE_NAME} STATIC ${SOURCE_CORE_FILES})
|
||||
|
||||
target_compile_definitions(${JERRY_CORE_NAME} PUBLIC ${DEFINES_JERRY})
|
||||
target_include_directories(${JERRY_CORE_NAME} PUBLIC ${INCLUDE_CORE})
|
||||
|
||||
set(JERRY_LIBS )
|
||||
|
||||
if(JERRY_LIBM)
|
||||
set(JERRY_LIBS ${JERRY_LIBS} jerry-libm)
|
||||
target_include_directories(${JERRY_CORE_NAME} SYSTEM PRIVATE "${CMAKE_SOURCE_DIR}/jerry-libm/include")
|
||||
target_link_libraries(${JERRY_CORE_NAME} jerry-libm)
|
||||
endif()
|
||||
|
||||
if(JERRY_LIBC)
|
||||
set(JERRY_LIBS ${JERRY_LIBS} jerry-libc)
|
||||
target_include_directories(${JERRY_CORE_NAME} SYSTEM PRIVATE "${CMAKE_SOURCE_DIR}/jerry-libc/include")
|
||||
target_link_libraries(${JERRY_CORE_NAME} jerry-libc)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${JERRY_CORE_NAME} ${JERRY_LIBS})
|
||||
|
||||
separate_arguments(EXTERNAL_LINK_LIBS)
|
||||
foreach(EXT_LIB ${EXTERNAL_LINK_LIBS})
|
||||
target_link_libraries(${JERRY_CORE_NAME} ${EXT_LIB})
|
||||
|
||||
@ -13,6 +13,10 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include "jcontext.h"
|
||||
#include "jerry-debugger.h"
|
||||
#include "jerryscript-port.h"
|
||||
|
||||
#ifdef JERRY_DEBUGGER
|
||||
|
||||
#include <arpa/inet.h>
|
||||
@ -20,10 +24,6 @@
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "jcontext.h"
|
||||
#include "jerry-debugger.h"
|
||||
#include "jerryscript-port.h"
|
||||
|
||||
/**
|
||||
* Debugger socket communication port.
|
||||
*/
|
||||
|
||||
@ -16,10 +16,10 @@
|
||||
#ifndef JERRY_DEBUGGER_WS_H
|
||||
#define JERRY_DEBUGGER_WS_H
|
||||
|
||||
#ifdef JERRY_DEBUGGER
|
||||
|
||||
#include "ecma-globals.h"
|
||||
|
||||
#ifdef JERRY_DEBUGGER
|
||||
|
||||
/* JerryScript debugger protocol is a simplified version of RFC-6455 (WebSockets). */
|
||||
|
||||
/**
|
||||
|
||||
@ -13,8 +13,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#ifdef JERRY_DEBUGGER
|
||||
|
||||
#include "byte-code.h"
|
||||
#include "ecma-builtin-helpers.h"
|
||||
#include "ecma-conversion.h"
|
||||
@ -25,6 +23,8 @@
|
||||
#include "jerryscript-port.h"
|
||||
#include "lit-char-helpers.h"
|
||||
|
||||
#ifdef JERRY_DEBUGGER
|
||||
|
||||
/**
|
||||
* Type cast the debugger send buffer into a specific type.
|
||||
*/
|
||||
|
||||
@ -16,11 +16,11 @@
|
||||
#ifndef JERRY_DEBUGGER_H
|
||||
#define JERRY_DEBUGGER_H
|
||||
|
||||
#ifdef JERRY_DEBUGGER
|
||||
|
||||
#include "jerry-debugger-ws.h"
|
||||
#include "ecma-globals.h"
|
||||
|
||||
#ifdef JERRY_DEBUGGER
|
||||
|
||||
/* JerryScript debugger protocol is a simplified version of RFC-6455 (WebSockets). */
|
||||
|
||||
/**
|
||||
|
||||
@ -40,10 +40,10 @@
|
||||
* http://www.itl.nist.gov/fipspubs/fip180-1.htm
|
||||
*/
|
||||
|
||||
#ifdef JERRY_DEBUGGER
|
||||
|
||||
#include "jerry-debugger.h"
|
||||
|
||||
#ifdef JERRY_DEBUGGER
|
||||
|
||||
/**
|
||||
* SHA-1 context structure.
|
||||
*/
|
||||
|
||||
@ -34,8 +34,7 @@ add_library(${JERRY_LIBM_NAME} STATIC ${SOURCE_LIBM})
|
||||
set_property(TARGET ${JERRY_LIBM_NAME}
|
||||
PROPERTY COMPILE_FLAGS "${COMPILE_FLAGS_LIBM}")
|
||||
|
||||
target_include_directories(${JERRY_LIBM_NAME} PRIVATE ${INCLUDE_LIBM})
|
||||
target_include_directories(${JERRY_LIBM_NAME} INTERFACE ${INCLUDE_LIBM})
|
||||
target_include_directories(${JERRY_LIBM_NAME} PUBLIC ${INCLUDE_LIBM})
|
||||
|
||||
install(TARGETS ${JERRY_LIBM_NAME} DESTINATION lib)
|
||||
install(DIRECTORY ${INCLUDE_LIBM}/ DESTINATION include/jerry-libm)
|
||||
|
||||
@ -48,7 +48,6 @@ macro(jerry_create_executable JERRY_NAME)
|
||||
set_property(TARGET ${JERRY_NAME}
|
||||
PROPERTY LINK_FLAGS "${LINKER_FLAGS_COMMON}")
|
||||
target_compile_definitions(${JERRY_NAME} PRIVATE ${DEFINES_JERRY})
|
||||
link_directories(${CMAKE_BINARY_DIR})
|
||||
|
||||
target_link_libraries(${JERRY_NAME} jerry-core)
|
||||
|
||||
|
||||
@ -37,8 +37,6 @@ foreach(SOURCE_UNIT_TEST_MAIN ${SOURCE_UNIT_TEST_MAIN_MODULES})
|
||||
set_property(TARGET ${TARGET_NAME}
|
||||
PROPERTY LINK_FLAGS "${LINKER_FLAGS_COMMON}")
|
||||
|
||||
link_directories(${CMAKE_BINARY_DIR})
|
||||
|
||||
target_link_libraries(${TARGET_NAME} jerry-core jerry-port-default-minimal)
|
||||
|
||||
add_dependencies(unittests-core ${TARGET_NAME})
|
||||
|
||||
@ -29,8 +29,6 @@ foreach(SOURCE_UNIT_TEST_EXT ${SOURCE_UNIT_TEST_EXT_MODULES})
|
||||
set_property(TARGET ${TARGET_NAME}
|
||||
PROPERTY LINK_FLAGS "${LINKER_FLAGS_COMMON}")
|
||||
|
||||
link_directories(${CMAKE_BINARY_DIR})
|
||||
|
||||
target_link_libraries(${TARGET_NAME} jerry-ext jerry-core jerry-port-default-minimal)
|
||||
|
||||
add_dependencies(unittests-ext ${TARGET_NAME})
|
||||
|
||||
@ -29,13 +29,10 @@ foreach(SOURCE_UNIT_TEST_MAIN ${SOURCE_UNIT_TEST_MAIN_MODULES})
|
||||
set_property(TARGET ${TARGET_NAME}
|
||||
PROPERTY LINK_FLAGS "${LINKER_FLAGS_COMMON}")
|
||||
|
||||
link_directories(${CMAKE_BINARY_DIR})
|
||||
|
||||
set(TARGET_LIBS jerry-libm)
|
||||
target_link_libraries(${TARGET_NAME} jerry-libm)
|
||||
if(JERRY_LIBC)
|
||||
set(TARGET_LIBS ${TARGET_LIBS} jerry-libc)
|
||||
target_link_libraries(${TARGET_NAME} jerry-libc)
|
||||
endif()
|
||||
target_link_libraries(${TARGET_NAME} ${TARGET_LIBS})
|
||||
|
||||
add_dependencies(unittests-libm ${TARGET_NAME})
|
||||
endforeach()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user