This is an automated email from the ASF dual-hosted git repository.

gangwu pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/orc.git


The following commit(s) were added to refs/heads/main by this push:
     new 0c6f3e70a ORC-1637: [C++] Port conan recipe from upstream conan center
0c6f3e70a is described below

commit 0c6f3e70a51485547a27e8838fbf86f373d5e3cd
Author: Gang Wu <ust...@gmail.com>
AuthorDate: Wed Feb 28 09:20:15 2024 +0800

    ORC-1637: [C++] Port conan recipe from upstream conan center
    
    ### What changes were proposed in this pull request?
    Port conan recipe back from the conan center index.
    
    ### Why are the changes needed?
    To keep it in sync with the upstream.
    
    ### How was this patch tested?
    Tested it locally. This has been tested by the CIs of conan center index.
    
    ### Was this patch authored or co-authored using generative AI tooling?
    No.
    
    Closes #1824 from wgtmac/conan-center.
    
    Authored-by: Gang Wu <ust...@gmail.com>
    Signed-off-by: Gang Wu <ust...@gmail.com>
---
 cmake_modules/ThirdpartyToolchain.cmake            |  15 +-
 conan/all/ConanThirdpartyToolchain.cmake           |  67 +++++++
 conan/{ => all}/conandata.yml                      |   7 -
 conan/all/conanfile.py                             | 196 +++++++++++++++++++++
 conan/{ => all}/test_package/CMakeLists.txt        |   9 +-
 conan/{ => all}/test_package/conanfile.py          |  15 +-
 .../test_package/test_package.cpp}                 |   0
 conan/conanfile.py                                 | 120 -------------
 conan/{test_package/CMakeLists.txt => config.yml}  |  14 +-
 .../patches/0001-thirdparty-toolchain-1.7.x.patch  | 184 -------------------
 .../patches/0001-thirdparty-toolchain-1.8.x.patch  | 183 -------------------
 .../patches/0001-thirdparty-toolchain-1.9.x.patch  | 182 -------------------
 12 files changed, 290 insertions(+), 702 deletions(-)

diff --git a/cmake_modules/ThirdpartyToolchain.cmake 
b/cmake_modules/ThirdpartyToolchain.cmake
index 1e7ef939a..aa520ff61 100644
--- a/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cmake_modules/ThirdpartyToolchain.cmake
@@ -475,15 +475,14 @@ else ()
   target_include_directories (orc_protobuf SYSTEM INTERFACE 
${PROTOBUF_INCLUDE_DIR})
 endif ()
 
-if (ORC_PACKAGE_KIND STREQUAL "conan")
-  cmake_path(GET protobuf_INCLUDE_DIR PARENT_PATH PROTOBUF_HOME)
-  set(PROTOBUF_EXECUTABLE ${PROTOBUF_HOME}/bin/protoc)
-elseif (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOC_STATIC_LIB})
-  target_link_libraries (orc_protoc INTERFACE ${PROTOC_STATIC_LIB})
-else ()
-  target_link_libraries (orc_protoc INTERFACE ${PROTOC_LIBRARY})
+if (NOT ORC_PACKAGE_KIND STREQUAL "conan")
+  if (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOC_STATIC_LIB})
+    target_link_libraries (orc_protoc INTERFACE ${PROTOC_STATIC_LIB})
+  else ()
+    target_link_libraries (orc_protoc INTERFACE ${PROTOC_LIBRARY})
+  endif()
+  target_include_directories (orc_protoc SYSTEM INTERFACE 
${PROTOBUF_INCLUDE_DIR})
 endif()
-target_include_directories (orc_protoc SYSTEM INTERFACE 
${PROTOBUF_INCLUDE_DIR})
 
 if (PROTOBUF_VENDORED)
   add_dependencies (orc_protoc protobuf_ep)
diff --git a/conan/all/ConanThirdpartyToolchain.cmake 
b/conan/all/ConanThirdpartyToolchain.cmake
new file mode 100644
index 000000000..b0b847424
--- /dev/null
+++ b/conan/all/ConanThirdpartyToolchain.cmake
@@ -0,0 +1,67 @@
+# 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.
+
+# ----------------------------------------------------------------------
+# Snappy
+
+find_package (Snappy REQUIRED)
+
+add_library (orc_snappy INTERFACE)
+add_library (orc::snappy ALIAS orc_snappy)
+target_link_libraries(orc_snappy INTERFACE Snappy::snappy)
+
+# ----------------------------------------------------------------------
+# ZLIB
+
+find_package (ZLIB REQUIRED)
+
+add_library (orc_zlib INTERFACE)
+add_library (orc::zlib ALIAS orc_zlib)
+target_link_libraries (orc_zlib INTERFACE ZLIB::ZLIB)
+
+# ----------------------------------------------------------------------
+# Zstd
+
+find_package (ZSTD REQUIRED)
+
+add_library (orc_zstd INTERFACE)
+add_library (orc::zstd ALIAS orc_zstd)
+target_link_libraries (orc_zstd INTERFACE
+  $<TARGET_NAME_IF_EXISTS:zstd::libzstd_static>
+  $<TARGET_NAME_IF_EXISTS:zstd::libzstd_shared>
+)
+
+# ----------------------------------------------------------------------
+# LZ4
+
+find_package (LZ4 REQUIRED)
+
+add_library (orc_lz4 INTERFACE)
+add_library (orc::lz4 ALIAS orc_lz4)
+target_link_libraries (orc_lz4 INTERFACE
+  $<TARGET_NAME_IF_EXISTS:LZ4::lz4_shared>
+  $<TARGET_NAME_IF_EXISTS:LZ4::lz4_static>
+)
+
+# ----------------------------------------------------------------------
+# Protobuf
+
+find_package (Protobuf REQUIRED)
+
+add_library (orc_protobuf INTERFACE)
+add_library (orc::protobuf ALIAS orc_protobuf)
+target_link_libraries (orc_protobuf INTERFACE protobuf::protobuf)
diff --git a/conan/conandata.yml b/conan/all/conandata.yml
similarity index 84%
rename from conan/conandata.yml
rename to conan/all/conandata.yml
index c0e126fc2..7889791c6 100644
--- a/conan/conandata.yml
+++ b/conan/all/conandata.yml
@@ -25,10 +25,3 @@ sources:
   "1.7.10":
     url: "https://dlcdn.apache.org/orc/orc-1.7.10/orc-1.7.10.tar.gz";
     sha256: "85aef9368dc9bcdffaaf10010b66dfe053ce22f30b64854f63852248164686a3"
