56 lines
1.7 KiB
56 lines
1.7 KiB
# Some common routine for paddle compile.
|
|
|
|
# target_circle_link_libraries
|
|
# Link libraries to target which has circle dependencies.
|
|
#
|
|
# First Argument: target name want to be linked with libraries
|
|
# Rest Arguments: libraries which link together.
|
|
function(target_circle_link_libraries TARGET_NAME)
|
|
if(APPLE)
|
|
set(LIBS)
|
|
set(inArchive OFF)
|
|
set(libsInArgn)
|
|
|
|
foreach(arg ${ARGN})
|
|
if(${arg} STREQUAL "ARCHIVE_START")
|
|
set(inArchive ON)
|
|
elseif(${arg} STREQUAL "ARCHIVE_END")
|
|
set(inArchive OFF)
|
|
else()
|
|
if(inArchive)
|
|
list(APPEND LIBS "-Wl,-force_load")
|
|
endif()
|
|
list(APPEND LIBS ${arg})
|
|
list(APPEND libsInArgn ${arg})
|
|
endif()
|
|
endforeach()
|
|
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
|
|
if(NOT IOS_ENABLE_BITCODE)
|
|
list(APPEND LIBS "-undefined dynamic_lookup")
|
|
endif()
|
|
endif()
|
|
list(REVERSE libsInArgn)
|
|
target_link_libraries(${TARGET_NAME}
|
|
${LIBS}
|
|
${libsInArgn})
|
|
|
|
else() # LINUX
|
|
set(LIBS)
|
|
|
|
foreach(arg ${ARGN})
|
|
if(${arg} STREQUAL "ARCHIVE_START")
|
|
list(APPEND LIBS "-Wl,--whole-archive")
|
|
elseif(${arg} STREQUAL "ARCHIVE_END")
|
|
list(APPEND LIBS "-Wl,--no-whole-archive")
|
|
else()
|
|
list(APPEND LIBS ${arg})
|
|
endif()
|
|
endforeach()
|
|
|
|
target_link_libraries(${TARGET_NAME}
|
|
"-Wl,--start-group"
|
|
${LIBS}
|
|
"-Wl,--end-group")
|
|
endif()
|
|
endfunction()
|