Distinguish between public and private headers in jerry-core (#2472)
The patch also ensures that all components access only the public headers of other components (except for unit tests, which are allowed to use private headers, too). JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
This commit is contained in:
+5
-5
@@ -246,16 +246,16 @@ endif()
|
|||||||
# Jerry's core
|
# Jerry's core
|
||||||
add_subdirectory(jerry-core)
|
add_subdirectory(jerry-core)
|
||||||
|
|
||||||
# Jerry's default port implementation
|
|
||||||
if(JERRY_PORT_DEFAULT)
|
|
||||||
add_subdirectory(jerry-port/default)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Jerry's extension tools
|
# Jerry's extension tools
|
||||||
if(JERRY_EXT)
|
if(JERRY_EXT)
|
||||||
add_subdirectory(jerry-ext)
|
add_subdirectory(jerry-ext)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Jerry's default port implementation
|
||||||
|
if(JERRY_PORT_DEFAULT)
|
||||||
|
add_subdirectory(jerry-port/default)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Jerry command line tool
|
# Jerry command line tool
|
||||||
if(JERRY_CMDLINE OR JERRY_CMDLINE_TEST OR JERRY_CMDLINE_SNAPSHOT)
|
if(JERRY_CMDLINE OR JERRY_CMDLINE_TEST OR JERRY_CMDLINE_SNAPSHOT)
|
||||||
add_subdirectory(jerry-main)
|
add_subdirectory(jerry-main)
|
||||||
|
|||||||
@@ -96,7 +96,8 @@ message(STATUS "FEATURE_VM_EXEC_STOP " ${FEATURE_VM_EXEC_STOP})
|
|||||||
message(STATUS "MEM_HEAP_SIZE_KB " ${MEM_HEAP_SIZE_KB})
|
message(STATUS "MEM_HEAP_SIZE_KB " ${MEM_HEAP_SIZE_KB})
|
||||||
|
|
||||||
# Include directories
|
# Include directories
|
||||||
set(INCLUDE_CORE
|
set(INCLUDE_CORE_PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||||||
|
set(INCLUDE_CORE_PRIVATE
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/api"
|
"${CMAKE_CURRENT_SOURCE_DIR}/api"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/debugger"
|
"${CMAKE_CURRENT_SOURCE_DIR}/debugger"
|
||||||
@@ -104,7 +105,6 @@ set(INCLUDE_CORE
|
|||||||
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/builtin-objects"
|
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/builtin-objects"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/builtin-objects/typedarray"
|
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/builtin-objects/typedarray"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/operations"
|
"${CMAKE_CURRENT_SOURCE_DIR}/ecma/operations"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/include"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/jcontext"
|
"${CMAKE_CURRENT_SOURCE_DIR}/jcontext"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/jmem"
|
"${CMAKE_CURRENT_SOURCE_DIR}/jmem"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/jrt"
|
"${CMAKE_CURRENT_SOURCE_DIR}/jrt"
|
||||||
@@ -113,6 +113,9 @@ set(INCLUDE_CORE
|
|||||||
"${CMAKE_CURRENT_SOURCE_DIR}/parser/regexp"
|
"${CMAKE_CURRENT_SOURCE_DIR}/parser/regexp"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/vm")
|
"${CMAKE_CURRENT_SOURCE_DIR}/vm")
|
||||||
|
|
||||||
|
set(INCLUDE_CORE_PUBLIC ${INCLUDE_CORE_PUBLIC} PARENT_SCOPE) # for jerry-port
|
||||||
|
set(INCLUDE_CORE_PRIVATE ${INCLUDE_CORE_PRIVATE} PARENT_SCOPE) # for tests/unit-core
|
||||||
|
|
||||||
# Sources
|
# Sources
|
||||||
# Jerry core
|
# Jerry core
|
||||||
file(GLOB SOURCE_CORE_API api/*.c)
|
file(GLOB SOURCE_CORE_API api/*.c)
|
||||||
@@ -270,7 +273,7 @@ endif()
|
|||||||
# Valgrind
|
# Valgrind
|
||||||
if(FEATURE_VALGRIND)
|
if(FEATURE_VALGRIND)
|
||||||
set(DEFINES_JERRY ${DEFINES_JERRY} JERRY_VALGRIND)
|
set(DEFINES_JERRY ${DEFINES_JERRY} JERRY_VALGRIND)
|
||||||
set(INCLUDE_CORE ${INCLUDE_CORE} ${INCLUDE_THIRD_PARTY_VALGRIND})
|
set(INCLUDE_CORE_PRIVATE ${INCLUDE_CORE_PRIVATE} ${INCLUDE_THIRD_PARTY_VALGRIND})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Enable VM execution stopping
|
# Enable VM execution stopping
|
||||||
@@ -285,7 +288,8 @@ set(DEFINES_JERRY ${DEFINES_JERRY} CONFIG_MEM_HEAP_AREA_SIZE=${MEM_HEAP_AREA_SIZ
|
|||||||
add_library(${JERRY_CORE_NAME} ${SOURCE_CORE_FILES})
|
add_library(${JERRY_CORE_NAME} ${SOURCE_CORE_FILES})
|
||||||
|
|
||||||
target_compile_definitions(${JERRY_CORE_NAME} PUBLIC ${DEFINES_JERRY})
|
target_compile_definitions(${JERRY_CORE_NAME} PUBLIC ${DEFINES_JERRY})
|
||||||
target_include_directories(${JERRY_CORE_NAME} PUBLIC ${INCLUDE_CORE})
|
target_include_directories(${JERRY_CORE_NAME} PUBLIC ${INCLUDE_CORE_PUBLIC})
|
||||||
|
target_include_directories(${JERRY_CORE_NAME} PRIVATE ${INCLUDE_CORE_PRIVATE})
|
||||||
|
|
||||||
if(JERRY_LIBM)
|
if(JERRY_LIBM)
|
||||||
target_link_libraries(${JERRY_CORE_NAME} jerry-libm)
|
target_link_libraries(${JERRY_CORE_NAME} jerry-libm)
|
||||||
@@ -301,4 +305,4 @@ foreach(EXT_LIB ${EXTERNAL_LINK_LIBS})
|
|||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
install(TARGETS ${JERRY_CORE_NAME} DESTINATION lib)
|
install(TARGETS ${JERRY_CORE_NAME} DESTINATION lib)
|
||||||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION include)
|
install(DIRECTORY ${INCLUDE_CORE_PUBLIC}/ DESTINATION include)
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ project (${JERRY_EXT_NAME} C)
|
|||||||
set(INCLUDE_EXT_PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
set(INCLUDE_EXT_PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||||||
set(INCLUDE_EXT_PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/common")
|
set(INCLUDE_EXT_PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/common")
|
||||||
|
|
||||||
|
set(INCLUDE_EXT_PUBLIC ${INCLUDE_EXT_PUBLIC} PARENT_SCOPE) # for jerry-port
|
||||||
|
|
||||||
if(FEATURE_INIT_FINI)
|
if(FEATURE_INIT_FINI)
|
||||||
set(DEFINES_EXT ${DEFINES_EXT} ENABLE_INIT_FINI)
|
set(DEFINES_EXT ${DEFINES_EXT} ENABLE_INIT_FINI)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -42,8 +42,8 @@ endif()
|
|||||||
foreach(JERRY_PORT_LIBRARY_NAME ${JERRY_PORT_DEFAULT_NAME} ${JERRY_PORT_DEFAULT_NAME}-minimal)
|
foreach(JERRY_PORT_LIBRARY_NAME ${JERRY_PORT_DEFAULT_NAME} ${JERRY_PORT_DEFAULT_NAME}-minimal)
|
||||||
add_library(${JERRY_PORT_LIBRARY_NAME} ${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} 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 ${INCLUDE_CORE_PUBLIC})
|
||||||
target_include_directories(${JERRY_PORT_LIBRARY_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/jerry-ext/include)
|
target_include_directories(${JERRY_PORT_LIBRARY_NAME} PRIVATE ${INCLUDE_EXT_PUBLIC})
|
||||||
target_compile_definitions(${JERRY_PORT_LIBRARY_NAME} PRIVATE ${DEFINES_PORT_DEFAULT})
|
target_compile_definitions(${JERRY_PORT_LIBRARY_NAME} PRIVATE ${DEFINES_PORT_DEFAULT})
|
||||||
target_link_libraries(${JERRY_PORT_LIBRARY_NAME} jerry-core) # FIXME: remove this dependency as soon as possible
|
target_link_libraries(${JERRY_PORT_LIBRARY_NAME} jerry-core) # FIXME: remove this dependency as soon as possible
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|||||||
@@ -34,9 +34,9 @@ foreach(SOURCE_UNIT_TEST_MAIN ${SOURCE_UNIT_TEST_MAIN_MODULES})
|
|||||||
set(TARGET_NAME unit-${TARGET_NAME})
|
set(TARGET_NAME unit-${TARGET_NAME})
|
||||||
|
|
||||||
add_executable(${TARGET_NAME} ${SOURCE_UNIT_TEST_MAIN})
|
add_executable(${TARGET_NAME} ${SOURCE_UNIT_TEST_MAIN})
|
||||||
|
target_include_directories(${TARGET_NAME} PRIVATE ${INCLUDE_CORE_PRIVATE})
|
||||||
set_property(TARGET ${TARGET_NAME} PROPERTY LINK_FLAGS "${LINKER_FLAGS_COMMON}")
|
set_property(TARGET ${TARGET_NAME} PROPERTY LINK_FLAGS "${LINKER_FLAGS_COMMON}")
|
||||||
set_property(TARGET ${TARGET_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/tests")
|
set_property(TARGET ${TARGET_NAME} PROPERTY RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/tests")
|
||||||
|
|
||||||
target_link_libraries(${TARGET_NAME} jerry-core jerry-port-default-minimal)
|
target_link_libraries(${TARGET_NAME} jerry-core jerry-port-default-minimal)
|
||||||
|
|
||||||
add_dependencies(unittests-core ${TARGET_NAME})
|
add_dependencies(unittests-core ${TARGET_NAME})
|
||||||
|
|||||||
Reference in New Issue
Block a user