blob: eb755ff63a968db9179a26003b45dad2bba7661b [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
set(NO_DOWNLOAD_MSG
--batch-mode
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn)
# set the version in the POM file to match the CMake version string
execute_process(COMMAND ./mvnw versions:set -DnewVersion=${ORC_VERSION}
-DgenerateBackupPoms=false
-Pbenchmark
${NO_DOWNLOAD_MSG}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
# show maven & java version
execute_process(COMMAND ./mvnw --version
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
set(ORC_JARS
${CMAKE_CURRENT_BINARY_DIR}/shims/orc-shims-${ORC_VERSION}.jar
${CMAKE_CURRENT_BINARY_DIR}/core/orc-core-${ORC_VERSION}.jar
${CMAKE_CURRENT_BINARY_DIR}/mapreduce/orc-mapreduce-${ORC_VERSION}.jar
${CMAKE_CURRENT_BINARY_DIR}/tools/orc-tools-${ORC_VERSION}-uber.jar
)
if (ANALYZE_JAVA)
set(JAVA_PROFILE "-Pcmake,analyze,benchmark")
else()
set(JAVA_PROFILE "-Pcmake,benchmark")
endif()
execute_process(
COMMAND java --add-opens java.base/java.nio=ALL-UNNAMED -version
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
RESULT_VARIABLE RET
OUTPUT_QUIET
ERROR_QUIET)
if(RET EQUAL 0)
set(ADD_OPENS --add-opens)
set(JAVA_NIO java.base/java.nio=ALL-UNNAMED)
endif()
add_custom_command(
OUTPUT ${ORC_JARS}
COMMAND ./mvnw ${NO_DOWNLOAD_MSG} ${JAVA_PROFILE}
-Dbuild.dir=${CMAKE_CURRENT_BINARY_DIR} -Dcyclonedx.skip -DskipTests package
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Build the java directory"
VERBATIM)
add_custom_target(java_build ALL DEPENDS ${ORC_JARS})
add_test(
NAME java-test
COMMAND ./mvnw ${NO_DOWNLOAD_MSG} -Pcmake
-Dbuild.dir=${CMAKE_CURRENT_BINARY_DIR} test
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
add_test(
NAME java-examples-test
COMMAND java -jar examples/orc-examples-${ORC_VERSION}-uber.jar write
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(
NAME java-tools-test
COMMAND java -jar tools/orc-tools-${ORC_VERSION}-uber.jar version
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(
NAME java-bench-gen-test
COMMAND java ${ADD_OPENS} ${JAVA_NIO} -jar bench/core/orc-benchmarks-core-${ORC_VERSION}-uber.jar generate data -d sales -s 1
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(
NAME java-bench-scan-test
COMMAND java ${ADD_OPENS} ${JAVA_NIO} -jar bench/core/orc-benchmarks-core-${ORC_VERSION}-uber.jar scan data -d sales
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(
NAME java-bench-hive-test
COMMAND java ${ADD_OPENS} ${JAVA_NIO} -jar bench/hive/orc-benchmarks-hive-${ORC_VERSION}-uber.jar write -i 1 -I 0 -t 1 data
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(
NAME java-bench-spark-test
COMMAND java ${ADD_OPENS} ${JAVA_NIO} -jar bench/spark/orc-benchmarks-spark-${ORC_VERSION}.jar spark data -d sales -c zstd -f orc
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
install(
FILES ${ORC_JARS}
DESTINATION share)