-patches:
-  "1.9.2":
-    - patch_file: "patches/0001-thirdparty-toolchain-1.9.x.patch"
-  "1.8.6":
-    - patch_file: "patches/0001-thirdparty-toolchain-1.8.x.patch"
-  "1.7.10":
-    - patch_file: "patches/0001-thirdparty-toolchain-1.7.x.patch"
diff --git a/conan/all/conanfile.py b/conan/all/conanfile.py
new file mode 100644
index 000000000..9e45cd46d
--- /dev/null
+++ b/conan/all/conanfile.py
@@ -0,0 +1,196 @@
+# 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.
+
+import os
+
+from conan import ConanFile
+from conan.errors import ConanInvalidConfiguration
+from conan.tools.build import check_min_cppstd
+from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
+from conan.tools.env import VirtualBuildEnv, VirtualRunEnv
+from conan.tools.files import copy, get, rmdir, replace_in_file, mkdir
+from conan.tools.scm import Version
+
+required_conan_version = ">=1.60.0 <2.0 || >=2.0.5"
+
+class OrcRecipe(ConanFile):
+    name = "orc"
+    description = "ORC is a self-describing type-aware columnar file format 
designed for Hadoop workloads"
+    license = "Apache-2.0"
+    homepage = "https://orc.apache.org/";
+    url = "https://github.com/conan-io/conan-center-index";
+    topics = ("orc", "columnar", "file-format", "hadoop")
+
+    package_type = "library"
+    settings = "os", "arch", "compiler", "build_type"
+    options = {
+        "shared": [True, False],
+        "fPIC": [True, False],
+        "build_tools": [True, False],
+        "build_avx512": [True, False],
+    }
+    default_options = {
+        "shared": False,
+        "fPIC": True,
+        "build_tools": False,
+        "build_avx512": True,
+    }
+
+    @property
+    def _min_cppstd(self):
+        return 17
+
+    @property
+    def _compilers_minimum_version(self):
+        return {
+            "Visual Studio": "16",
+            "msvc": "192",
+            "gcc": "8",
+            "clang": "7",
+            "apple-clang": "12",
+        }
+
+    @property
+    def _is_legacy_one_profile(self):
+        return not hasattr(self, "settings_build")
+
+    @property
+    def _should_patch_thirdparty_toolchain(self):
+        return self.version < "2.0.0"
+
+    def export_sources(self):
+        if self._should_patch_thirdparty_toolchain:
+            copy(self, "ConanThirdpartyToolchain.cmake",
+                 self.recipe_folder, os.path.join(self.export_sources_folder, 
"src", "cmake_modules"))
+
+    def config_options(self):
+        if self.settings.os == "Windows":
+            del self.options.fPIC
+        if self.settings.compiler == "apple-clang":
+            # AVX support is not enabled by default, might need to add 
-mavx512f to CXXFLAGS
+            del self.options.build_avx512
+
+    def configure(self):
+        if self.options.shared:
+            self.options.rm_safe("fPIC")
+
+    def layout(self):
+        cmake_layout(self, src_folder="src", build_folder="build")
+
+    def requirements(self):
+        self.requires("protobuf/3.21.12")
+        self.requires("lz4/1.9.4")
+        self.requires("snappy/1.1.9")
+        self.requires("zlib/[>=1.2.11 <2]")
+        self.requires("zstd/1.5.5")
+
+    def validate(self):
+        if self.settings.compiler.cppstd:
+            check_min_cppstd(self, self._min_cppstd)
+        minimum_version = 
self._compilers_minimum_version.get(str(self.settings.compiler), False)
+        if minimum_version and Version(self.settings.compiler.version) < 
minimum_version:
+            raise ConanInvalidConfiguration(
+                f"{self.ref} requires C++{self._min_cppstd}, which your 
compiler does not support."
+            )
+
+    def build_requirements(self):
+        if not self._is_legacy_one_profile:
+            self.tool_requires("protobuf/<host_version>")
+
+    def source(self):
+        # START
+        # This block should be removed when we update upstream:
+        # 
https://github.com/conan-io/conan-center-index/tree/master/recipes/orc/
+        if not self.version in self.conan_data.get("sources", {}):
+            import shutil
+            top_level = os.environ.get("ORC_HOME")
+            shutil.copytree(os.path.join(top_level, "c++"),
+                            os.path.join(self.source_folder, "c++"))
+            shutil.copytree(os.path.join(top_level, "cmake_modules"),
+                            os.path.join(self.source_folder, "cmake_modules"))
+            top_level_files = [
+                "CMakeLists.txt",
+                "LICENSE",
+                "NOTICE",
+            ]
+            for top_level_file in top_level_files:
+                shutil.copy(os.path.join(top_level, top_level_file),
+                            self.source_folder)
+            return
+        # END
+        get(self, **self.conan_data["sources"][self.version], strip_root=True)
+
+    def generate(self):
+        VirtualBuildEnv(self).generate()
+        VirtualRunEnv(self).generate(scope="build")
+
+        tc = CMakeToolchain(self)
+        tc.variables["ORC_PACKAGE_KIND"] = "conan"
+        tc.variables["BUILD_JAVA"] = False
+        tc.variables["BUILD_CPP_TESTS"] = False
+        tc.variables["BUILD_TOOLS"] = self.options.build_tools
+        tc.variables["BUILD_LIBHDFSPP"] = False
+        tc.variables["BUILD_POSITION_INDEPENDENT_LIB"] = 
bool(self.options.get_safe("fPIC", True))
+        tc.variables["INSTALL_VENDORED_LIBS"] = False
+        # AVX512 support is determined by ORC_USER_SIMD_LEVEL env var at 
runtime, defaults to off
+        tc.variables["BUILD_ENABLE_AVX512"] = 
self.options.get_safe("build_avx512", False)
+        tc.variables["STOP_BUILD_ON_WARNING"] = False
+        tc.variables["CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS"] = True
+
+        # CMake versions less than 3.12 are supported by ORC pre-1.9.0 
versions.
+        # Setting policy CMP0077 to NEW to remove unnecessary cache_variables 
settings.
+        if self.version < "1.9.0":
+            tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0077"] = "NEW"
+
+        protoc_path = 
os.path.join(self.dependencies["protobuf"].cpp_info.bindir, "protoc")
+        tc.variables["PROTOBUF_EXECUTABLE"] = protoc_path.replace("\\", "/")
+        tc.variables["HAS_POST_2038"] = self.settings.os != "Windows"
+        tc.variables["HAS_PRE_1970"] = self.settings.os != "Windows"
+        tc.generate()
+
+        deps = CMakeDeps(self)
+        deps.generate()
+
+    def _patch_sources(self):
+        if self._should_patch_thirdparty_toolchain:
+            replace_in_file(self, os.path.join(self.source_folder, 
"CMakeLists.txt"),
+                            "ThirdpartyToolchain", "ConanThirdpartyToolchain")
+        # Allow shared builds
+        replace_in_file(self, os.path.join(self.source_folder, "c++", "src", 
"CMakeLists.txt"),
+                        "add_library (orc STATIC ${SOURCE_FILES})", 
"add_library (orc ${SOURCE_FILES})")
+
+    def build(self):
+        self._patch_sources()
+        cmake = CMake(self)
+        cmake.configure()
+        cmake.build()
+
+    def package(self):
+        copy(self, "LICENSE", self.source_folder, 
os.path.join(self.package_folder, "licenses"))
+        copy(self, "NOTICE", self.source_folder, 
os.path.join(self.package_folder, "licenses"))
+        cmake = CMake(self)
+        cmake.install()
+        rmdir(self, os.path.join(self.package_folder, "share"))
+        if self.settings.os == "Windows" and self.options.shared:
+            mkdir(self, os.path.join(self.package_folder, "bin"))
+            os.rename(os.path.join(self.package_folder, "lib", "orc.dll"),
+                      os.path.join(self.package_folder, "bin", "orc.dll"))
+
+    def package_info(self):
+        self.cpp_info.libs = ["orc"]
+        if self.settings.os in ["Linux", "FreeBSD"]:
+            self.cpp_info.system_libs = ["pthread", "m"]
diff --git a/conan/test_package/CMakeLists.txt 
b/conan/all/test_package/CMakeLists.txt
similarity index 77%
copy from conan/test_package/CMakeLists.txt
copy to conan/all/test_package/CMakeLists.txt
index 58279fc14..1bc6bb47d 100644
--- a/conan/test_package/CMakeLists.txt
+++ b/conan/all/test_package/CMakeLists.txt
@@ -16,9 +16,10 @@
 # under the License.
 
 cmake_minimum_required(VERSION 3.15)
