diff --git a/recipe/bld.bat b/recipe/bld.bat index a15a380..4a7a25d 100644 --- a/recipe/bld.bat +++ b/recipe/bld.bat @@ -1,17 +1,12 @@ +@echo on + cmake -S %SRC_DIR% -Bbuild ^ -DCMAKE_PREFIX_PATH=%LIBRARY_PREFIX% ^ -DCMAKE_BUILD_TYPE=Release ^ -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON ^ -DBUILD_SHARED_LIBS=ON ^ -DBUILD_JAVA=False ^ - -DLZ4_HOME=%LIBRARY_PREFIX% ^ - -DZLIB_HOME=%LIBRARY_PREFIX% ^ - -DZSTD_HOME=%LIBRARY_PREFIX% ^ - -DSTOP_BUILD_ON_WARNING=OFF ^ - -DProtobuf_ROOT=%LIBRARY_PREFIX% ^ - -DPROTOBUF_HOME=%LIBRARY_PREFIX% ^ - -DPROTOBUF_EXECUTABLE=%BUILD_PREFIX%\Library\bin\protoc.exe ^ - -DSNAPPY_HOME=%LIBRARY_PREFIX% ^ + -DORC_PACKAGE_KIND=vcpkg ^ -DBUILD_LIBHDFSPP=NO ^ -DBUILD_CPP_TESTS=OFF ^ -DBUILD_TOOLS=OFF ^ diff --git a/recipe/build.sh b/recipe/build.sh index bb48f25..9cc6346 100644 --- a/recipe/build.sh +++ b/recipe/build.sh @@ -26,13 +26,8 @@ cmake ${CMAKE_ARGS} \ -DCMAKE_BUILD_TYPE=Release \ -DBUILD_SHARED_LIBS=ON \ -DBUILD_JAVA=False \ - -DLZ4_HOME=$PREFIX \ - -DZLIB_HOME=$PREFIX \ - -DZSTD_HOME=$PREFIX \ - -DProtobuf_ROOT=$PREFIX \ - -DPROTOBUF_HOME=$PREFIX \ + -DORC_PACKAGE_KIND=vcpkg \ -DPROTOBUF_EXECUTABLE=$BUILD_PREFIX/bin/protoc \ - -DSNAPPY_HOME=$PREFIX \ -DBUILD_LIBHDFSPP=NO \ -DBUILD_CPP_TESTS=OFF \ -DSTOP_BUILD_ON_WARNING=OFF \ diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 266cd43..faf31a1 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -8,13 +8,13 @@ source: url: https://archive.apache.org/dist/orc/orc-{{ version }}/orc-{{ version }}.tar.gz sha256: 69d45665bfb5699b709094ba630ae4b186b19e083c4438855fc29c77125c149c patches: + # diff from 2.1.0 to head of `branch-2.1`: https://github.com/apache/orc/commit/0ee235c2d92096155aaaebf87c3daf94be46882e + - patches/0001-combined-patch-until-https-github.com-apache-orc-com.patch - patches/0001-Don-t-force-orc-to-be-a-static-library-let-end-user-.patch - patches/0002-Allow-user-to-override-path-to-protoc.patch - # backport https://github.com/apache/orc/pull/2108 - - patches/0003-ORC-1833-C-Fix-CMake-script-to-be-used-inside-anothe.patch build: - number: 1 + number: 2 run_exports: - {{ pin_subpackage("orc", max_pin="x.x.x") }} diff --git a/recipe/patches/0001-Don-t-force-orc-to-be-a-static-library-let-end-user-.patch b/recipe/patches/0001-Don-t-force-orc-to-be-a-static-library-let-end-user-.patch index 369f2e2..907eb77 100644 --- a/recipe/patches/0001-Don-t-force-orc-to-be-a-static-library-let-end-user-.patch +++ b/recipe/patches/0001-Don-t-force-orc-to-be-a-static-library-let-end-user-.patch @@ -1,7 +1,7 @@ -From 2da6a76b50e719d2aec9dd46fb640c524455b1fd Mon Sep 17 00:00:00 2001 +From d365dc6926ab5bc9ea9ee3d55d46ba71b7c1671b Mon Sep 17 00:00:00 2001 From: Nehal J Wani Date: Fri, 25 Sep 2020 14:49:59 -0400 -Subject: [PATCH 1/3] Don't force orc to be a static library, let end user +Subject: [PATCH 1/2] Don't force orc to be a static library, let end user control it --- @@ -9,7 +9,7 @@ Subject: [PATCH 1/3] Don't force orc to be a static library, let end user 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt -index 694667c06..175c032ca 100644 +index e378429f1..0c5b39c53 100644 --- a/c++/src/CMakeLists.txt +++ b/c++/src/CMakeLists.txt @@ -200,7 +200,7 @@ if(BUILD_ENABLE_AVX512) diff --git a/recipe/patches/0001-combined-patch-until-https-github.com-apache-orc-com.patch b/recipe/patches/0001-combined-patch-until-https-github.com-apache-orc-com.patch new file mode 100644 index 0000000..f4ad713 --- /dev/null +++ b/recipe/patches/0001-combined-patch-until-https-github.com-apache-orc-com.patch @@ -0,0 +1,937 @@ +From 951b7a0589052ca3b3e5965067c12ea730812bba Mon Sep 17 00:00:00 2001 +From: "H. Vetinari" +Date: Wed, 26 Feb 2025 20:15:15 +1100 +Subject: [PATCH 1/3] combined patch until + https://github.com/apache/orc/commit/0ee235c2d92096155aaaebf87c3daf94be46882e + +--- + .github/workflows/build_and_test.yml | 9 +- + CMakeLists.txt | 14 ++- + c++/src/CMakeLists.txt | 6 +- + c++/src/ColumnReader.cc | 8 +- + c++/test/CMakeLists.txt | 6 +- + cmake_modules/CheckFormat.cmake | 10 +- + cmake_modules/ThirdpartyToolchain.cmake | 91 +++++++++++-------- + docker/README.md | 1 + + docker/amazonlinux23/Dockerfile | 57 ++++++++++++ + docker/os-list.txt | 2 +- + java/.mvn/jvm.config | 1 + + java/bench/core/pom.xml | 2 +- + java/bench/hive/pom.xml | 2 +- + java/bench/pom.xml | 4 +- + java/bench/spark/pom.xml | 2 +- + java/core/pom.xml | 2 +- + java/examples/pom.xml | 2 +- + java/mapreduce/pom.xml | 2 +- + java/pom.xml | 30 +++--- + java/shims/pom.xml | 2 +- + java/tools/pom.xml | 2 +- + .../java/org/apache/orc/tools/PrintData.java | 1 + + .../{TesScanData.java => TestScanData.java} | 6 +- + site/_includes/top.html | 17 ++++ + tools/src/CMakeLists.txt | 8 +- + tools/test/CMakeLists.txt | 10 +- + 26 files changed, 197 insertions(+), 100 deletions(-) + create mode 100644 docker/amazonlinux23/Dockerfile + create mode 100644 java/.mvn/jvm.config + rename java/tools/src/test/org/apache/orc/tools/{TesScanData.java => TestScanData.java} (94%) + +diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml +index 280fb9efd..1912a9a91 100644 +--- a/.github/workflows/build_and_test.yml ++++ b/.github/workflows/build_and_test.yml +@@ -49,6 +49,7 @@ jobs: + - ubuntu24 + - fedora37 + - oraclelinux9 ++ - amazonlinux23 + steps: + - name: Checkout + uses: actions/checkout@v2 +@@ -179,6 +180,11 @@ jobs: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 ++ - name: Run build ++ run: | ++ mkdir build && cd build ++ cmake .. -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DBUILD_JAVA=OFF ++ cmake --build . + - uses: cpp-linter/cpp-linter-action@v2.13.3 + id: linter + continue-on-error: true +@@ -191,8 +197,7 @@ jobs: + lines-changed-only: true + thread-comments: true + ignore: 'build|cmake_modules|conan|dev|docker|examples|java|site' +- database: build/compile_commands.json +- extra-args: #-Wno-unused-parameter ++ database: build + - name: Fail fast?! + if: steps.linter.outputs.checks-failed != 0 + run: | +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 1f8931508..0d569ea6b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -28,10 +28,10 @@ project(ORC C CXX) + # Version number of package + SET(CPACK_PACKAGE_VERSION_MAJOR "2") + SET(CPACK_PACKAGE_VERSION_MINOR "1") +-SET(CPACK_PACKAGE_VERSION_PATCH "0") ++SET(CPACK_PACKAGE_VERSION_PATCH "1-SNAPSHOT") + SET(ORC_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") +-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules") + set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # For clang-tidy. ++list(PREPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules") + + option (BUILD_JAVA + "Include ORC Java library in the build process" +@@ -85,6 +85,10 @@ option(ORC_PACKAGE_KIND + "Arbitrary string that identifies the kind of package" + "") + ++option(ORC_ENABLE_CLANG_TOOLS ++ "Enable Clang tools" ++ OFF) ++ + # Make sure that a build type is selected + if (NOT CMAKE_BUILD_TYPE) + message(STATUS "No build type selected, default to ReleaseWithDebugInfo") +@@ -195,7 +199,7 @@ if (BUILD_ENABLE_AVX512 AND NOT APPLE) + INCLUDE(ConfigSimdLevel) + endif () + +-set (EXAMPLE_DIRECTORY ${CMAKE_SOURCE_DIR}/examples) ++set (EXAMPLE_DIRECTORY ${PROJECT_SOURCE_DIR}/examples) + + add_subdirectory(c++) + +@@ -226,4 +230,6 @@ if (BUILD_CPP_TESTS) + endif () + endif () + +-INCLUDE(CheckFormat) ++if (ORC_ENABLE_CLANG_TOOLS) ++ INCLUDE(CheckFormat) ++endif () +diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt +index 694667c06..e378429f1 100644 +--- a/c++/src/CMakeLists.txt ++++ b/c++/src/CMakeLists.txt +@@ -218,11 +218,11 @@ target_include_directories (orc + INTERFACE + $ + PUBLIC +- $ +- $ ++ $ ++ $ + PRIVATE +- ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_BINARY_DIR} ++ ${CMAKE_CURRENT_SOURCE_DIR} + ${LIBHDFSPP_INCLUDE_DIR} + ) + +diff --git a/c++/src/ColumnReader.cc b/c++/src/ColumnReader.cc +index e70f916ff..af434c37c 100644 +--- a/c++/src/ColumnReader.cc ++++ b/c++/src/ColumnReader.cc +@@ -395,7 +395,7 @@ namespace orc { + int64_t bits = 0; + if (bufferEnd_ - bufferPointer_ >= 8) { + if (isLittleEndian) { +- bits = *(reinterpret_cast(bufferPointer_)); ++ memcpy(&bits, bufferPointer_, sizeof(bits)); + } else { + bits = static_cast(static_cast(bufferPointer_[0])); + bits |= static_cast(static_cast(bufferPointer_[1])) << 8; +@@ -509,8 +509,10 @@ namespace orc { + bufferNum = std::min(numValues, + static_cast(bufferEnd_ - bufferPointer_) / bytesPerValue_); + uint64_t bufferBytes = bufferNum * bytesPerValue_; +- memcpy(outArray, bufferPointer_, bufferBytes); +- bufferPointer_ += bufferBytes; ++ if (bufferBytes > 0) { ++ memcpy(outArray, bufferPointer_, bufferBytes); ++ bufferPointer_ += bufferBytes; ++ } + } + for (size_t i = bufferNum; i < numValues; ++i) { + outArray[i] = readDouble(); +diff --git a/c++/test/CMakeLists.txt b/c++/test/CMakeLists.txt +index 6c5b26c4f..f7328abb3 100644 +--- a/c++/test/CMakeLists.txt ++++ b/c++/test/CMakeLists.txt +@@ -19,9 +19,9 @@ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX17_FLAGS} ${WARN_FLAGS}") + + add_library (orc-test-include INTERFACE) + target_include_directories (orc-test-include INTERFACE +- ${CMAKE_SOURCE_DIR}/c++/src +- ${CMAKE_BINARY_DIR}/c++/include +- ${CMAKE_BINARY_DIR}/c++/src ++ ${PROJECT_BINARY_DIR}/c++/include ++ ${PROJECT_BINARY_DIR}/c++/src ++ ${PROJECT_SOURCE_DIR}/c++/src + ) + + if(BUILD_ENABLE_AVX512) +diff --git a/cmake_modules/CheckFormat.cmake b/cmake_modules/CheckFormat.cmake +index 1aff5d765..17017da13 100644 +--- a/cmake_modules/CheckFormat.cmake ++++ b/cmake_modules/CheckFormat.cmake +@@ -26,7 +26,7 @@ set(Python3_FIND_FRAMEWORK "LAST") + find_package(Python3) + set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE}) + +-set(BUILD_SUPPORT_DIR "${CMAKE_SOURCE_DIR}/c++/build-support") ++set(BUILD_SUPPORT_DIR "${PROJECT_SOURCE_DIR}/c++/build-support") + + find_program(CLANG_FORMAT_BIN + NAMES clang-format-13 +@@ -75,21 +75,21 @@ add_custom_target(check-clang-tidy + ${PYTHON_EXECUTABLE} + ${BUILD_SUPPORT_DIR}/run_clang_tidy.py # run LLVM's clang-tidy script + -clang-tidy-binary ${CLANG_TIDY_BIN} # using our clang-tidy binary +- -p ${CMAKE_BINARY_DIR} # using cmake's generated compile commands ++ -p ${PROJECT_BINARY_DIR} # using cmake's generated compile commands + ) + + add_custom_target(fix-clang-tidy + ${PYTHON_EXECUTABLE} + ${BUILD_SUPPORT_DIR}/run_clang_tidy.py # run LLVM's clang-tidy script + -clang-tidy-binary ${CLANG_TIDY_BIN} # using our clang-tidy binary +- -p ${CMAKE_BINARY_DIR} # using cmake's generated compile commands ++ -p ${PROJECT_BINARY_DIR} # using cmake's generated compile commands + -clang-apply-replacements-binary ${CLANG_APPLY_REPLACEMENTS_BIN} # using our clang-apply-replacements binary + -fix # apply suggested changes generated by clang-tidy + ) + + string(CONCAT ORC_FORMAT_DIRS +- "${CMAKE_SOURCE_DIR}/c++," +- "${CMAKE_SOURCE_DIR}/tools," ++ "${PROJECT_SOURCE_DIR}/c++," ++ "${PROJECT_SOURCE_DIR}/tools," + ) + + add_custom_target(format +diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake +index 017e6c5b8..9b2c829c7 100644 +--- a/cmake_modules/ThirdpartyToolchain.cmake ++++ b/cmake_modules/ThirdpartyToolchain.cmake +@@ -37,7 +37,7 @@ option(ORC_PREFER_STATIC_GMOCK "Prefer static gmock library, if available" + # zstd requires us to add the threads + FIND_PACKAGE(Threads REQUIRED) + +-set(THIRDPARTY_DIR "${CMAKE_BINARY_DIR}/c++/libs/thirdparty") ++set(THIRDPARTY_DIR "${PROJECT_BINARY_DIR}/c++/libs/thirdparty") + set(THIRDPARTY_LOG_OPTIONS LOG_CONFIGURE 1 + LOG_BUILD 1 + LOG_INSTALL 1 +@@ -103,13 +103,13 @@ endif () + + # ---------------------------------------------------------------------- + # Macros for adding third-party libraries +-macro (add_resolved_library target_name link_lib include_dir) +- add_library (${target_name} INTERFACE IMPORTED) ++macro (orc_add_resolved_library target_name link_lib include_dir) ++ add_library (${target_name} INTERFACE IMPORTED GLOBAL) + target_link_libraries (${target_name} INTERFACE ${link_lib}) + target_include_directories (${target_name} SYSTEM INTERFACE ${include_dir}) + endmacro () + +-macro (add_built_library external_project_name target_name link_lib include_dir) ++macro (orc_add_built_library external_project_name target_name link_lib include_dir) + file (MAKE_DIRECTORY "${include_dir}") + + add_library (${target_name} STATIC IMPORTED) +@@ -122,16 +122,16 @@ macro (add_built_library external_project_name target_name link_lib include_dir) + endif () + endmacro () + +-function(provide_cmake_module MODULE_NAME) +- set(module "${CMAKE_SOURCE_DIR}/cmake_modules/${MODULE_NAME}.cmake") ++function(orc_provide_cmake_module MODULE_NAME) ++ set(module "${PROJECT_SOURCE_DIR}/cmake_modules/${MODULE_NAME}.cmake") + if(EXISTS "${module}") + message(STATUS "Providing CMake module for ${MODULE_NAME} as part of CMake package") + install(FILES "${module}" DESTINATION "${ORC_INSTALL_CMAKE_DIR}") + endif() + endfunction() + +-function(provide_find_module PACKAGE_NAME) +- provide_cmake_module("Find${PACKAGE_NAME}") ++function(orc_provide_find_module PACKAGE_NAME) ++ orc_provide_cmake_module("Find${PACKAGE_NAME}") + endfunction() + + # ---------------------------------------------------------------------- +@@ -156,7 +156,8 @@ ExternalProject_Add (orc-format_ep + # Snappy + if (ORC_PACKAGE_KIND STREQUAL "conan") + find_package (Snappy REQUIRED CONFIG) +- add_resolved_library (orc_snappy ${Snappy_LIBRARIES} ${Snappy_INCLUDE_DIR}) ++ add_library (orc_snappy INTERFACE) ++ target_link_libraries(orc_snappy INTERFACE Snappy::snappy) + list (APPEND ORC_SYSTEM_DEPENDENCIES Snappy) + list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") + elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") +@@ -168,13 +169,13 @@ elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") + elseif (NOT "${SNAPPY_HOME}" STREQUAL "") + find_package (Snappy REQUIRED) + if (ORC_PREFER_STATIC_SNAPPY AND SNAPPY_STATIC_LIB) +- add_resolved_library (orc_snappy ${SNAPPY_STATIC_LIB} ${SNAPPY_INCLUDE_DIR}) ++ orc_add_resolved_library (orc_snappy ${SNAPPY_STATIC_LIB} ${SNAPPY_INCLUDE_DIR}) + else () +- add_resolved_library (orc_snappy ${SNAPPY_LIBRARY} ${SNAPPY_INCLUDE_DIR}) ++ orc_add_resolved_library (orc_snappy ${SNAPPY_LIBRARY} ${SNAPPY_INCLUDE_DIR}) + endif () + list (APPEND ORC_SYSTEM_DEPENDENCIES Snappy) + list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") +- provide_find_module (Snappy) ++ orc_provide_find_module (Snappy) + else () + set(SNAPPY_HOME "${THIRDPARTY_DIR}/snappy_ep-install") + set(SNAPPY_INCLUDE_DIR "${SNAPPY_HOME}/include") +@@ -194,7 +195,7 @@ else () + ${THIRDPARTY_LOG_OPTIONS} + BUILD_BYPRODUCTS "${SNAPPY_STATIC_LIB}") + +- add_built_library (snappy_ep orc_snappy ${SNAPPY_STATIC_LIB} ${SNAPPY_INCLUDE_DIR}) ++ orc_add_built_library (snappy_ep orc_snappy ${SNAPPY_STATIC_LIB} ${SNAPPY_INCLUDE_DIR}) + + list (APPEND ORC_VENDOR_DEPENDENCIES "orc::vendored_snappy|${SNAPPY_STATIC_LIB_NAME}") + list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") +@@ -207,7 +208,8 @@ add_library (orc::snappy ALIAS orc_snappy) + + if (ORC_PACKAGE_KIND STREQUAL "conan") + find_package (ZLIB REQUIRED CONFIG) +- add_resolved_library (orc_zlib ${ZLIB_LIBRARIES} ${ZLIB_INCLUDE_DIR}) ++ add_library (orc_zlib INTERFACE) ++ target_link_libraries(orc_zlib INTERFACE ZLIB::ZLIB) + list (APPEND ORC_SYSTEM_DEPENDENCIES ZLIB) + list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") + elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") +@@ -219,13 +221,13 @@ elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") + elseif (NOT "${ZLIB_HOME}" STREQUAL "") + find_package (ZLIB REQUIRED) + if (ORC_PREFER_STATIC_ZLIB AND ZLIB_STATIC_LIB) +- add_resolved_library (orc_zlib ${ZLIB_STATIC_LIB} ${ZLIB_INCLUDE_DIR}) ++ orc_add_resolved_library (orc_zlib ${ZLIB_STATIC_LIB} ${ZLIB_INCLUDE_DIR}) + else () +- add_resolved_library (orc_zlib ${ZLIB_LIBRARY} ${ZLIB_INCLUDE_DIR}) ++ orc_add_resolved_library (orc_zlib ${ZLIB_LIBRARY} ${ZLIB_INCLUDE_DIR}) + endif () + list (APPEND ORC_SYSTEM_DEPENDENCIES ZLIB) + list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") +- provide_find_module (ZLIB) ++ orc_provide_find_module (ZLIB) + else () + set(ZLIB_PREFIX "${THIRDPARTY_DIR}/zlib_ep-install") + set(ZLIB_INCLUDE_DIR "${ZLIB_PREFIX}/include") +@@ -252,7 +254,7 @@ else () + ${THIRDPARTY_LOG_OPTIONS} + BUILD_BYPRODUCTS "${ZLIB_STATIC_LIB}") + +- add_built_library (zlib_ep orc_zlib ${ZLIB_STATIC_LIB} ${ZLIB_INCLUDE_DIR}) ++ orc_add_built_library (zlib_ep orc_zlib ${ZLIB_STATIC_LIB} ${ZLIB_INCLUDE_DIR}) + + list (APPEND ORC_VENDOR_DEPENDENCIES "orc::vendored_zlib|${ZLIB_STATIC_LIB_NAME}") + list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") +@@ -265,7 +267,11 @@ add_library (orc::zlib ALIAS orc_zlib) + + if (ORC_PACKAGE_KIND STREQUAL "conan") + find_package (ZSTD REQUIRED CONFIG) +- add_resolved_library (orc_zstd ${zstd_LIBRARIES} ${zstd_INCLUDE_DIR}) ++ add_library (orc_zstd INTERFACE) ++ target_link_libraries (orc_zstd INTERFACE ++ $ ++ $ ++ ) + list (APPEND ORC_SYSTEM_DEPENDENCIES ZSTD) + list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$,zstd::libzstd_shared,zstd::libzstd_static>>") + elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") +@@ -277,14 +283,14 @@ elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") + elseif (NOT "${ZSTD_HOME}" STREQUAL "") + find_package (ZSTD REQUIRED) + if (ORC_PREFER_STATIC_ZSTD AND ZSTD_STATIC_LIB) +- add_resolved_library (orc_zstd ${ZSTD_STATIC_LIB} ${ZSTD_INCLUDE_DIR}) ++ orc_add_resolved_library (orc_zstd ${ZSTD_STATIC_LIB} ${ZSTD_INCLUDE_DIR}) + list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") + else () +- add_resolved_library (orc_zstd ${ZSTD_LIBRARY} ${ZSTD_INCLUDE_DIR}) ++ orc_add_resolved_library (orc_zstd ${ZSTD_LIBRARY} ${ZSTD_INCLUDE_DIR}) + list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$,zstd::libzstd_shared,zstd::libzstd_static>>") + endif () + list (APPEND ORC_SYSTEM_DEPENDENCIES ZSTD) +- provide_find_module (ZSTD) ++ orc_provide_find_module (ZSTD) + else () + set(ZSTD_HOME "${THIRDPARTY_DIR}/zstd_ep-install") + set(ZSTD_INCLUDE_DIR "${ZSTD_HOME}/include") +@@ -318,7 +324,7 @@ else () + ${THIRDPARTY_LOG_OPTIONS} + BUILD_BYPRODUCTS ${ZSTD_STATIC_LIB}) + +- add_built_library (zstd_ep orc_zstd ${ZSTD_STATIC_LIB} ${ZSTD_INCLUDE_DIR}) ++ orc_add_built_library (zstd_ep orc_zstd ${ZSTD_STATIC_LIB} ${ZSTD_INCLUDE_DIR}) + + list (APPEND ORC_VENDOR_DEPENDENCIES "orc::vendored_zstd|${ZSTD_STATIC_LIB_NAME}") + list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") +@@ -330,9 +336,13 @@ add_library (orc::zstd ALIAS orc_zstd) + # LZ4 + if (ORC_PACKAGE_KIND STREQUAL "conan") + find_package (LZ4 REQUIRED CONFIG) +- add_resolved_library (orc_lz4 ${lz4_LIBRARIES} ${lz4_INCLUDE_DIR}) ++ add_library (orc_lz4 INTERFACE) ++ target_link_libraries (orc_lz4 INTERFACE ++ $ ++ $ ++ ) + list (APPEND ORC_SYSTEM_DEPENDENCIES LZ4) +- list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") ++ list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$,LZ4::lz4_shared,LZ4::lz4_static>>") + elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") + find_package(lz4 CONFIG REQUIRED) + add_library (orc_lz4 INTERFACE IMPORTED) +@@ -342,13 +352,13 @@ elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") + elseif (NOT "${LZ4_HOME}" STREQUAL "") + find_package (LZ4 REQUIRED) + if (ORC_PREFER_STATIC_LZ4 AND LZ4_STATIC_LIB) +- add_resolved_library (orc_lz4 ${LZ4_STATIC_LIB} ${LZ4_INCLUDE_DIR}) ++ orc_add_resolved_library (orc_lz4 ${LZ4_STATIC_LIB} ${LZ4_INCLUDE_DIR}) + else () +- add_resolved_library (orc_lz4 ${LZ4_LIBRARY} ${LZ4_INCLUDE_DIR}) ++ orc_add_resolved_library (orc_lz4 ${LZ4_LIBRARY} ${LZ4_INCLUDE_DIR}) + endif () + list (APPEND ORC_SYSTEM_DEPENDENCIES LZ4) + list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") +- provide_find_module (LZ4) ++ orc_provide_find_module (LZ4) + else () + set(LZ4_PREFIX "${THIRDPARTY_DIR}/lz4_ep-install") + set(LZ4_INCLUDE_DIR "${LZ4_PREFIX}/include") +@@ -375,7 +385,7 @@ else () + ${THIRDPARTY_LOG_OPTIONS} + BUILD_BYPRODUCTS ${LZ4_STATIC_LIB}) + +- add_built_library (lz4_ep orc_lz4 ${LZ4_STATIC_LIB} ${LZ4_INCLUDE_DIR}) ++ orc_add_built_library (lz4_ep orc_lz4 ${LZ4_STATIC_LIB} ${LZ4_INCLUDE_DIR}) + + list (APPEND ORC_VENDOR_DEPENDENCIES "orc::vendored_lz4|${LZ4_STATIC_LIB_NAME}") + list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") +@@ -491,9 +501,10 @@ endif () + + if (ORC_PACKAGE_KIND STREQUAL "conan") + find_package (Protobuf REQUIRED CONFIG) +- add_resolved_library (orc_protobuf ${protobuf_LIBRARIES} ${protobuf_INCLUDE_DIR}) ++ add_library (orc_protobuf INTERFACE) ++ target_link_libraries(orc_protobuf INTERFACE protobuf::protobuf) + list (APPEND ORC_SYSTEM_DEPENDENCIES Protobuf) +- list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") ++ list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") + elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") + find_package(Protobuf CONFIG REQUIRED) + add_library (orc_protobuf INTERFACE IMPORTED) +@@ -505,20 +516,20 @@ elseif (NOT "${PROTOBUF_HOME}" STREQUAL "") + find_package (Protobuf REQUIRED) + + if (ORC_PREFER_STATIC_PROTOBUF AND PROTOBUF_STATIC_LIB) +- add_resolved_library (orc_protobuf ${PROTOBUF_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) ++ orc_add_resolved_library (orc_protobuf ${PROTOBUF_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) + else () +- add_resolved_library (orc_protobuf ${PROTOBUF_LIBRARY} ${PROTOBUF_INCLUDE_DIR}) ++ orc_add_resolved_library (orc_protobuf ${PROTOBUF_LIBRARY} ${PROTOBUF_INCLUDE_DIR}) + endif () + + if (ORC_PREFER_STATIC_PROTOBUF AND PROTOC_STATIC_LIB) +- add_resolved_library (orc_protoc ${PROTOC_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) ++ orc_add_resolved_library (orc_protoc ${PROTOC_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) + else () +- add_resolved_library (orc_protoc ${PROTOC_LIBRARY} ${PROTOBUF_INCLUDE_DIR}) ++ orc_add_resolved_library (orc_protoc ${PROTOC_LIBRARY} ${PROTOBUF_INCLUDE_DIR}) + endif () + + list (APPEND ORC_SYSTEM_DEPENDENCIES Protobuf) + list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") +- provide_find_module (Protobuf) ++ orc_provide_find_module (Protobuf) + else () + set(PROTOBUF_PREFIX "${THIRDPARTY_DIR}/protobuf_ep-install") + set(PROTOBUF_INCLUDE_DIR "${PROTOBUF_PREFIX}/include") +@@ -556,8 +567,8 @@ else () + ${THIRDPARTY_LOG_OPTIONS} + BUILD_BYPRODUCTS "${PROTOBUF_STATIC_LIB}" "${PROTOC_STATIC_LIB}") + +- add_built_library (protobuf_ep orc_protobuf ${PROTOBUF_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) +- add_built_library (protobuf_ep orc_protoc ${PROTOC_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) ++ orc_add_built_library (protobuf_ep orc_protobuf ${PROTOBUF_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) ++ orc_add_built_library (protobuf_ep orc_protoc ${PROTOC_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) + + list (APPEND ORC_VENDOR_DEPENDENCIES "orc::vendored_protobuf|${PROTOBUF_STATIC_LIB_NAME}") + list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") +@@ -583,7 +594,7 @@ if(BUILD_LIBHDFSPP) + set (LIBHDFSPP_INCLUDE_DIR "${LIBHDFSPP_PREFIX}/include") + set (LIBHDFSPP_STATIC_LIB_NAME hdfspp_static) + set (LIBHDFSPP_STATIC_LIB "${LIBHDFSPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${LIBHDFSPP_STATIC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}") +- set (LIBHDFSPP_SRC_URL "${CMAKE_SOURCE_DIR}/c++/libs/libhdfspp/libhdfspp.tar.gz") ++ set (LIBHDFSPP_SRC_URL "${PROJECT_SOURCE_DIR}/c++/libs/libhdfspp/libhdfspp.tar.gz") + set (LIBHDFSPP_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} + -DCMAKE_INSTALL_PREFIX=${LIBHDFSPP_PREFIX} + -DPROTOBUF_INCLUDE_DIR=${PROTOBUF_INCLUDE_DIR} +@@ -610,7 +621,7 @@ if(BUILD_LIBHDFSPP) + BUILD_BYPRODUCTS "${LIBHDFSPP_STATIC_LIB}" + CMAKE_ARGS ${LIBHDFSPP_CMAKE_ARGS}) + +- add_built_library(libhdfspp_ep libhdfspp ${LIBHDFSPP_STATIC_LIB} ${LIBHDFSPP_INCLUDE_DIR}) ++ orc_add_built_library(libhdfspp_ep libhdfspp ${LIBHDFSPP_STATIC_LIB} ${LIBHDFSPP_INCLUDE_DIR}) + + set (LIBHDFSPP_LIBRARIES + libhdfspp +diff --git a/docker/README.md b/docker/README.md +index 1c4437aa0..b89fed84a 100644 +--- a/docker/README.md ++++ b/docker/README.md +@@ -4,6 +4,7 @@ + * Fedora 37 + * Ubuntu 22 and 24 + * Oracle Linux 9 ++* Amazon Linux 2023 + + ## Pre-built Images + +diff --git a/docker/amazonlinux23/Dockerfile b/docker/amazonlinux23/Dockerfile +new file mode 100644 +index 000000000..806a58f89 +--- /dev/null ++++ b/docker/amazonlinux23/Dockerfile +@@ -0,0 +1,57 @@ ++# 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. ++ ++# ORC compile for Amazon Linux 2023 ++# ++ ++FROM amazonlinux:2023 ++LABEL org.opencontainers.image.authors="Apache ORC project " ++LABEL org.opencontainers.image.licenses="Apache-2.0" ++LABEL org.opencontainers.image.ref.name="Apache ORC on Amazon Linux 2023" ++LABEL org.opencontainers.image.version="" ++ ++RUN yum check-update || true ++RUN yum install -y \ ++ cmake3 \ ++ curl-devel \ ++ cyrus-sasl-devel \ ++ expat-devel \ ++ gcc \ ++ gcc-c++ \ ++ gettext-devel \ ++ git \ ++ libtool \ ++ make \ ++ openssl-devel \ ++ tar \ ++ wget \ ++ which \ ++ zlib-devel \ ++ java-17-amazon-corretto-devel ++ ++ENV TZ=America/Los_Angeles ++WORKDIR /root ++VOLUME /root/.m2/repository ++ ++CMD if [ ! -d orc ]; then \ ++ echo "No volume provided, building from apache main."; \ ++ echo "Pass '-v`pwd`:/root/orc' to docker run to build local source."; \ ++ git clone https://github.com/apache/orc.git -b main; \ ++ fi && \ ++ mkdir build && \ ++ cd build && \ ++ cmake ../orc && \ ++ make package test-out +diff --git a/docker/os-list.txt b/docker/os-list.txt +index 3966df324..e4a288bd1 100644 +--- a/docker/os-list.txt ++++ b/docker/os-list.txt +@@ -1,7 +1,7 @@ + debian11 + debian12 +-ubuntu20 + ubuntu22 + ubuntu24 + fedora37 + oraclelinux9 ++amazonlinux23 +diff --git a/java/.mvn/jvm.config b/java/.mvn/jvm.config +new file mode 100644 +index 000000000..81b88d817 +--- /dev/null ++++ b/java/.mvn/jvm.config +@@ -0,0 +1 @@ ++--enable-native-access=ALL-UNNAMED +diff --git a/java/bench/core/pom.xml b/java/bench/core/pom.xml +index fe4d30fb3..cd623bee7 100644 +--- a/java/bench/core/pom.xml ++++ b/java/bench/core/pom.xml +@@ -17,7 +17,7 @@ + + org.apache.orc + orc-benchmarks +- 2.1.0 ++ 2.1.1-SNAPSHOT + .. + + +diff --git a/java/bench/hive/pom.xml b/java/bench/hive/pom.xml +index 237d5c53a..6fe561a3a 100644 +--- a/java/bench/hive/pom.xml ++++ b/java/bench/hive/pom.xml +@@ -17,7 +17,7 @@ + + org.apache.orc + orc-benchmarks +- 2.1.0 ++ 2.1.1-SNAPSHOT + .. + + +diff --git a/java/bench/pom.xml b/java/bench/pom.xml +index 3258e6034..954fda006 100644 +--- a/java/bench/pom.xml ++++ b/java/bench/pom.xml +@@ -17,7 +17,7 @@ + + org.apache.orc + orc +- 2.1.0 ++ 2.1.1-SNAPSHOT + ../pom.xml + + +@@ -34,7 +34,7 @@ + + + 1.12.0 +- 4.0.0 ++ 4.0.1 + 1.37 + 5.11.4 + ${project.version} +diff --git a/java/bench/spark/pom.xml b/java/bench/spark/pom.xml +index c1c8ff237..8e3f85709 100644 +--- a/java/bench/spark/pom.xml ++++ b/java/bench/spark/pom.xml +@@ -17,7 +17,7 @@ + + org.apache.orc + orc-benchmarks +- 2.1.0 ++ 2.1.1-SNAPSHOT + .. + + +diff --git a/java/core/pom.xml b/java/core/pom.xml +index afc56b5a6..fb122b2d8 100644 +--- a/java/core/pom.xml ++++ b/java/core/pom.xml +@@ -17,7 +17,7 @@ + + org.apache.orc + orc +- 2.1.0 ++ 2.1.1-SNAPSHOT + ../pom.xml + + +diff --git a/java/examples/pom.xml b/java/examples/pom.xml +index 3df097a0e..a36ccb86d 100644 +--- a/java/examples/pom.xml ++++ b/java/examples/pom.xml +@@ -17,7 +17,7 @@ + + org.apache.orc + orc +- 2.1.0 ++ 2.1.1-SNAPSHOT + ../pom.xml + + +diff --git a/java/mapreduce/pom.xml b/java/mapreduce/pom.xml +index db5c1177c..124be8583 100644 +--- a/java/mapreduce/pom.xml ++++ b/java/mapreduce/pom.xml +@@ -17,7 +17,7 @@ + + org.apache.orc + orc +- 2.1.0 ++ 2.1.1-SNAPSHOT + ../pom.xml + + +diff --git a/java/pom.xml b/java/pom.xml +index 2ebf7e663..9d1e9170a 100644 +--- a/java/pom.xml ++++ b/java/pom.xml +@@ -21,7 +21,7 @@ + + org.apache.orc + orc +- 2.1.0 ++ 2.1.1-SNAPSHOT + pom + + Apache ORC +@@ -60,7 +60,7 @@ + + + +- 1.79 ++ 1.80 + 1.18.0 + 10.21.1 + ${project.basedir}/../../examples +@@ -78,13 +78,13 @@ + 5.10.0 + 1.0.0 + +- 2025-01-05T19:42:46Z ++ 2025-01-05T19:44:54Z + 3.25.5 + 2.0.16 + 2.8.1 +- 3.0.0-M5 ++ 3.5.2 + ${project.build.directory}/testing-tmp +- 1.5.6-8 ++ 1.5.6-10 + + + +@@ -98,7 +98,7 @@ + + org.apache.orc + orc-shims +- 2.1.0 ++ 2.1.1-SNAPSHOT + + + org.apache.hadoop +@@ -113,17 +113,17 @@ + + org.apache.orc + orc-core +- 2.1.0 ++ 2.1.1-SNAPSHOT + + + org.apache.orc + orc-mapreduce +- 2.1.0 ++ 2.1.1-SNAPSHOT + + + org.apache.orc + orc-tools +- 2.1.0 ++ 2.1.1-SNAPSHOT + + + +@@ -162,11 +162,6 @@ + zstd-jni + ${zstd-jni.version} + +- +- org.apache.commons +- commons-csv +- 1.12.0 +- + + org.apache.hadoop + hadoop-client-api +@@ -257,13 +252,13 @@ + + net.bytebuddy + byte-buddy +- 1.14.11 ++ 1.17.0 + test + + + net.bytebuddy + byte-buddy-agent +- 1.14.11 ++ 1.17.0 + test + + +@@ -395,7 +390,7 @@ + + com.github.spotbugs + spotbugs-maven-plugin +- 4.8.6.6 ++ 4.9.1.0 + + spotbugs-include.xml + spotbugs-exclude.xml +@@ -436,6 +431,7 @@ + .idea/** + **/*.iml + **/dependency-reduced-pom.xml ++ .mvn/jvm.config + + + +diff --git a/java/shims/pom.xml b/java/shims/pom.xml +index 270e0bb21..0540263ea 100644 +--- a/java/shims/pom.xml ++++ b/java/shims/pom.xml +@@ -17,7 +17,7 @@ + + org.apache.orc + orc +- 2.1.0 ++ 2.1.1-SNAPSHOT + ../pom.xml + + +diff --git a/java/tools/pom.xml b/java/tools/pom.xml +index 21e221f9c..661a135a6 100644 +--- a/java/tools/pom.xml ++++ b/java/tools/pom.xml +@@ -17,7 +17,7 @@ + + org.apache.orc + orc +- 2.1.0 ++ 2.1.1-SNAPSHOT + ../pom.xml + + +diff --git a/java/tools/src/java/org/apache/orc/tools/PrintData.java b/java/tools/src/java/org/apache/orc/tools/PrintData.java +index 37a720942..6c7c18ba1 100644 +--- a/java/tools/src/java/org/apache/orc/tools/PrintData.java ++++ b/java/tools/src/java/org/apache/orc/tools/PrintData.java +@@ -238,6 +238,7 @@ public class PrintData { + .build(); + Option linesOpt = Option.builder("n").longOpt("lines") + .argName("LINES") ++ .desc("Sets lines of data to be printed") + .hasArg() + .build(); + +diff --git a/java/tools/src/test/org/apache/orc/tools/TesScanData.java b/java/tools/src/test/org/apache/orc/tools/TestScanData.java +similarity index 94% +rename from java/tools/src/test/org/apache/orc/tools/TesScanData.java +rename to java/tools/src/test/org/apache/orc/tools/TestScanData.java +index df73abc90..e9042a403 100644 +--- a/java/tools/src/test/org/apache/orc/tools/TesScanData.java ++++ b/java/tools/src/test/org/apache/orc/tools/TestScanData.java +@@ -36,7 +36,7 @@ import java.nio.charset.StandardCharsets; + + import static org.junit.jupiter.api.Assertions.assertTrue; + +-public class TesScanData { ++public class TestScanData { + private Path workDir = new Path(System.getProperty("test.tmp.dir")); + private Configuration conf; + private FileSystem fs; +@@ -47,7 +47,7 @@ public class TesScanData { + conf = new Configuration(); + fs = FileSystem.getLocal(conf); + fs.setWorkingDirectory(workDir); +- testFilePath = new Path("TesScanData.testScan.orc"); ++ testFilePath = new Path("TestScanData.testScan.orc"); + fs.delete(testFilePath, false); + } + +@@ -86,6 +86,6 @@ public class TesScanData { + assertTrue(output.contains("{\"category\": \"struct\", \"id\": 0, \"max\": 2, \"fields\": [\n" + + "{ \"x\": {\"category\": \"int\", \"id\": 1, \"max\": 1}},\n" + + "{ \"y\": {\"category\": \"string\", \"id\": 2, \"max\": 2}}]}")); +- assertTrue(output.contains("File: TesScanData.testScan.orc, bad batches: 0, rows: 10000/10000")); ++ assertTrue(output.contains("File: TestScanData.testScan.orc, bad batches: 0, rows: 10000/10000")); + } + } +diff --git a/site/_includes/top.html b/site/_includes/top.html +index 57cb89c7c..69e314548 100644 +--- a/site/_includes/top.html ++++ b/site/_includes/top.html +@@ -12,4 +12,21 @@ + + + ++ ++ ++ + +diff --git a/tools/src/CMakeLists.txt b/tools/src/CMakeLists.txt +index 32d6eee3d..d247f900e 100644 +--- a/tools/src/CMakeLists.txt ++++ b/tools/src/CMakeLists.txt +@@ -38,10 +38,10 @@ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g ${CXX17_FLAGS} ${WARN_FLAGS}") + + add_library (orc-tools-common INTERFACE) + target_include_directories (orc-tools-common INTERFACE +- ${CMAKE_SOURCE_DIR}/c++/include +- ${CMAKE_BINARY_DIR}/c++/include +- ${CMAKE_SOURCE_DIR}/c++/src +- ${CMAKE_BINARY_DIR}/c++/src ++ ${PROJECT_BINARY_DIR}/c++/include ++ ${PROJECT_BINARY_DIR}/c++/src ++ ${PROJECT_SOURCE_DIR}/c++/include ++ ${PROJECT_SOURCE_DIR}/c++/src + ) + target_link_libraries (orc-tools-common INTERFACE + orc +diff --git a/tools/test/CMakeLists.txt b/tools/test/CMakeLists.txt +index 6e0c6b20b..ed67b4007 100644 +--- a/tools/test/CMakeLists.txt ++++ b/tools/test/CMakeLists.txt +@@ -38,11 +38,11 @@ target_link_libraries (tool-test + ) + + target_include_directories(tool-test PRIVATE +- ${CMAKE_SOURCE_DIR}/c++/include +- ${CMAKE_SOURCE_DIR}/c++/src +- ${CMAKE_SOURCE_DIR}/tools-c++/src +- ${CMAKE_BINARY_DIR}/c++/include +- ${CMAKE_BINARY_DIR}/c++/src ++ ${PROJECT_BINARY_DIR}/c++/include ++ ${PROJECT_BINARY_DIR}/c++/src ++ ${PROJECT_SOURCE_DIR}/c++/include ++ ${PROJECT_SOURCE_DIR}/c++/src ++ ${PROJECT_SOURCE_DIR}/tools-c++/src + ) + + add_dependencies(tool-test tool-set) diff --git a/recipe/patches/0002-Allow-user-to-override-path-to-protoc.patch b/recipe/patches/0002-Allow-user-to-override-path-to-protoc.patch index d23278c..27e88ac 100644 --- a/recipe/patches/0002-Allow-user-to-override-path-to-protoc.patch +++ b/recipe/patches/0002-Allow-user-to-override-path-to-protoc.patch @@ -1,7 +1,7 @@ -From 86e901e9e6a035b4bd01a22bd8a48f3dd4443b8a Mon Sep 17 00:00:00 2001 +From 9c9e531f9cd6c51614410b6664d784ce379847b6 Mon Sep 17 00:00:00 2001 From: Nehal J Wani Date: Sat, 1 Feb 2025 18:53:55 +0000 -Subject: [PATCH 2/3] Allow user to override /path/to/protoc +Subject: [PATCH 2/2] Allow user to override /path/to/protoc Useful for cross-compilation --- diff --git a/recipe/patches/0003-ORC-1833-C-Fix-CMake-script-to-be-used-inside-anothe.patch b/recipe/patches/0003-ORC-1833-C-Fix-CMake-script-to-be-used-inside-anothe.patch deleted file mode 100644 index 1a1036b..0000000 --- a/recipe/patches/0003-ORC-1833-C-Fix-CMake-script-to-be-used-inside-anothe.patch +++ /dev/null @@ -1,456 +0,0 @@ -From f33bfc050c24a6a78a4e8091370cbaa352391c9d Mon Sep 17 00:00:00 2001 -From: Gang Wu -Date: Mon, 13 Jan 2025 21:55:39 +0800 -Subject: [PATCH 3/3] ORC-1833: [C++] Fix CMake script to be used inside - another project - -### What changes were proposed in this pull request? - -The change to add support for exporting CMake config and target has introduced some minor issues when the ORC C++ library is used inside a larger CMake project. Mainly there are three issues: - -- We should prepend (not append) our CMake modules so we always use our own modules when there are naming conflict. -- Do not use CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR because they are tied to the root project and it is no longer ORC project when we are inside another project. -- Add orc_ prefix to our CMake functions to avoid potential conflict. - -See: https://github.com/apache/arrow/pull/45226 - -### Why are the changes needed? - -We had a problem with upgrading Apache ORC to 2.1.0 in the Apache Arrow. See: https://github.com/apache/arrow/pull/45226 - -### How was this patch tested? - -- Pass all CIs. -- Manually integrated it with Apache Arrow. - -### Was this patch authored or co-authored using generative AI tooling? - -No. - -Closes #2108 from wgtmac/fix_cmake. - -Authored-by: Gang Wu -Signed-off-by: Gang Wu ---- - CMakeLists.txt | 12 +++- - c++/src/CMakeLists.txt | 6 +- - c++/test/CMakeLists.txt | 6 +- - cmake_modules/CheckFormat.cmake | 10 ++-- - cmake_modules/ThirdpartyToolchain.cmake | 76 ++++++++++++------------- - tools/src/CMakeLists.txt | 8 +-- - tools/test/CMakeLists.txt | 10 ++-- - 7 files changed, 67 insertions(+), 61 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 1f8931508..e8f894657 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -30,8 +30,8 @@ SET(CPACK_PACKAGE_VERSION_MAJOR "2") - SET(CPACK_PACKAGE_VERSION_MINOR "1") - SET(CPACK_PACKAGE_VERSION_PATCH "0") - SET(ORC_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") --set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules") - set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # For clang-tidy. -+list(PREPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules") - - option (BUILD_JAVA - "Include ORC Java library in the build process" -@@ -85,6 +85,10 @@ option(ORC_PACKAGE_KIND - "Arbitrary string that identifies the kind of package" - "") - -+option(ORC_ENABLE_CLANG_TOOLS -+ "Enable Clang tools" -+ ON) -+ - # Make sure that a build type is selected - if (NOT CMAKE_BUILD_TYPE) - message(STATUS "No build type selected, default to ReleaseWithDebugInfo") -@@ -195,7 +199,7 @@ if (BUILD_ENABLE_AVX512 AND NOT APPLE) - INCLUDE(ConfigSimdLevel) - endif () - --set (EXAMPLE_DIRECTORY ${CMAKE_SOURCE_DIR}/examples) -+set (EXAMPLE_DIRECTORY ${PROJECT_SOURCE_DIR}/examples) - - add_subdirectory(c++) - -@@ -226,4 +230,6 @@ if (BUILD_CPP_TESTS) - endif () - endif () - --INCLUDE(CheckFormat) -+if (ORC_ENABLE_CLANG_TOOLS) -+ INCLUDE(CheckFormat) -+endif () -diff --git a/c++/src/CMakeLists.txt b/c++/src/CMakeLists.txt -index 175c032ca..0c5b39c53 100644 ---- a/c++/src/CMakeLists.txt -+++ b/c++/src/CMakeLists.txt -@@ -218,11 +218,11 @@ target_include_directories (orc - INTERFACE - $ - PUBLIC -- $ -- $ -+ $ -+ $ - PRIVATE -- ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_BINARY_DIR} -+ ${CMAKE_CURRENT_SOURCE_DIR} - ${LIBHDFSPP_INCLUDE_DIR} - ) - -diff --git a/c++/test/CMakeLists.txt b/c++/test/CMakeLists.txt -index 6c5b26c4f..f7328abb3 100644 ---- a/c++/test/CMakeLists.txt -+++ b/c++/test/CMakeLists.txt -@@ -19,9 +19,9 @@ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX17_FLAGS} ${WARN_FLAGS}") - - add_library (orc-test-include INTERFACE) - target_include_directories (orc-test-include INTERFACE -- ${CMAKE_SOURCE_DIR}/c++/src -- ${CMAKE_BINARY_DIR}/c++/include -- ${CMAKE_BINARY_DIR}/c++/src -+ ${PROJECT_BINARY_DIR}/c++/include -+ ${PROJECT_BINARY_DIR}/c++/src -+ ${PROJECT_SOURCE_DIR}/c++/src - ) - - if(BUILD_ENABLE_AVX512) -diff --git a/cmake_modules/CheckFormat.cmake b/cmake_modules/CheckFormat.cmake -index 1aff5d765..17017da13 100644 ---- a/cmake_modules/CheckFormat.cmake -+++ b/cmake_modules/CheckFormat.cmake -@@ -26,7 +26,7 @@ set(Python3_FIND_FRAMEWORK "LAST") - find_package(Python3) - set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE}) - --set(BUILD_SUPPORT_DIR "${CMAKE_SOURCE_DIR}/c++/build-support") -+set(BUILD_SUPPORT_DIR "${PROJECT_SOURCE_DIR}/c++/build-support") - - find_program(CLANG_FORMAT_BIN - NAMES clang-format-13 -@@ -75,21 +75,21 @@ add_custom_target(check-clang-tidy - ${PYTHON_EXECUTABLE} - ${BUILD_SUPPORT_DIR}/run_clang_tidy.py # run LLVM's clang-tidy script - -clang-tidy-binary ${CLANG_TIDY_BIN} # using our clang-tidy binary -- -p ${CMAKE_BINARY_DIR} # using cmake's generated compile commands -+ -p ${PROJECT_BINARY_DIR} # using cmake's generated compile commands - ) - - add_custom_target(fix-clang-tidy - ${PYTHON_EXECUTABLE} - ${BUILD_SUPPORT_DIR}/run_clang_tidy.py # run LLVM's clang-tidy script - -clang-tidy-binary ${CLANG_TIDY_BIN} # using our clang-tidy binary -- -p ${CMAKE_BINARY_DIR} # using cmake's generated compile commands -+ -p ${PROJECT_BINARY_DIR} # using cmake's generated compile commands - -clang-apply-replacements-binary ${CLANG_APPLY_REPLACEMENTS_BIN} # using our clang-apply-replacements binary - -fix # apply suggested changes generated by clang-tidy - ) - - string(CONCAT ORC_FORMAT_DIRS -- "${CMAKE_SOURCE_DIR}/c++," -- "${CMAKE_SOURCE_DIR}/tools," -+ "${PROJECT_SOURCE_DIR}/c++," -+ "${PROJECT_SOURCE_DIR}/tools," - ) - - add_custom_target(format -diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake -index 017e6c5b8..fa5a1c0e1 100644 ---- a/cmake_modules/ThirdpartyToolchain.cmake -+++ b/cmake_modules/ThirdpartyToolchain.cmake -@@ -37,7 +37,7 @@ option(ORC_PREFER_STATIC_GMOCK "Prefer static gmock library, if available" - # zstd requires us to add the threads - FIND_PACKAGE(Threads REQUIRED) - --set(THIRDPARTY_DIR "${CMAKE_BINARY_DIR}/c++/libs/thirdparty") -+set(THIRDPARTY_DIR "${PROJECT_BINARY_DIR}/c++/libs/thirdparty") - set(THIRDPARTY_LOG_OPTIONS LOG_CONFIGURE 1 - LOG_BUILD 1 - LOG_INSTALL 1 -@@ -103,13 +103,13 @@ endif () - - # ---------------------------------------------------------------------- - # Macros for adding third-party libraries --macro (add_resolved_library target_name link_lib include_dir) -- add_library (${target_name} INTERFACE IMPORTED) -+macro (orc_add_resolved_library target_name link_lib include_dir) -+ add_library (${target_name} INTERFACE IMPORTED GLOBAL) - target_link_libraries (${target_name} INTERFACE ${link_lib}) - target_include_directories (${target_name} SYSTEM INTERFACE ${include_dir}) - endmacro () - --macro (add_built_library external_project_name target_name link_lib include_dir) -+macro (orc_add_built_library external_project_name target_name link_lib include_dir) - file (MAKE_DIRECTORY "${include_dir}") - - add_library (${target_name} STATIC IMPORTED) -@@ -122,16 +122,16 @@ macro (add_built_library external_project_name target_name link_lib include_dir) - endif () - endmacro () - --function(provide_cmake_module MODULE_NAME) -- set(module "${CMAKE_SOURCE_DIR}/cmake_modules/${MODULE_NAME}.cmake") -+function(orc_provide_cmake_module MODULE_NAME) -+ set(module "${PROJECT_SOURCE_DIR}/cmake_modules/${MODULE_NAME}.cmake") - if(EXISTS "${module}") - message(STATUS "Providing CMake module for ${MODULE_NAME} as part of CMake package") - install(FILES "${module}" DESTINATION "${ORC_INSTALL_CMAKE_DIR}") - endif() - endfunction() - --function(provide_find_module PACKAGE_NAME) -- provide_cmake_module("Find${PACKAGE_NAME}") -+function(orc_provide_find_module PACKAGE_NAME) -+ orc_provide_cmake_module("Find${PACKAGE_NAME}") - endfunction() - - # ---------------------------------------------------------------------- -@@ -156,7 +156,7 @@ ExternalProject_Add (orc-format_ep - # Snappy - if (ORC_PACKAGE_KIND STREQUAL "conan") - find_package (Snappy REQUIRED CONFIG) -- add_resolved_library (orc_snappy ${Snappy_LIBRARIES} ${Snappy_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_snappy ${Snappy_LIBRARIES} ${Snappy_INCLUDE_DIR}) - list (APPEND ORC_SYSTEM_DEPENDENCIES Snappy) - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") - elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") -@@ -168,13 +168,13 @@ elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") - elseif (NOT "${SNAPPY_HOME}" STREQUAL "") - find_package (Snappy REQUIRED) - if (ORC_PREFER_STATIC_SNAPPY AND SNAPPY_STATIC_LIB) -- add_resolved_library (orc_snappy ${SNAPPY_STATIC_LIB} ${SNAPPY_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_snappy ${SNAPPY_STATIC_LIB} ${SNAPPY_INCLUDE_DIR}) - else () -- add_resolved_library (orc_snappy ${SNAPPY_LIBRARY} ${SNAPPY_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_snappy ${SNAPPY_LIBRARY} ${SNAPPY_INCLUDE_DIR}) - endif () - list (APPEND ORC_SYSTEM_DEPENDENCIES Snappy) - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") -- provide_find_module (Snappy) -+ orc_provide_find_module (Snappy) - else () - set(SNAPPY_HOME "${THIRDPARTY_DIR}/snappy_ep-install") - set(SNAPPY_INCLUDE_DIR "${SNAPPY_HOME}/include") -@@ -194,7 +194,7 @@ else () - ${THIRDPARTY_LOG_OPTIONS} - BUILD_BYPRODUCTS "${SNAPPY_STATIC_LIB}") - -- add_built_library (snappy_ep orc_snappy ${SNAPPY_STATIC_LIB} ${SNAPPY_INCLUDE_DIR}) -+ orc_add_built_library (snappy_ep orc_snappy ${SNAPPY_STATIC_LIB} ${SNAPPY_INCLUDE_DIR}) - - list (APPEND ORC_VENDOR_DEPENDENCIES "orc::vendored_snappy|${SNAPPY_STATIC_LIB_NAME}") - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") -@@ -207,7 +207,7 @@ add_library (orc::snappy ALIAS orc_snappy) - - if (ORC_PACKAGE_KIND STREQUAL "conan") - find_package (ZLIB REQUIRED CONFIG) -- add_resolved_library (orc_zlib ${ZLIB_LIBRARIES} ${ZLIB_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_zlib ${ZLIB_LIBRARIES} ${ZLIB_INCLUDE_DIR}) - list (APPEND ORC_SYSTEM_DEPENDENCIES ZLIB) - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") - elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") -@@ -219,13 +219,13 @@ elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") - elseif (NOT "${ZLIB_HOME}" STREQUAL "") - find_package (ZLIB REQUIRED) - if (ORC_PREFER_STATIC_ZLIB AND ZLIB_STATIC_LIB) -- add_resolved_library (orc_zlib ${ZLIB_STATIC_LIB} ${ZLIB_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_zlib ${ZLIB_STATIC_LIB} ${ZLIB_INCLUDE_DIR}) - else () -- add_resolved_library (orc_zlib ${ZLIB_LIBRARY} ${ZLIB_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_zlib ${ZLIB_LIBRARY} ${ZLIB_INCLUDE_DIR}) - endif () - list (APPEND ORC_SYSTEM_DEPENDENCIES ZLIB) - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") -- provide_find_module (ZLIB) -+ orc_provide_find_module (ZLIB) - else () - set(ZLIB_PREFIX "${THIRDPARTY_DIR}/zlib_ep-install") - set(ZLIB_INCLUDE_DIR "${ZLIB_PREFIX}/include") -@@ -252,7 +252,7 @@ else () - ${THIRDPARTY_LOG_OPTIONS} - BUILD_BYPRODUCTS "${ZLIB_STATIC_LIB}") - -- add_built_library (zlib_ep orc_zlib ${ZLIB_STATIC_LIB} ${ZLIB_INCLUDE_DIR}) -+ orc_add_built_library (zlib_ep orc_zlib ${ZLIB_STATIC_LIB} ${ZLIB_INCLUDE_DIR}) - - list (APPEND ORC_VENDOR_DEPENDENCIES "orc::vendored_zlib|${ZLIB_STATIC_LIB_NAME}") - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") -@@ -265,7 +265,7 @@ add_library (orc::zlib ALIAS orc_zlib) - - if (ORC_PACKAGE_KIND STREQUAL "conan") - find_package (ZSTD REQUIRED CONFIG) -- add_resolved_library (orc_zstd ${zstd_LIBRARIES} ${zstd_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_zstd ${zstd_LIBRARIES} ${zstd_INCLUDE_DIR}) - list (APPEND ORC_SYSTEM_DEPENDENCIES ZSTD) - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$,zstd::libzstd_shared,zstd::libzstd_static>>") - elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") -@@ -277,14 +277,14 @@ elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") - elseif (NOT "${ZSTD_HOME}" STREQUAL "") - find_package (ZSTD REQUIRED) - if (ORC_PREFER_STATIC_ZSTD AND ZSTD_STATIC_LIB) -- add_resolved_library (orc_zstd ${ZSTD_STATIC_LIB} ${ZSTD_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_zstd ${ZSTD_STATIC_LIB} ${ZSTD_INCLUDE_DIR}) - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") - else () -- add_resolved_library (orc_zstd ${ZSTD_LIBRARY} ${ZSTD_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_zstd ${ZSTD_LIBRARY} ${ZSTD_INCLUDE_DIR}) - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$,zstd::libzstd_shared,zstd::libzstd_static>>") - endif () - list (APPEND ORC_SYSTEM_DEPENDENCIES ZSTD) -- provide_find_module (ZSTD) -+ orc_provide_find_module (ZSTD) - else () - set(ZSTD_HOME "${THIRDPARTY_DIR}/zstd_ep-install") - set(ZSTD_INCLUDE_DIR "${ZSTD_HOME}/include") -@@ -318,7 +318,7 @@ else () - ${THIRDPARTY_LOG_OPTIONS} - BUILD_BYPRODUCTS ${ZSTD_STATIC_LIB}) - -- add_built_library (zstd_ep orc_zstd ${ZSTD_STATIC_LIB} ${ZSTD_INCLUDE_DIR}) -+ orc_add_built_library (zstd_ep orc_zstd ${ZSTD_STATIC_LIB} ${ZSTD_INCLUDE_DIR}) - - list (APPEND ORC_VENDOR_DEPENDENCIES "orc::vendored_zstd|${ZSTD_STATIC_LIB_NAME}") - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") -@@ -330,7 +330,7 @@ add_library (orc::zstd ALIAS orc_zstd) - # LZ4 - if (ORC_PACKAGE_KIND STREQUAL "conan") - find_package (LZ4 REQUIRED CONFIG) -- add_resolved_library (orc_lz4 ${lz4_LIBRARIES} ${lz4_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_lz4 ${lz4_LIBRARIES} ${lz4_INCLUDE_DIR}) - list (APPEND ORC_SYSTEM_DEPENDENCIES LZ4) - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") - elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") -@@ -342,13 +342,13 @@ elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") - elseif (NOT "${LZ4_HOME}" STREQUAL "") - find_package (LZ4 REQUIRED) - if (ORC_PREFER_STATIC_LZ4 AND LZ4_STATIC_LIB) -- add_resolved_library (orc_lz4 ${LZ4_STATIC_LIB} ${LZ4_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_lz4 ${LZ4_STATIC_LIB} ${LZ4_INCLUDE_DIR}) - else () -- add_resolved_library (orc_lz4 ${LZ4_LIBRARY} ${LZ4_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_lz4 ${LZ4_LIBRARY} ${LZ4_INCLUDE_DIR}) - endif () - list (APPEND ORC_SYSTEM_DEPENDENCIES LZ4) - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") -- provide_find_module (LZ4) -+ orc_provide_find_module (LZ4) - else () - set(LZ4_PREFIX "${THIRDPARTY_DIR}/lz4_ep-install") - set(LZ4_INCLUDE_DIR "${LZ4_PREFIX}/include") -@@ -375,7 +375,7 @@ else () - ${THIRDPARTY_LOG_OPTIONS} - BUILD_BYPRODUCTS ${LZ4_STATIC_LIB}) - -- add_built_library (lz4_ep orc_lz4 ${LZ4_STATIC_LIB} ${LZ4_INCLUDE_DIR}) -+ orc_add_built_library (lz4_ep orc_lz4 ${LZ4_STATIC_LIB} ${LZ4_INCLUDE_DIR}) - - list (APPEND ORC_VENDOR_DEPENDENCIES "orc::vendored_lz4|${LZ4_STATIC_LIB_NAME}") - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") -@@ -491,7 +491,7 @@ endif () - - if (ORC_PACKAGE_KIND STREQUAL "conan") - find_package (Protobuf REQUIRED CONFIG) -- add_resolved_library (orc_protobuf ${protobuf_LIBRARIES} ${protobuf_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_protobuf ${protobuf_LIBRARIES} ${protobuf_INCLUDE_DIR}) - list (APPEND ORC_SYSTEM_DEPENDENCIES Protobuf) - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") - elseif (ORC_PACKAGE_KIND STREQUAL "vcpkg") -@@ -505,20 +505,20 @@ elseif (NOT "${PROTOBUF_HOME}" STREQUAL "") - find_package (Protobuf REQUIRED) - - if (ORC_PREFER_STATIC_PROTOBUF AND PROTOBUF_STATIC_LIB) -- add_resolved_library (orc_protobuf ${PROTOBUF_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_protobuf ${PROTOBUF_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) - else () -- add_resolved_library (orc_protobuf ${PROTOBUF_LIBRARY} ${PROTOBUF_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_protobuf ${PROTOBUF_LIBRARY} ${PROTOBUF_INCLUDE_DIR}) - endif () - - if (ORC_PREFER_STATIC_PROTOBUF AND PROTOC_STATIC_LIB) -- add_resolved_library (orc_protoc ${PROTOC_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_protoc ${PROTOC_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) - else () -- add_resolved_library (orc_protoc ${PROTOC_LIBRARY} ${PROTOBUF_INCLUDE_DIR}) -+ orc_add_resolved_library (orc_protoc ${PROTOC_LIBRARY} ${PROTOBUF_INCLUDE_DIR}) - endif () - - list (APPEND ORC_SYSTEM_DEPENDENCIES Protobuf) - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") -- provide_find_module (Protobuf) -+ orc_provide_find_module (Protobuf) - else () - set(PROTOBUF_PREFIX "${THIRDPARTY_DIR}/protobuf_ep-install") - set(PROTOBUF_INCLUDE_DIR "${PROTOBUF_PREFIX}/include") -@@ -556,8 +556,8 @@ else () - ${THIRDPARTY_LOG_OPTIONS} - BUILD_BYPRODUCTS "${PROTOBUF_STATIC_LIB}" "${PROTOC_STATIC_LIB}") - -- add_built_library (protobuf_ep orc_protobuf ${PROTOBUF_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) -- add_built_library (protobuf_ep orc_protoc ${PROTOC_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) -+ orc_add_built_library (protobuf_ep orc_protobuf ${PROTOBUF_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) -+ orc_add_built_library (protobuf_ep orc_protoc ${PROTOC_STATIC_LIB} ${PROTOBUF_INCLUDE_DIR}) - - list (APPEND ORC_VENDOR_DEPENDENCIES "orc::vendored_protobuf|${PROTOBUF_STATIC_LIB_NAME}") - list (APPEND ORC_INSTALL_INTERFACE_TARGETS "$") -@@ -583,7 +583,7 @@ if(BUILD_LIBHDFSPP) - set (LIBHDFSPP_INCLUDE_DIR "${LIBHDFSPP_PREFIX}/include") - set (LIBHDFSPP_STATIC_LIB_NAME hdfspp_static) - set (LIBHDFSPP_STATIC_LIB "${LIBHDFSPP_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}${LIBHDFSPP_STATIC_LIB_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}") -- set (LIBHDFSPP_SRC_URL "${CMAKE_SOURCE_DIR}/c++/libs/libhdfspp/libhdfspp.tar.gz") -+ set (LIBHDFSPP_SRC_URL "${PROJECT_SOURCE_DIR}/c++/libs/libhdfspp/libhdfspp.tar.gz") - set (LIBHDFSPP_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - -DCMAKE_INSTALL_PREFIX=${LIBHDFSPP_PREFIX} - -DPROTOBUF_INCLUDE_DIR=${PROTOBUF_INCLUDE_DIR} -@@ -610,7 +610,7 @@ if(BUILD_LIBHDFSPP) - BUILD_BYPRODUCTS "${LIBHDFSPP_STATIC_LIB}" - CMAKE_ARGS ${LIBHDFSPP_CMAKE_ARGS}) - -- add_built_library(libhdfspp_ep libhdfspp ${LIBHDFSPP_STATIC_LIB} ${LIBHDFSPP_INCLUDE_DIR}) -+ orc_add_built_library(libhdfspp_ep libhdfspp ${LIBHDFSPP_STATIC_LIB} ${LIBHDFSPP_INCLUDE_DIR}) - - set (LIBHDFSPP_LIBRARIES - libhdfspp -diff --git a/tools/src/CMakeLists.txt b/tools/src/CMakeLists.txt -index 32d6eee3d..d247f900e 100644 ---- a/tools/src/CMakeLists.txt -+++ b/tools/src/CMakeLists.txt -@@ -38,10 +38,10 @@ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g ${CXX17_FLAGS} ${WARN_FLAGS}") - - add_library (orc-tools-common INTERFACE) - target_include_directories (orc-tools-common INTERFACE -- ${CMAKE_SOURCE_DIR}/c++/include -- ${CMAKE_BINARY_DIR}/c++/include -- ${CMAKE_SOURCE_DIR}/c++/src -- ${CMAKE_BINARY_DIR}/c++/src -+ ${PROJECT_BINARY_DIR}/c++/include -+ ${PROJECT_BINARY_DIR}/c++/src -+ ${PROJECT_SOURCE_DIR}/c++/include -+ ${PROJECT_SOURCE_DIR}/c++/src - ) - target_link_libraries (orc-tools-common INTERFACE - orc -diff --git a/tools/test/CMakeLists.txt b/tools/test/CMakeLists.txt -index 6e0c6b20b..ed67b4007 100644 ---- a/tools/test/CMakeLists.txt -+++ b/tools/test/CMakeLists.txt -@@ -38,11 +38,11 @@ target_link_libraries (tool-test - ) - - target_include_directories(tool-test PRIVATE -- ${CMAKE_SOURCE_DIR}/c++/include -- ${CMAKE_SOURCE_DIR}/c++/src -- ${CMAKE_SOURCE_DIR}/tools-c++/src -- ${CMAKE_BINARY_DIR}/c++/include -- ${CMAKE_BINARY_DIR}/c++/src -+ ${PROJECT_BINARY_DIR}/c++/include -+ ${PROJECT_BINARY_DIR}/c++/src -+ ${PROJECT_SOURCE_DIR}/c++/include -+ ${PROJECT_SOURCE_DIR}/c++/src -+ ${PROJECT_SOURCE_DIR}/tools-c++/src - ) - - add_dependencies(tool-test tool-set)