diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/cmake/XmlRpcEpi.cmake | 82 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 11 | 
2 files changed, 79 insertions, 14 deletions
| diff --git a/indra/cmake/XmlRpcEpi.cmake b/indra/cmake/XmlRpcEpi.cmake index 994df3d128..91cc30537f 100644 --- a/indra/cmake/XmlRpcEpi.cmake +++ b/indra/cmake/XmlRpcEpi.cmake @@ -4,20 +4,82 @@ include(Prebuilt)  include_guard()  add_library( ll::xmlrpc-epi INTERFACE IMPORTED ) -if (USE_AUTOBUILD_3P OR USE_CONAN) +if (NOT USESYSTEMLIBS)  use_system_binary( xmlrpc-epi )  use_prebuilt_binary(xmlrpc-epi) -endif () - +elseif (DARWIN AND (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/xmlrpc-epi_installed OR NOT ${xmlrpc-epi_installed} EQUAL 0)) +  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 +    ) +  file(ARCHIVE_EXTRACT +    INPUT ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2.tar.bz2 +    DESTINATION ${CMAKE_BINARY_DIR} +    ) +  file(MAKE_DIRECTORY ${AUTOBUILD_INSTALL_DIR}/include/xmlrpc-epi) +  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) +  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 --host=aarch64-apple-darwin +      WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2 +      ) +  else (CMAKE_OSX_ARCHITECTURES MATCHES arm64) +    execute_process( +      COMMAND ./configure --host=${CMAKE_OSX_ARCHITECTURES}-apple-darwin +      WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/xmlrpc-epi-0.54.2 +      ) +  endif (CMAKE_OSX_ARCHITECTURES MATCHES arm64) +  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}) +  unset(ENV{CFLAGS}) +  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)  target_link_libraries(ll::xmlrpc-epi INTERFACE xmlrpc-epi ) - -if (USE_AUTOBUILD_3P OR USE_CONAN) +if (NOT USESYSTEMLIBS)  target_include_directories( ll::xmlrpc-epi SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include) -elseif (LINUX) -	target_include_directories( ll::xmlrpc-epi SYSTEM INTERFACE -		${CMAKE_SYSROOT}/usr/include/xmlrpc-epi)  elseif (DARWIN) -	target_include_directories( ll::xmlrpc-epi SYSTEM INTERFACE /usr/local/include) -	target_link_directories( ll::xmlrpc-epi INTERFACE /usr/local/lib) +  target_include_directories( ll::xmlrpc-epi SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/xmlrpc-epi) +elseif (LINUX) +  target_include_directories( ll::xmlrpc-epi SYSTEM INTERFACE ${CMAKE_SYSROOT}/usr/include/xmlrpc-epi)  endif () diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index bc597fb69e..19ecfe425c 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2287,14 +2287,18 @@ if (DARWIN)      )   if (USESYSTEMLIBS) -    configure_file(      ${CMAKE_CURRENT_SOURCE_DIR}/English.lproj/InfoPlist.strings      ${CMAKE_CURRENT_BINARY_DIR}/InfoPlist.strings      ) - +  add_custom_command( +    TARGET ${VIEWER_BINARY_NAME} POST_BUILD +    COMMAND ${CMAKE_INSTALL_NAME_TOOL} +      -change "/usr/local/lib/libxmlrpc-epi.0.dylib" "${AUTOBUILD_INSTALL_DIR}/lib/release/libxmlrpc-epi.0.dylib" +      ${VIEWER_APP_EXE} +    VERBATIM +  )   else (USESYSTEMLIBS) -    add_custom_command(      TARGET ${VIEWER_BINARY_NAME} POST_BUILD      COMMAND ${PYTHON_EXECUTABLE} @@ -2319,7 +2323,6 @@ if (DARWIN)        ${VIEWER_BINARY_NAME}        ${CMAKE_CURRENT_SOURCE_DIR}/viewer_manifest.py      ) -   endif (USESYSTEMLIBS)   if (ENABLE_MEDIA_PLUGINS) | 