-project(PackageTest CXX)
+project(test_package LANGUAGES CXX)
 
-find_package(orc CONFIG REQUIRED)
+find_package(orc REQUIRED CONFIG)
 
-add_executable(example src/example.cpp)
-target_link_libraries(example orc::orc)
+add_executable(${PROJECT_NAME} test_package.cpp)
+target_link_libraries(${PROJECT_NAME} PRIVATE orc::orc)
+target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
diff --git a/conan/test_package/conanfile.py 
b/conan/all/test_package/conanfile.py
similarity index 83%
rename from conan/test_package/conanfile.py
rename to conan/all/test_package/conanfile.py
index c47c37709..eafb696bd 100644
--- a/conan/test_package/conanfile.py
+++ b/conan/all/test_package/conanfile.py
@@ -21,22 +21,23 @@ from conan import ConanFile
 from conan.tools.cmake import CMake, cmake_layout
 from conan.tools.build import can_run
 
-class OrcTestConan(ConanFile):
-    settings = "os", "compiler", "build_type", "arch"
-    generators = "CMakeDeps", "CMakeToolchain"
+class TestPackageConan(ConanFile):
+    settings = "os", "arch", "compiler", "build_type"
+    generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
+    test_type = "explicit"
 
     def requirements(self):
         self.requires(self.tested_reference_str)
 
+    def layout(self):
+        cmake_layout(self)
+
     def build(self):
         cmake = CMake(self)
         cmake.configure()
         cmake.build()
 
-    def layout(self):
-        cmake_layout(self)
-
     def test(self):
         if can_run(self):
-            cmd = os.path.join(self.cpp.build.bindir, "example")
+            cmd = os.path.join(self.cpp.build.bindir, "test_package")
             self.run(cmd, env="conanrun")
