mirror of
https://github.com/jerryscript-project/jerryscript.git
synced 2025-12-15 16:29:21 +00:00
Simplify the way libgcc is linked (#1380)
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
This commit is contained in:
parent
8320a2cbc9
commit
e16cc83ce7
@ -131,31 +131,6 @@ if(${PORT_DIR} STREQUAL "${CMAKE_SOURCE_DIR}/targets/default" AND NOT JERRY_LIBC
|
||||
set(DEFINES_JERRY ${DEFINES_JERRY} _BSD_SOURCE)
|
||||
endif()
|
||||
|
||||
# Imported targets prefix
|
||||
set(PREFIX_IMPORTED_LIB imported_)
|
||||
|
||||
# Imported libraries
|
||||
if(("${PLATFORM}" STREQUAL "DARWIN") AND (NOT CMAKE_COMPILER_IS_GNUCC))
|
||||
# libclang_rt.osx
|
||||
set(IMPORTED_LIB "${PREFIX_IMPORTED_LIB}libclang_rt.osx")
|
||||
add_library(${IMPORTED_LIB} STATIC IMPORTED)
|
||||
execute_process(COMMAND ${CMAKE_C_COMPILER} ${FLAGS_COMMON_ARCH} -print-file-name=
|
||||
OUTPUT_VARIABLE IMPORTED_LIBCLANG_RT_LOCATION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(IMPORTED_LIBCLANG_RT_LOCATION "${IMPORTED_LIBCLANG_RT_LOCATION}/lib/darwin/libclang_rt.osx.a")
|
||||
set_property(TARGET ${IMPORTED_LIB}
|
||||
PROPERTY IMPORTED_LOCATION ${IMPORTED_LIBCLANG_RT_LOCATION})
|
||||
else()
|
||||
# libgcc
|
||||
set(IMPORTED_LIB "${PREFIX_IMPORTED_LIB}libgcc")
|
||||
add_library(${IMPORTED_LIB} STATIC IMPORTED)
|
||||
execute_process(COMMAND ${CMAKE_C_COMPILER} ${FLAGS_COMMON_ARCH} -print-file-name=libgcc.a
|
||||
OUTPUT_VARIABLE IMPORTED_LIBGCC_LOCATION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set_property(TARGET ${IMPORTED_LIB}
|
||||
PROPERTY IMPORTED_LOCATION ${IMPORTED_LIBGCC_LOCATION})
|
||||
endif()
|
||||
|
||||
# Compiler / Linker flags
|
||||
jerry_add_compile_flags(-fno-builtin)
|
||||
if(("${PLATFORM}" STREQUAL "DARWIN"))
|
||||
|
||||
@ -203,17 +203,17 @@ target_include_directories(${JERRY_CORE_NAME} PUBLIC ${INCLUDE_CORE})
|
||||
|
||||
set(JERRY_LIBS )
|
||||
|
||||
if(JERRY_LIBC)
|
||||
set(JERRY_LIBS ${JERRY_LIBS} jerry-libc)
|
||||
target_include_directories(${JERRY_CORE_NAME} SYSTEM PRIVATE "${CMAKE_SOURCE_DIR}/jerry-libc/include")
|
||||
endif()
|
||||
|
||||
if(JERRY_LIBM)
|
||||
set(JERRY_LIBS ${JERRY_LIBS} jerry-libm)
|
||||
target_include_directories(${JERRY_CORE_NAME} SYSTEM PRIVATE "${CMAKE_SOURCE_DIR}/jerry-libm/include")
|
||||
endif()
|
||||
|
||||
target_link_libraries(${JERRY_CORE_NAME} ${JERRY_LIBS} ${IMPORTED_LIB} ${EXTERNAL_LINK_LIBS})
|
||||
if(JERRY_LIBC)
|
||||
set(JERRY_LIBS ${JERRY_LIBS} jerry-libc)
|
||||
target_include_directories(${JERRY_CORE_NAME} SYSTEM PRIVATE "${CMAKE_SOURCE_DIR}/jerry-libc/include")
|
||||
endif()
|
||||
|
||||
target_link_libraries(${JERRY_CORE_NAME} ${JERRY_LIBS} ${EXTERNAL_LINK_LIBS})
|
||||
|
||||
install(TARGETS ${JERRY_CORE_NAME} DESTINATION lib)
|
||||
install(FILES jerry-api.h jerry-port.h DESTINATION include)
|
||||
|
||||
@ -47,6 +47,7 @@ add_library(${JERRY_LIBC_NAME} STATIC ${SOURCE_LIBC} ${TARGET_SPECIFIC_LIBC_SOUR
|
||||
target_compile_definitions(${JERRY_LIBC_NAME} PRIVATE ${DEFINES_LIBC})
|
||||
target_include_directories(${JERRY_LIBC_NAME} PRIVATE ${INCLUDE_LIBC})
|
||||
target_include_directories(${JERRY_LIBC_NAME} SYSTEM PUBLIC "${CMAKE_SOURCE_DIR}/jerry-libc/include")
|
||||
target_link_libraries(${JERRY_LIBC_NAME} -lgcc)
|
||||
|
||||
install(TARGETS ${JERRY_LIBC_NAME} DESTINATION lib)
|
||||
install(DIRECTORY ${INCLUDE_LIBC}/include/ DESTINATION include/jerry-libc)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user