diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/cmake/XmlRpcEpi.cmake | 89 | 
1 files changed, 16 insertions, 73 deletions
| diff --git a/indra/cmake/XmlRpcEpi.cmake b/indra/cmake/XmlRpcEpi.cmake index 739648500c..756388957f 100644 --- a/indra/cmake/XmlRpcEpi.cmake +++ b/indra/cmake/XmlRpcEpi.cmake @@ -6,85 +6,28 @@ add_library( ll::xmlrpc-epi INTERFACE IMPORTED )  if (NOT USESYSTEMLIBS)  use_system_binary( xmlrpc-epi ) +endif (NOT USESYSTEMLIBS) +if (${LINUX_DISTRO} MATCHES opensuse-tumbleweed OR DARWIN OR NOT USESYSTEMLIBS)  use_prebuilt_binary(xmlrpc-epi) -elseif ((${LINUX_DISTRO} MATCHES opensuse-tumbleweed OR DARWIN) AND (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/xmlrpc-epi_installed OR NOT ${xmlrpc-epi_installed} EQUAL 0)) -  if (NOT EXISTS ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2.tar.bz2) -    file(DOWNLOAD -      https://sourceforge.net/projects/xmlrpc-epi/files/xmlrpc-epi-base/0.54.2/xmlrpc-epi-0.54.2.tar.bz2 -      ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2.tar.bz2 -      ) -  endif (NOT EXISTS ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2.tar.bz2) -  file(ARCHIVE_EXTRACT -    INPUT ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2.tar.bz2 -    DESTINATION ${CMAKE_BINARY_DIR} -    ) -  file( -    COPY -      ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2/src/base64.h -      ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2/src/encodings.h -      ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2/src/queue.h -      ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2/src/simplestring.h -      ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2/src/xml_element.h -      ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2/src/xml_to_xmlrpc.h -      ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2/src/xmlrpc.h -      ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2/src/xmlrpc_introspection.h -    DESTINATION ${LIBS_PREBUILT_DIR}/include/xmlrpc-epi -    ) -  file(REMOVE -    ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2/config.sub -    ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2/missing -    ) -  execute_process( -    COMMAND autoreconf -is -    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2 -    ) -  set(ENV{CPPFLAGS} -I${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2/src)    if (DARWIN) -    set(ENV{CFLAGS} "-arch ${CMAKE_OSX_ARCHITECTURES} -mmacosx-version-min=10.15") -    if (CMAKE_OSX_ARCHITECTURES MATCHES arm64) -      execute_process( -        COMMAND sed -i '' -e "s/XMLRPC_VALUE find_named_value/__attribute__((always_inline)) XMLRPC_VALUE find_named_value/g" -          xmlrpc_introspection.c -        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2/src -        ) -      execute_process( -        COMMAND sed -i '' -e "s/void describe_method/__attribute__((always_inline)) void describe_method/g" -          xmlrpc_introspection.c -        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2/src -        ) -      execute_process( -        COMMAND ./configure --disable-static --host=aarch64-apple-darwin -        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2 -        ) -    else (CMAKE_OSX_ARCHITECTURES MATCHES arm64) -      execute_process( -        COMMAND ./configure --disable-static --host=${CMAKE_OSX_ARCHITECTURES}-apple-darwin -        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2 -        ) -    endif (CMAKE_OSX_ARCHITECTURES MATCHES arm64) -    unset(ENV{CFLAGS}) -  else (DARWIN)      execute_process( -      COMMAND ./configure --disable-shared -      WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2 +      COMMAND lipo -archs libxmlrpc-epi.0.dylib +      WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/lib/release +      OUTPUT_VARIABLE xmlrpc-epi_archs +      OUTPUT_STRIP_TRAILING_WHITESPACE        ) +    if (NOT ${xmlrpc-epi_archs} EQUAL ${CMAKE_OSX_ARCHITECTURES}) +      execute_process( +        COMMAND lipo +          libxmlrpc-epi.0.dylib +          -thin ${CMAKE_OSX_ARCHITECTURES} +          -output libxmlrpc-epi.0.dylib +        WORKING_DIRECTORY ${LIBS_PREBUILT_DIR}/lib/release +        ) +    endif (NOT ${xmlrpc-epi_archs} EQUAL ${CMAKE_OSX_ARCHITECTURES})    endif (DARWIN) -  execute_process( -    COMMAND make -j${MAKE_JOBS} -    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2 -    RESULT_VARIABLE xmlrpc-epi_installed -    ) -  unset(ENV{CPPFLAGS}) -  file( -    COPY -      ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2/src/.libs/libxmlrpc-epi.dylib -      ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2/src/.libs/libxmlrpc-epi.0.dylib -    DESTINATION ${LIBS_PREBUILT_DIR}/lib/release -    FOLLOW_SYMLINK_CHAIN -    ) -  file(WRITE ${PREBUILD_TRACKING_DIR}/xmlrpc-epi_installed "${xmlrpc-epi_installed}") -endif (NOT USESYSTEMLIBS) +endif (${LINUX_DISTRO} MATCHES opensuse-tumbleweed OR DARWIN OR NOT USESYSTEMLIBS)  target_link_libraries(ll::xmlrpc-epi INTERFACE xmlrpc-epi )  if (NOT USESYSTEMLIBS)  target_include_directories( ll::xmlrpc-epi SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include) | 
