From e16cc83ce73d7a85dd37f015b4e578c812aac4a3 Mon Sep 17 00:00:00 2001 From: Akos Kiss Date: Fri, 30 Sep 2016 09:02:42 +0200 Subject: [PATCH] Simplify the way libgcc is linked (#1380) JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu --- CMakeLists.txt | 25 ------------------------- jerry-core/CMakeLists.txt | 12 ++++++------ jerry-libc/CMakeLists.txt | 1 + 3 files changed, 7 insertions(+), 31 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b9d5b291d..69c11f54e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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")) diff --git a/jerry-core/CMakeLists.txt b/jerry-core/CMakeLists.txt index 95dfa071f..08d7d3e88 100644 --- a/jerry-core/CMakeLists.txt +++ b/jerry-core/CMakeLists.txt @@ -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) diff --git a/jerry-libc/CMakeLists.txt b/jerry-libc/CMakeLists.txt index 126022a6a..94e96e9b0 100644 --- a/jerry-libc/CMakeLists.txt +++ b/jerry-libc/CMakeLists.txt @@ -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)