diff --git a/conan/test_package/src/example.cpp 
b/conan/all/test_package/test_package.cpp
similarity index 100%
rename from conan/test_package/src/example.cpp
rename to conan/all/test_package/test_package.cpp
diff --git a/conan/conanfile.py b/conan/conanfile.py
deleted file mode 100644
index 18f911088..000000000
--- a/conan/conanfile.py
+++ /dev/null
@@ -1,120 +0,0 @@
-# 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.
-
-from conan import ConanFile
-from conan.tools.cmake import CMakeToolchain, CMake, cmake_layout, CMakeDeps
-from conan.tools.files import apply_conandata_patches, 
export_conandata_patches, get, copy, rmdir
-from conan.tools.scm import Version
-
-import os
-
-required_conan_version = ">=1.54.0"
-
-class OrcRecipe(ConanFile):
-    name = "orc"
-    description = "The smallest, fastest columnar storage for Hadoop workloads"
-    license = "Apache-2.0"
-    url = "https://github.com/conan-io/conan-center-index";
-    homepage = "https://orc.apache.org/";
-    topics = ("orc", "columnar-storage", "hadoop")
-    settings = "os", "compiler", "build_type", "arch"
-    options = {
-        "shared": [False],
-        "fPIC": [True, False],
-    }
-    default_options = {
-        "shared": False,
-        "fPIC": True,
-    }
-
-    @property
-    def _minimum_cpp_standard(self):
-        return 11 if Version(self.version) < "1.9.0" else 17
-
-    def source(self):
-        if not self.version in self.conan_data.get("sources", {}):
-            import shutil
-            top_level = os.environ.get("ORC_HOME")
-            shutil.copytree(os.path.join(top_level, "c++"),
-                            os.path.join(self.source_folder, "c++"))
-            shutil.copytree(os.path.join(top_level, "cmake_modules"),
-                            os.path.join(self.source_folder, "cmake_modules"))
-            top_level_files = [
-                "CMakeLists.txt",
-                "LICENSE",
-                "NOTICE",
-            ]
-            for top_level_file in top_level_files:
-                shutil.copy(os.path.join(top_level, top_level_file),
-                            self.source_folder)
-            return
-        get(self, **self.conan_data["sources"][self.version], strip_root=True)
-
-    def config_options(self):
-        if self.settings.os == "Windows":
-            self.options.rm_safe("fPIC")
-
-    def configure(self):
-        if self.options.shared:
-            self.options.rm_safe("fPIC")
-
-    def export_sources(self):
-        export_conandata_patches(self)
-
-    def requirements(self):
-        self.requires("protobuf/3.19.4")
-        self.requires("zlib/1.3")
-        self.requires("snappy/1.1.9")
-        self.requires("lz4/1.9.4")
-        self.requires("zstd/1.5.5")
-
-    def layout(self):
-        cmake_layout(self, src_folder="src", build_folder="build")
-
-    def generate(self):
-        deps = CMakeDeps(self)
-        deps.generate()
-        tc = CMakeToolchain(self)
-        tc.variables["ORC_PACKAGE_KIND"] = "conan"
-        tc.variables["BUILD_JAVA"] = "OFF"
-        tc.variables["BUILD_CPP_TESTS"] = "OFF"
-        tc.variables["BUILD_TOOLS"] = "OFF"
-        tc.variables["BUILD_LIBHDFSPP"] = "OFF"
-        tc.variables["BUILD_POSITION_INDEPENDENT_LIB"] = 
bool(self.options.get_safe("fPIC", True))
-        tc.variables["INSTALL_VENDORED_LIBS"] = "OFF"
-        tc.generate()
-
-    def build(self):
-        apply_conandata_patches(self)
-        cmake = CMake(self)
-        cmake.configure()
-        cmake.build()
-
-    def package(self):
-        copy(self, pattern="LICENSE", dst=os.path.join(self.package_folder, 
"licenses"), src=self.source_folder)
-        copy(self, pattern="NOTICE", dst=os.path.join(self.package_folder, 
"licenses"), src=self.source_folder)
-        cmake = CMake(self)
-        cmake.install()
-        rmdir(self, os.path.join(self.package_folder, "lib", "cmake"))
-        rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
-        rmdir(self, os.path.join(self.package_folder, "share"))
-
-    def package_info(self):
-        self.cpp_info.set_property("cmake_file_name", "orc")
-        self.cpp_info.set_property("cmake_target_name", "orc::orc")
-        self.cpp_info.set_property("pkg_config_name", "liborc")
-        self.cpp_info.libs = ["orc"]
diff --git a/conan/test_package/CMakeLists.txt b/conan/config.yml
similarity index 81%
rename from conan/test_package/CMakeLists.txt
rename to conan/config.yml
index 58279fc14..14965e99b 100644
--- a/conan/test_package/CMakeLists.txt
+++ b/conan/config.yml
@@ -15,10 +15,10 @@
 # specific language governing permissions and limitations
 # under the License.
 
