joemarshall commented on code in PR #37821:
URL: https://github.com/apache/arrow/pull/37821#discussion_r1345480184
##########
cpp/cmake_modules/ThirdpartyToolchain.cmake:
##########
@@ -1365,16 +1398,51 @@ macro(build_brotli)
)
set(BROTLI_CMAKE_ARGS ${EP_COMMON_CMAKE_ARGS}
"-DCMAKE_INSTALL_PREFIX=${BROTLI_PREFIX}")
- externalproject_add(brotli_ep
- ${EP_COMMON_OPTIONS}
- URL ${BROTLI_SOURCE_URL}
- URL_HASH "SHA256=${ARROW_BROTLI_BUILD_SHA256_CHECKSUM}"
- BUILD_BYPRODUCTS "${BROTLI_STATIC_LIBRARY_ENC}"
- "${BROTLI_STATIC_LIBRARY_DEC}"
- "${BROTLI_STATIC_LIBRARY_COMMON}"
- ${BROTLI_BUILD_BYPRODUCTS}
- CMAKE_ARGS ${BROTLI_CMAKE_ARGS}
- STEP_TARGETS headers_copy)
+ set(BROTLI_INSTALL_OVERRIDE)
+
+ if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
+ # cmake install is disabled for brotli on emscripten, so we have
+ # to manually copy the libraries to our install directory
+ set(BROTLI_BUILD_DIR
${CMAKE_CURRENT_BINARY_DIR}/brotli_ep-prefix/src/brotli_ep-build)
+ set(BROTLI_BUILD_LIBS
+
"${BROTLI_BUILD_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}brotlienc-static${CMAKE_STATIC_LIBRARY_SUFFIX}"
+
"${BROTLI_BUILD_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}brotlidec-static${CMAKE_STATIC_LIBRARY_SUFFIX}"
+
"${BROTLI_BUILD_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}brotlicommon-static${CMAKE_STATIC_LIBRARY_SUFFIX}"
+ )
+
+ set(BROTLI_BUILD_INCLUDE_DIR
+
${CMAKE_CURRENT_BINARY_DIR}/brotli_ep-prefix/src/brotli_ep/c/include/brotli)
+
+ externalproject_add(brotli_ep
+ ${EP_COMMON_OPTIONS}
+ URL ${BROTLI_SOURCE_URL}
+ URL_HASH "SHA256=${ARROW_BROTLI_BUILD_SHA256_CHECKSUM}"
+ BUILD_BYPRODUCTS "${BROTLI_STATIC_LIBRARY_ENC}"
+ "${BROTLI_STATIC_LIBRARY_DEC}"
+ "${BROTLI_STATIC_LIBRARY_COMMON}"
+ ${BROTLI_BUILD_BYPRODUCTS}
+ CMAKE_ARGS ${BROTLI_CMAKE_ARGS}
+ STEP_TARGETS headers_copy
+ INSTALL_COMMAND "")
+ add_custom_command(TARGET brotli_ep
+ POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+
${BROTLI_BUILD_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}*${CMAKE_STATIC_LIBRARY_SUFFIX}
+ ${BROTLI_LIB_DIR}
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ ${BROTLI_BUILD_INCLUDE_DIR}
${BROTLI_INCLUDE_DIR}/brotli)
+ else() # not emscripten - just behave as normal
+ externalproject_add(brotli_ep
+ ${EP_COMMON_OPTIONS}
+ URL ${BROTLI_SOURCE_URL}
+ URL_HASH "SHA256=${ARROW_BROTLI_BUILD_SHA256_CHECKSUM}"
+ BUILD_BYPRODUCTS "${BROTLI_STATIC_LIBRARY_ENC}"
+ "${BROTLI_STATIC_LIBRARY_DEC}"
+ "${BROTLI_STATIC_LIBRARY_COMMON}"
+ ${BROTLI_BUILD_BYPRODUCTS}
+ CMAKE_ARGS ${BROTLI_CMAKE_ARGS}
+ STEP_TARGETS headers_copy)
+ endif()
Review Comment:
This one was debug only - SIDE_MODULE shouldn't be set on executable builds.
Should be fixed now.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]