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:
Akos Kiss 2017-06-06 09:08:14 +02:00 committed by GitHub
parent 11d5402c35
commit 905cd705ef
12 changed files with 75 additions and 96 deletions

View File

@ -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)

View File

@ -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})

View File

@ -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.
*/

View File

@ -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). */
/**

View File

@ -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.
*/

View File

@ -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). */
/**

View File

@ -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.
*/

View File

@ -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)

View File

@ -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)

View File

@ -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})

View File

@ -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})

View File

@ -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()