-cmake_minimum_required(VERSION 3.15)
-project(PackageTest CXX)
-
-find_package(orc CONFIG REQUIRED)
-
-add_executable(example src/example.cpp)
-target_link_libraries(example orc::orc)
+versions:
+  "1.9.2":
+    folder: all
+  "1.8.6":
+    folder: all
+  "1.7.10":
+    folder: all
diff --git a/conan/patches/0001-thirdparty-toolchain-1.7.x.patch 
b/conan/patches/0001-thirdparty-toolchain-1.7.x.patch
deleted file mode 100644
index 2f64f3b79..000000000
--- a/conan/patches/0001-thirdparty-toolchain-1.7.x.patch
+++ /dev/null
@@ -1,184 +0,0 @@
-# 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.
-
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 93bd1035b..57c83b961 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -68,6 +68,10 @@ option(BUILD_POSITION_INDEPENDENT_LIB
-     "Compile static libraries with position independent code"
-     OFF)
- 
-+option(ORC_PACKAGE_KIND
-+    "Arbitrary string that identifies the kind of package"
-+    "")
-+
- # Make sure that a build type is selected
- if (NOT CMAKE_BUILD_TYPE)
-   message(STATUS "No build type selected, default to ReleaseWithDebugInfo")
-
-diff --git a/cmake_modules/ThirdpartyToolchain.cmake 
b/cmake_modules/ThirdpartyToolchain.cmake
-index a394d7315..3cd3e9faa 100644
---- a/cmake_modules/ThirdpartyToolchain.cmake
-+++ b/cmake_modules/ThirdpartyToolchain.cmake
-@@ -71,7 +71,7 @@ endif ()
- # ----------------------------------------------------------------------
- # Snappy
- 
--if (NOT "${SNAPPY_HOME}" STREQUAL "")
-+if (NOT "${SNAPPY_HOME}" STREQUAL "" OR ORC_PACKAGE_KIND STREQUAL "conan")
-   find_package (Snappy REQUIRED)
-   set(SNAPPY_VENDORED FALSE)
- else ()
-@@ -97,12 +97,18 @@ endif ()
- 
- add_library (orc_snappy INTERFACE)
- add_library (orc::snappy ALIAS orc_snappy)
--if (ORC_PREFER_STATIC_SNAPPY AND ${SNAPPY_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_link_libraries(orc_snappy INTERFACE ${Snappy_LIBRARIES})
-+elseif (ORC_PREFER_STATIC_SNAPPY AND ${SNAPPY_STATIC_LIB})
-   target_link_libraries(orc_snappy INTERFACE ${SNAPPY_STATIC_LIB})
- else ()
-   target_link_libraries(orc_snappy INTERFACE ${SNAPPY_LIBRARY})
- endif ()
--target_include_directories (orc_snappy SYSTEM INTERFACE ${SNAPPY_INCLUDE_DIR})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_include_directories (orc_snappy SYSTEM INTERFACE 
${Snappy_INCLUDE_DIR})
-+else()
-+  target_include_directories (orc_snappy SYSTEM INTERFACE 
${SNAPPY_INCLUDE_DIR})
-+endif ()
- 
- if (SNAPPY_VENDORED)
-   add_dependencies (orc_snappy snappy_ep)
-@@ -115,7 +121,7 @@ endif ()
- # ----------------------------------------------------------------------
- # ZLIB
- 
--if (NOT "${ZLIB_HOME}" STREQUAL "")
-+if (NOT "${ZLIB_HOME}" STREQUAL "" OR ORC_PACKAGE_KIND STREQUAL "conan")
-   find_package (ZLIB REQUIRED)
-   set(ZLIB_VENDORED FALSE)
- else ()
-@@ -149,7 +155,9 @@ endif ()
- 
- add_library (orc_zlib INTERFACE)
- add_library (orc::zlib ALIAS orc_zlib)
--if (ORC_PREFER_STATIC_ZLIB AND ${ZLIB_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_link_libraries (orc_zlib INTERFACE ${ZLIB_LIBRARIES})
-+elseif (ORC_PREFER_STATIC_ZLIB AND ${ZLIB_STATIC_LIB})
-   target_link_libraries (orc_zlib INTERFACE ${ZLIB_STATIC_LIB})
- else ()
-   target_link_libraries (orc_zlib INTERFACE ${ZLIB_LIBRARY})
-@@ -167,7 +175,7 @@ endif ()
- # ----------------------------------------------------------------------
- # Zstd
- 
--if (NOT "${ZSTD_HOME}" STREQUAL "")
-+if (NOT "${ZSTD_HOME}" STREQUAL "" OR ORC_PACKAGE_KIND STREQUAL "conan")
-   find_package (ZSTD REQUIRED)
-   set(ZSTD_VENDORED FALSE)
- else ()
-@@ -208,12 +216,18 @@ endif ()
- 
- add_library (orc_zstd INTERFACE)
- add_library (orc::zstd ALIAS orc_zstd)
--if (ORC_PREFER_STATIC_ZSTD AND ${ZSTD_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_link_libraries (orc_zstd INTERFACE ${zstd_LIBRARIES})
-+elseif (ORC_PREFER_STATIC_ZSTD AND ${ZSTD_STATIC_LIB})
-   target_link_libraries (orc_zstd INTERFACE ${ZSTD_STATIC_LIB})
- else ()
-   target_link_libraries (orc_zstd INTERFACE ${ZSTD_LIBRARY})
- endif ()
--target_include_directories (orc_zstd SYSTEM INTERFACE ${ZSTD_INCLUDE_DIR})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_include_directories (orc_zstd SYSTEM INTERFACE ${zstd_INCLUDE_DIR})
-+else()
-+  target_include_directories (orc_zstd SYSTEM INTERFACE ${ZSTD_INCLUDE_DIR})
-+endif ()
- 
- if (ZSTD_VENDORED)
-   add_dependencies (orc_zstd zstd_ep)
-@@ -226,7 +240,7 @@ endif ()
- # ----------------------------------------------------------------------
- # LZ4
- 
--if (NOT "${LZ4_HOME}" STREQUAL "")
-+if (NOT "${LZ4_HOME}" STREQUAL "" OR ORC_PACKAGE_KIND STREQUAL "conan")
-   find_package (LZ4 REQUIRED)
-   set(LZ4_VENDORED FALSE)
- else ()
-@@ -260,12 +274,18 @@ endif ()
- 
- add_library (orc_lz4 INTERFACE)
- add_library (orc::lz4 ALIAS orc_lz4)
--if (ORC_PREFER_STATIC_LZ4 AND ${LZ4_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_link_libraries (orc_lz4 INTERFACE ${lz4_LIBRARIES})
-+elseif (ORC_PREFER_STATIC_LZ4 AND ${LZ4_STATIC_LIB})
-   target_link_libraries (orc_lz4 INTERFACE ${LZ4_STATIC_LIB})
- else ()
-   target_link_libraries (orc_lz4 INTERFACE ${LZ4_LIBRARY})
- endif ()
--target_include_directories (orc_lz4 SYSTEM INTERFACE ${LZ4_INCLUDE_DIR})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_include_directories (orc_lz4 SYSTEM INTERFACE ${lz4_INCLUDE_DIR})
-+else()
-+  target_include_directories (orc_lz4 SYSTEM INTERFACE ${LZ4_INCLUDE_DIR})
-+endif ()
- 
- if (LZ4_VENDORED)
-   add_dependencies (orc_lz4 lz4_ep)
-@@ -377,7 +397,7 @@ endif ()
- # ----------------------------------------------------------------------
- # Protobuf
- 
--if (NOT "${PROTOBUF_HOME}" STREQUAL "")
-+if (NOT "${PROTOBUF_HOME}" STREQUAL "" OR ORC_PACKAGE_KIND STREQUAL "conan")
-   find_package (Protobuf REQUIRED)
-   set(PROTOBUF_VENDORED FALSE)
- else ()
-@@ -426,14 +446,23 @@ add_library (orc::protobuf ALIAS orc_protobuf)
- add_library (orc_protoc INTERFACE)
- add_library (orc::protoc ALIAS orc_protoc)
- 
--if (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOBUF_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_link_libraries (orc_protobuf INTERFACE ${protobuf_LIBRARIES})
-+elseif (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOBUF_STATIC_LIB})
-   target_link_libraries (orc_protobuf INTERFACE ${PROTOBUF_STATIC_LIB})
- else ()
-   target_link_libraries (orc_protobuf INTERFACE ${PROTOBUF_LIBRARY})
- endif()
--target_include_directories (orc_protobuf SYSTEM INTERFACE 
${PROTOBUF_INCLUDE_DIR})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_include_directories (orc_protobuf SYSTEM INTERFACE 
${protobuf_INCLUDE_DIR})
-+else ()
-+  target_include_directories (orc_protobuf SYSTEM INTERFACE 
${PROTOBUF_INCLUDE_DIR})
-+endif ()
- 
--if (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOC_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  cmake_path(GET protobuf_INCLUDE_DIR PARENT_PATH PROTOBUF_HOME)
-+  set(PROTOBUF_EXECUTABLE ${PROTOBUF_HOME}/bin/protoc)
-+elseif (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOC_STATIC_LIB})
-   target_link_libraries (orc_protoc INTERFACE ${PROTOC_STATIC_LIB})
- else ()
-   target_link_libraries (orc_protoc INTERFACE ${PROTOC_LIBRARY})
diff --git a/conan/patches/0001-thirdparty-toolchain-1.8.x.patch 
b/conan/patches/0001-thirdparty-toolchain-1.8.x.patch
deleted file mode 100644
index b2157030f..000000000
--- a/conan/patches/0001-thirdparty-toolchain-1.8.x.patch
+++ /dev/null
@@ -1,183 +0,0 @@
-# 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.
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index de0869dc7..df66939c4 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt 
-@@ -68,6 +68,10 @@ option(BUILD_POSITION_INDEPENDENT_LIB
-     "Compile static libraries with position independent code"
-     OFF)
- 
-+option(ORC_PACKAGE_KIND
-+    "Arbitrary string that identifies the kind of package"
-+    "")
-+
- # Make sure that a build type is selected
- if (NOT CMAKE_BUILD_TYPE)
-   message(STATUS "No build type selected, default to ReleaseWithDebugInfo")
-
-diff --git a/cmake_modules/ThirdpartyToolchain.cmake 
b/cmake_modules/ThirdpartyToolchain.cmake
-index a394d7315..3cd3e9faa 100644
---- a/cmake_modules/ThirdpartyToolchain.cmake
-+++ b/cmake_modules/ThirdpartyToolchain.cmake
-@@ -71,7 +71,7 @@ endif ()
- # ----------------------------------------------------------------------
- # Snappy
- 
--if (NOT "${SNAPPY_HOME}" STREQUAL "")
-+if (NOT "${SNAPPY_HOME}" STREQUAL "" OR ORC_PACKAGE_KIND STREQUAL "conan")
-   find_package (Snappy REQUIRED)
-   set(SNAPPY_VENDORED FALSE)
- else ()
-@@ -97,12 +97,18 @@ endif ()
- 
- add_library (orc_snappy INTERFACE)
- add_library (orc::snappy ALIAS orc_snappy)
--if (ORC_PREFER_STATIC_SNAPPY AND ${SNAPPY_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_link_libraries(orc_snappy INTERFACE ${Snappy_LIBRARIES})
-+elseif (ORC_PREFER_STATIC_SNAPPY AND ${SNAPPY_STATIC_LIB})
-   target_link_libraries(orc_snappy INTERFACE ${SNAPPY_STATIC_LIB})
- else ()
-   target_link_libraries(orc_snappy INTERFACE ${SNAPPY_LIBRARY})
- endif ()
--target_include_directories (orc_snappy SYSTEM INTERFACE ${SNAPPY_INCLUDE_DIR})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_include_directories (orc_snappy SYSTEM INTERFACE 
${Snappy_INCLUDE_DIR})
-+else()
-+  target_include_directories (orc_snappy SYSTEM INTERFACE 
${SNAPPY_INCLUDE_DIR})
-+endif ()
- 
- if (SNAPPY_VENDORED)
-   add_dependencies (orc_snappy snappy_ep)
-@@ -115,7 +121,7 @@ endif ()
- # ----------------------------------------------------------------------
- # ZLIB
- 
--if (NOT "${ZLIB_HOME}" STREQUAL "")
-+if (NOT "${ZLIB_HOME}" STREQUAL "" OR ORC_PACKAGE_KIND STREQUAL "conan")
-   find_package (ZLIB REQUIRED)
-   set(ZLIB_VENDORED FALSE)
- else ()
-@@ -149,7 +155,9 @@ endif ()
- 
- add_library (orc_zlib INTERFACE)
- add_library (orc::zlib ALIAS orc_zlib)
--if (ORC_PREFER_STATIC_ZLIB AND ${ZLIB_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_link_libraries (orc_zlib INTERFACE ${ZLIB_LIBRARIES})
-+elseif (ORC_PREFER_STATIC_ZLIB AND ${ZLIB_STATIC_LIB})
-   target_link_libraries (orc_zlib INTERFACE ${ZLIB_STATIC_LIB})
- else ()
-   target_link_libraries (orc_zlib INTERFACE ${ZLIB_LIBRARY})
-@@ -167,7 +175,7 @@ endif ()
- # ----------------------------------------------------------------------
- # Zstd
- 
--if (NOT "${ZSTD_HOME}" STREQUAL "")
-+if (NOT "${ZSTD_HOME}" STREQUAL "" OR ORC_PACKAGE_KIND STREQUAL "conan")
-   find_package (ZSTD REQUIRED)
-   set(ZSTD_VENDORED FALSE)
- else ()
-@@ -208,12 +216,18 @@ endif ()
- 
- add_library (orc_zstd INTERFACE)
- add_library (orc::zstd ALIAS orc_zstd)
--if (ORC_PREFER_STATIC_ZSTD AND ${ZSTD_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_link_libraries (orc_zstd INTERFACE ${zstd_LIBRARIES})
-+elseif (ORC_PREFER_STATIC_ZSTD AND ${ZSTD_STATIC_LIB})
-   target_link_libraries (orc_zstd INTERFACE ${ZSTD_STATIC_LIB})
- else ()
-   target_link_libraries (orc_zstd INTERFACE ${ZSTD_LIBRARY})
- endif ()
--target_include_directories (orc_zstd SYSTEM INTERFACE ${ZSTD_INCLUDE_DIR})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_include_directories (orc_zstd SYSTEM INTERFACE ${zstd_INCLUDE_DIR})
-+else()
-+  target_include_directories (orc_zstd SYSTEM INTERFACE ${ZSTD_INCLUDE_DIR})
-+endif ()
- 
- if (ZSTD_VENDORED)
-   add_dependencies (orc_zstd zstd_ep)
-@@ -226,7 +240,7 @@ endif ()
- # ----------------------------------------------------------------------
- # LZ4
- 
--if (NOT "${LZ4_HOME}" STREQUAL "")
-+if (NOT "${LZ4_HOME}" STREQUAL "" OR ORC_PACKAGE_KIND STREQUAL "conan")
-   find_package (LZ4 REQUIRED)
-   set(LZ4_VENDORED FALSE)
- else ()
-@@ -260,12 +274,18 @@ endif ()
- 
- add_library (orc_lz4 INTERFACE)
- add_library (orc::lz4 ALIAS orc_lz4)
--if (ORC_PREFER_STATIC_LZ4 AND ${LZ4_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_link_libraries (orc_lz4 INTERFACE ${lz4_LIBRARIES})
-+elseif (ORC_PREFER_STATIC_LZ4 AND ${LZ4_STATIC_LIB})
-   target_link_libraries (orc_lz4 INTERFACE ${LZ4_STATIC_LIB})
- else ()
-   target_link_libraries (orc_lz4 INTERFACE ${LZ4_LIBRARY})
- endif ()
--target_include_directories (orc_lz4 SYSTEM INTERFACE ${LZ4_INCLUDE_DIR})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_include_directories (orc_lz4 SYSTEM INTERFACE ${lz4_INCLUDE_DIR})
-+else()
-+  target_include_directories (orc_lz4 SYSTEM INTERFACE ${LZ4_INCLUDE_DIR})
-+endif ()
- 
- if (LZ4_VENDORED)
-   add_dependencies (orc_lz4 lz4_ep)
-@@ -377,7 +397,7 @@ endif ()
- # ----------------------------------------------------------------------
- # Protobuf
- 
--if (NOT "${PROTOBUF_HOME}" STREQUAL "")
-+if (NOT "${PROTOBUF_HOME}" STREQUAL "" OR ORC_PACKAGE_KIND STREQUAL "conan")
-   find_package (Protobuf REQUIRED)
-   set(PROTOBUF_VENDORED FALSE)
- else ()
-@@ -426,14 +446,23 @@ add_library (orc::protobuf ALIAS orc_protobuf)
- add_library (orc_protoc INTERFACE)
- add_library (orc::protoc ALIAS orc_protoc)
- 
--if (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOBUF_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_link_libraries (orc_protobuf INTERFACE ${protobuf_LIBRARIES})
-+elseif (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOBUF_STATIC_LIB})
-   target_link_libraries (orc_protobuf INTERFACE ${PROTOBUF_STATIC_LIB})
- else ()
-   target_link_libraries (orc_protobuf INTERFACE ${PROTOBUF_LIBRARY})
- endif()
--target_include_directories (orc_protobuf SYSTEM INTERFACE 
${PROTOBUF_INCLUDE_DIR})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_include_directories (orc_protobuf SYSTEM INTERFACE 
${protobuf_INCLUDE_DIR})
-+else ()
-+  target_include_directories (orc_protobuf SYSTEM INTERFACE 
${PROTOBUF_INCLUDE_DIR})
-+endif ()
- 
--if (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOC_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  cmake_path(GET protobuf_INCLUDE_DIR PARENT_PATH PROTOBUF_HOME)
-+  set(PROTOBUF_EXECUTABLE ${PROTOBUF_HOME}/bin/protoc)
-+elseif (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOC_STATIC_LIB})
-   target_link_libraries (orc_protoc INTERFACE ${PROTOC_STATIC_LIB})
- else ()
-   target_link_libraries (orc_protoc INTERFACE ${PROTOC_LIBRARY})
diff --git a/conan/patches/0001-thirdparty-toolchain-1.9.x.patch 
b/conan/patches/0001-thirdparty-toolchain-1.9.x.patch
deleted file mode 100644
index 4164855a1..000000000
--- a/conan/patches/0001-thirdparty-toolchain-1.9.x.patch
+++ /dev/null
@@ -1,182 +0,0 @@
-# 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.
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3cbd88632..dd4e154c5 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -76,6 +76,10 @@ option(BUILD_ENABLE_AVX512
-     "Enable build with AVX512 at compile time"
-     OFF)
- 
-+option(ORC_PACKAGE_KIND
-+    "Arbitrary string that identifies the kind of package"
-+    "")
-+
- # Make sure that a build type is selected
- if (NOT CMAKE_BUILD_TYPE)
-   message(STATUS "No build type selected, default to ReleaseWithDebugInfo")
-diff --git a/cmake_modules/ThirdpartyToolchain.cmake 
b/cmake_modules/ThirdpartyToolchain.cmake
-index 47c1a65ba..8695918a6 100644
---- a/cmake_modules/ThirdpartyToolchain.cmake
-+++ b/cmake_modules/ThirdpartyToolchain.cmake
-@@ -71,7 +71,7 @@ endif ()
- # ----------------------------------------------------------------------
- # Snappy
- 
--if (NOT "${SNAPPY_HOME}" STREQUAL "")
-+if (NOT "${SNAPPY_HOME}" STREQUAL "" OR ORC_PACKAGE_KIND STREQUAL "conan")
-   find_package (Snappy REQUIRED)
-   set(SNAPPY_VENDORED FALSE)
- else ()
-@@ -97,12 +97,18 @@ endif ()
- 
- add_library (orc_snappy INTERFACE)
- add_library (orc::snappy ALIAS orc_snappy)
--if (ORC_PREFER_STATIC_SNAPPY AND ${SNAPPY_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_link_libraries(orc_snappy INTERFACE ${Snappy_LIBRARIES})
-+elseif (ORC_PREFER_STATIC_SNAPPY AND ${SNAPPY_STATIC_LIB})
-   target_link_libraries(orc_snappy INTERFACE ${SNAPPY_STATIC_LIB})
- else ()
-   target_link_libraries(orc_snappy INTERFACE ${SNAPPY_LIBRARY})
- endif ()
--target_include_directories (orc_snappy SYSTEM INTERFACE ${SNAPPY_INCLUDE_DIR})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_include_directories (orc_snappy SYSTEM INTERFACE 
${Snappy_INCLUDE_DIR})
-+else()
-+  target_include_directories (orc_snappy SYSTEM INTERFACE 
${SNAPPY_INCLUDE_DIR})
-+endif ()
- 
- if (SNAPPY_VENDORED)
-   add_dependencies (orc_snappy snappy_ep)
-@@ -115,7 +121,7 @@ endif ()
- # ----------------------------------------------------------------------
- # ZLIB
- 
--if (NOT "${ZLIB_HOME}" STREQUAL "")
-+if (NOT "${ZLIB_HOME}" STREQUAL "" OR ORC_PACKAGE_KIND STREQUAL "conan")
-   find_package (ZLIB REQUIRED)
-   set(ZLIB_VENDORED FALSE)
- else ()
-@@ -149,7 +155,9 @@ endif ()
- 
- add_library (orc_zlib INTERFACE)
- add_library (orc::zlib ALIAS orc_zlib)
--if (ORC_PREFER_STATIC_ZLIB AND ${ZLIB_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_link_libraries (orc_zlib INTERFACE ${ZLIB_LIBRARIES})
-+elseif (ORC_PREFER_STATIC_ZLIB AND ${ZLIB_STATIC_LIB})
-   target_link_libraries (orc_zlib INTERFACE ${ZLIB_STATIC_LIB})
- else ()
-   target_link_libraries (orc_zlib INTERFACE ${ZLIB_LIBRARY})
-@@ -167,7 +175,7 @@ endif ()
- # ----------------------------------------------------------------------
- # Zstd
- 
--if (NOT "${ZSTD_HOME}" STREQUAL "")
-+if (NOT "${ZSTD_HOME}" STREQUAL "" OR ORC_PACKAGE_KIND STREQUAL "conan")
-   find_package (ZSTD REQUIRED)
-   set(ZSTD_VENDORED FALSE)
- else ()
-@@ -208,12 +216,18 @@ endif ()
- 
- add_library (orc_zstd INTERFACE)
- add_library (orc::zstd ALIAS orc_zstd)
--if (ORC_PREFER_STATIC_ZSTD AND ${ZSTD_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_link_libraries (orc_zstd INTERFACE ${zstd_LIBRARIES})
-+elseif (ORC_PREFER_STATIC_ZSTD AND ${ZSTD_STATIC_LIB})
-   target_link_libraries (orc_zstd INTERFACE ${ZSTD_STATIC_LIB})
- else ()
-   target_link_libraries (orc_zstd INTERFACE ${ZSTD_LIBRARY})
- endif ()
--target_include_directories (orc_zstd SYSTEM INTERFACE ${ZSTD_INCLUDE_DIR})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_include_directories (orc_zstd SYSTEM INTERFACE ${zstd_INCLUDE_DIR})
-+else()
-+  target_include_directories (orc_zstd SYSTEM INTERFACE ${ZSTD_INCLUDE_DIR})
-+endif ()
- 
- if (ZSTD_VENDORED)
-   add_dependencies (orc_zstd zstd_ep)
-@@ -226,7 +240,7 @@ endif ()
- # ----------------------------------------------------------------------
- # LZ4
- 
--if (NOT "${LZ4_HOME}" STREQUAL "")
-+if (NOT "${LZ4_HOME}" STREQUAL "" OR ORC_PACKAGE_KIND STREQUAL "conan")
-   find_package (LZ4 REQUIRED)
-   set(LZ4_VENDORED FALSE)
- else ()
-@@ -260,12 +274,18 @@ endif ()
- 
- add_library (orc_lz4 INTERFACE)
- add_library (orc::lz4 ALIAS orc_lz4)
--if (ORC_PREFER_STATIC_LZ4 AND ${LZ4_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_link_libraries (orc_lz4 INTERFACE ${lz4_LIBRARIES})
-+elseif (ORC_PREFER_STATIC_LZ4 AND ${LZ4_STATIC_LIB})
-   target_link_libraries (orc_lz4 INTERFACE ${LZ4_STATIC_LIB})
- else ()
-   target_link_libraries (orc_lz4 INTERFACE ${LZ4_LIBRARY})
- endif ()
--target_include_directories (orc_lz4 SYSTEM INTERFACE ${LZ4_INCLUDE_DIR})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_include_directories (orc_lz4 SYSTEM INTERFACE ${lz4_INCLUDE_DIR})
-+else()
-+  target_include_directories (orc_lz4 SYSTEM INTERFACE ${LZ4_INCLUDE_DIR})
-+endif ()
- 
- if (LZ4_VENDORED)
-   add_dependencies (orc_lz4 lz4_ep)
-@@ -381,7 +401,7 @@ endif ()
- # ----------------------------------------------------------------------
- # Protobuf
- 
--if (NOT "${PROTOBUF_HOME}" STREQUAL "")
-+if (NOT "${PROTOBUF_HOME}" STREQUAL "" OR ORC_PACKAGE_KIND STREQUAL "conan")
-   find_package (Protobuf REQUIRED)
-   set(PROTOBUF_VENDORED FALSE)
- else ()
-@@ -430,14 +450,23 @@ add_library (orc::protobuf ALIAS orc_protobuf)
- add_library (orc_protoc INTERFACE)
- add_library (orc::protoc ALIAS orc_protoc)
- 
--if (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOBUF_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_link_libraries (orc_protobuf INTERFACE ${protobuf_LIBRARIES})
-+elseif (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOBUF_STATIC_LIB})
-   target_link_libraries (orc_protobuf INTERFACE ${PROTOBUF_STATIC_LIB})
- else ()
-   target_link_libraries (orc_protobuf INTERFACE ${PROTOBUF_LIBRARY})
- endif()
--target_include_directories (orc_protobuf SYSTEM INTERFACE 
${PROTOBUF_INCLUDE_DIR})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  target_include_directories (orc_protobuf SYSTEM INTERFACE 
${protobuf_INCLUDE_DIR})
-+else ()
-+  target_include_directories (orc_protobuf SYSTEM INTERFACE 
${PROTOBUF_INCLUDE_DIR})
-+endif ()
- 
--if (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOC_STATIC_LIB})
-+if (ORC_PACKAGE_KIND STREQUAL "conan")
-+  cmake_path(GET protobuf_INCLUDE_DIR PARENT_PATH PROTOBUF_HOME)
-+  set(PROTOBUF_EXECUTABLE ${PROTOBUF_HOME}/bin/protoc)
-+elseif (ORC_PREFER_STATIC_PROTOBUF AND ${PROTOC_STATIC_LIB})
-   target_link_libraries (orc_protoc INTERFACE ${PROTOC_STATIC_LIB})
- else ()
-   target_link_libraries (orc_protoc INTERFACE ${PROTOC_LIBRARY})


Reply via email to