<?xml version="1.0" encoding="UTF-8"?>
<!--

    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.

-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.iotdb</groupId>
        <artifactId>iotdb-client</artifactId>
        <version>2.0.11-SNAPSHOT</version>
    </parent>
    <artifactId>client-cpp</artifactId>
    <packaging>pom</packaging>
    <name>IoTDB: Client: Client for CPP</name>
    <description>C++ client</description>
    <!--
        The C++ client build is now driven entirely by the top-level
        CMakeLists.txt in this directory. Maven only:
          1. Runs cmake configure + build (cmake-maven-plugin)
          2. Runs plain/TLS/mTLS integration-test phases (exec-maven-plugin)
          3. Packages the produced install tree (maven-assembly-plugin)

        Everything else - thrift download, code generation, Boost/m4/flex/bison
        bootstrap, OpenSSL discovery - lives in CMake modules under cmake/.
    -->
    <properties>
        <catch2.url>https://github.com/catchorg/Catch2/releases/download/v2.13.7/catch.hpp</catch2.url>
        <cmake.build.type>Release</cmake.build.type>
        <cmake.root.dir>${project.build.directory}/dependency/cmake/</cmake.root.dir>
        <cmake.source.dir>${project.basedir}</cmake.source.dir>
        <cmake.project.dir>${project.build.directory}/build</cmake.project.dir>
        <cmake.install.prefix>${project.build.directory}/install</cmake.install.prefix>
        <iotdb.deps.dir>${project.basedir}/third-party</iotdb.deps.dir>
        <iotdb.offline>OFF</iotdb.offline>
        <with.ssl>ON</with.ssl>
        <iotdb.openssl.from.source>ON</iotdb.openssl.from.source>
        <iotdb.cxx11.abi/>
        <!-- Switched to OFF by the .skipTests profile below. -->
        <build.tests>ON</build.tests>
        <maven.test.skip>${ctest.skip.tests}</maven.test.skip>
        <!-- Optional convenience: when a user still passes -Dboost.include.dir=...
             (legacy CLI from the old build), feed it to CMake as BOOST_INCLUDEDIR. -->
        <boost.include.dir/>
        <iotdb.extra.cxx.flags/>
        <!-- Override via -Dclient.cpp.package.classifier=... for per-toolchain release zips. -->
        <client.cpp.package.classifier>${os.classifier}</client.cpp.package.classifier>
        <client.cpp.package.name>iotdb-session-cpp-${project.version}-${client.cpp.package.classifier}</client.cpp.package.name>
        <client.cpp.ci.build.id>${env.GITHUB_RUN_ID}</client.cpp.ci.build.id>
        <iotdb.dist.root>${project.basedir}/../../distribution/target/apache-iotdb-${project.version}-all-bin/apache-iotdb-${project.version}-all-bin</iotdb.dist.root>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>iotdb-thrift-commons</artifactId>
            <version>2.0.11-SNAPSHOT</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>com.googlecode.maven-download-plugin</groupId>
                <artifactId>download-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>get-catch2</id>
                        <goals>
                            <goal>wget</goal>
                        </goals>
                        <phase>generate-resources</phase>
                        <configuration>
                            <url>${catch2.url}</url>
                            <unpack>false</unpack>
                            <outputDirectory>${project.build.directory}/test/catch2</outputDirectory>
                            <skip>${ctest.skip.tests}</skip>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>io.github.cmake-maven-plugin</groupId>
                <artifactId>cmake-maven-plugin</artifactId>
                <executions>
                    <!-- Configure: top-level CMakeLists.txt of this module -->
                    <execution>
                        <id>cmake-generate</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <phase>compile</phase>
                        <configuration>
                            <generator>${cmake.generator}</generator>
                            <sourcePath>${cmake.source.dir}</sourcePath>
                            <projectDirectory>${cmake.project.dir}</projectDirectory>
                            <options>
                                <option>-DCMAKE_BUILD_TYPE=${cmake.build.type}</option>
                                <option>-DCMAKE_INSTALL_PREFIX=${cmake.install.prefix}</option>
                                <option>-DBUILD_TESTING=${build.tests}</option>
                                <option>-DWITH_SSL=${with.ssl}</option>
                                <option>-DIOTDB_OPENSSL_FROM_SOURCE=${iotdb.openssl.from.source}</option>
                                <option>-DIOTDB_OFFLINE=${iotdb.offline}</option>
                                <option>-DIOTDB_DEPS_DIR=${iotdb.deps.dir}</option>
                                <option>-DIOTDB_USE_CXX11_ABI=${iotdb.cxx11.abi}</option>
                                <option>-DBOOST_INCLUDEDIR=${boost.include.dir}</option>
                                <option>-DCMAKE_POLICY_DEFAULT_CMP0091=NEW</option>
                                <option>-DIOTDB_EXTRA_CXX_FLAGS=${iotdb.extra.cxx.flags}</option>
                                <option>-DIOTDB_SESSION_VERSION=${project.version}</option>
                                <option>-DCATCH2_INCLUDE_DIR=${project.build.directory}/test/catch2</option>
                            </options>
                        </configuration>
                    </execution>
                    <!-- Build + install: drops headers/libs into target/install/{include,lib} -->
                    <execution>
                        <id>cmake-compile</id>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                        <phase>compile</phase>
                        <configuration>
                            <config>${cmake.build.type}</config>
                            <projectDirectory>${cmake.project.dir}</projectDirectory>
                            <target>install</target>
                        </configuration>
                    </execution>
                    <!-- Run ctest against the test binaries built in cmake-compile -->
                    <execution>
                        <id>cmake-run-test</id>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <phase>none</phase>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>run-cpp-it-phases</id>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <phase>integration-test</phase>
                        <configuration>
                            <skip>${ctest.skip.tests}</skip>
                            <executable>python</executable>
                            <arguments>
                                <argument>${project.basedir}/test/scripts/run_cpp_it_phases.py</argument>
                                <argument>${cmake.project.dir}</argument>
                                <argument>${iotdb.dist.root}</argument>
                                <argument>${project.basedir}/test/fixtures</argument>
                                <argument>--config</argument>
                                <argument>${cmake.build.type}</argument>
                            </arguments>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>prepare-client-cpp-package-metadata</id>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <phase>prepare-package</phase>
                        <configuration>
                            <outputDirectory>${project.build.directory}/package-metadata</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>${project.basedir}/src/assembly/package-metadata</directory>
                                    <filtering>true</filtering>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- zip: iotdb-session-cpp-<version>-<classifier>.zip with a package root directory. -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <executions>
                    <execution>
                        <id>package-client-cpp</id>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                            <finalName>iotdb-session-cpp-${project.version}</finalName>
                            <descriptors>
                                <descriptor>src/assembly/client-cpp.xml</descriptor>
                            </descriptors>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- Create SHA512 checksum files for the release zip. -->
            <plugin>
                <groupId>net.nicoulaj.maven.plugins</groupId>
                <artifactId>checksum-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>checksum-client-cpp-package</id>
                        <goals>
                            <goal>files</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                            <algorithms>
                                <algorithm>SHA-512</algorithm>
                            </algorithms>
                            <fileSets>
                                <fileSet>
                                    <directory>${project.build.directory}</directory>
                                    <includes>
                                        <include>${client.cpp.package.name}.zip</include>
                                    </includes>
                                </fileSet>
                            </fileSets>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <profile>
            <id>.os-unix</id>
            <activation>
                <os>
                    <name>Linux</name>
                    <family>unix</family>
                    <arch>!aarch64</arch>
                </os>
            </activation>
            <properties>
                <os.suffix>linux</os.suffix>
                <client.cpp.package.classifier>linux-x86_64-glibc2.28</client.cpp.package.classifier>
            </properties>
        </profile>
        <profile>
            <id>.os-unix-arm</id>
            <activation>
                <os>
                    <name>Linux</name>
                    <family>unix</family>
                    <arch>aarch64</arch>
                </os>
            </activation>
            <properties>
                <os.suffix>linux</os.suffix>
                <client.cpp.package.classifier>linux-aarch64-glibc2.28</client.cpp.package.classifier>
            </properties>
        </profile>
        <profile>
            <id>.os-mac</id>
            <activation>
                <os>
                    <family>mac</family>
                    <arch>!aarch64</arch>
                </os>
            </activation>
            <properties>
                <os.suffix>mac</os.suffix>
                <client.cpp.package.classifier>macos-x86_64</client.cpp.package.classifier>
            </properties>
        </profile>
        <profile>
            <id>.os-mac-arm</id>
            <activation>
                <os>
                    <family>mac</family>
                    <arch>aarch64</arch>
                </os>
            </activation>
            <properties>
                <os.suffix>mac</os.suffix>
                <client.cpp.package.classifier>macos-aarch64</client.cpp.package.classifier>
            </properties>
        </profile>
        <profile>
            <id>.os-windows</id>
            <activation>
                <os>
                    <family>windows</family>
                </os>
            </activation>
            <properties>
                <os.suffix>win</os.suffix>
                <client.cpp.package.classifier>windows-x86_64-msvc14.3</client.cpp.package.classifier>
            </properties>
        </profile>
        <!-- Windows: default to x64 (VS2017 and older default to Win32 without -A x64). -->
        <profile>
            <id>client-cpp-vs-x64</id>
            <activation>
                <os>
                    <family>windows</family>
                </os>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>io.github.cmake-maven-plugin</groupId>
                        <artifactId>cmake-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>cmake-generate</id>
                                <configuration>
                                    <options combine.children="append">
                                        <option>-DCMAKE_GENERATOR_PLATFORM=x64</option>
                                    </options>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>.skipTests</id>
            <activation>
                <property>
                    <name>skipTests</name>
                </property>
            </activation>
            <properties>
                <build.tests>OFF</build.tests>
            </properties>
        </profile>
        <!-- Spotless <clangFormat> needs Spotless 2.44+; only register C++ rules on the repository baseline, JDK 17+. -->
        <profile>
            <id>spotless-cpp</id>
            <activation>
                <jdk>[17,)</jdk>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.diffplug.spotless</groupId>
                        <artifactId>spotless-maven-plugin</artifactId>
                        <version>2.44.5</version>
                        <configuration>
                            <cpp>
                                <includes>
                                    <include>src/**/*.h</include>
                                    <include>src/**/*.hpp</include>
                                    <include>src/**/*.c</include>
                                    <include>src/**/*.cc</include>
                                    <include>src/**/*.cpp</include>
                                    <include>examples/**/*.c</include>
                                    <include>examples/**/*.cc</include>
                                    <include>examples/**/*.cpp</include>
                                </includes>
                                <excludes>
                                    <exclude>test/catch2/**</exclude>
                                </excludes>
                                <clangFormat>
                                    <version>${clang.format.version}</version>
                                    <style>file</style>
                                </clangFormat>
                            </cpp>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
