mirror of https://github.com/apache/iotdb
Feature/test externalized iotdb tools thrift (#10893)
This commit is contained in:
parent
e9fe0b1082
commit
97a5ab693b
|
@ -1 +1,18 @@
|
|||
# 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.
|
||||
|
||||
* text=auto eol=lf
|
|
@ -66,10 +66,10 @@ jobs:
|
|||
# Explicitly using mvnw here as the build requires maven 3.9 and the default installation is older
|
||||
# Explicitly using "install" instead of package in order to be sure we're using libs built on this machine
|
||||
# (was causing problems on windows, but could cause problem on linux, when updating the thrift module)
|
||||
run: ./mvnw clean install -P with-tools,with-cpp -pl distribution -am -DskipTests
|
||||
run: ./mvnw clean install -P with-cpp -pl distribution -am -DskipTests
|
||||
- name: Test with Maven
|
||||
# Explicitly using mvnw here as the build requires maven 3.9 and the default installation is older
|
||||
run: ./mvnw clean verify -P with-tools,with-cpp -pl iotdb-client/client-cpp -am
|
||||
run: ./mvnw clean verify -P with-cpp -pl iotdb-client/client-cpp -am
|
||||
- name: Show test result
|
||||
if: failure()
|
||||
run: cat iotdb-client/client-cpp/target/build/test/Testing/Temporary/LastTest_*.log
|
||||
|
@ -96,11 +96,11 @@ jobs:
|
|||
# Explicitly using mvnw here as the build requires maven 3.9 and the default installation is older
|
||||
# Explicitly using "install" instead of package in order to be sure we're using libs built on this machine
|
||||
# (was causing problems on windows, but could cause problem on linux, when updating the thrift module)
|
||||
run: ./mvnw clean install -P with-tools,with-cpp -pl distribution -am -DskipTests
|
||||
run: ./mvnw clean install -P with-cpp -pl distribution -am -DskipTests
|
||||
- name: Test with Maven
|
||||
shell: bash
|
||||
# Explicitly using mvnw here as the build requires maven 3.9 and the default installation is older
|
||||
run: ./mvnw clean verify -P with-tools,with-cpp -pl iotdb-client/client-cpp -am
|
||||
run: ./mvnw clean verify -P with-cpp -pl iotdb-client/client-cpp -am
|
||||
- name: Upload Artifact
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
|
|
|
@ -97,9 +97,9 @@
|
|||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>org.apache.iotdb</groupId>
|
||||
<groupId>org.apache.iotdb.tools</groupId>
|
||||
<artifactId>iotdb-tools-thrift</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<version>${iotdb-tools-thrift.version}</version>
|
||||
<classifier>${os.classifier}</classifier>
|
||||
<type>zip</type>
|
||||
<overWrite>true</overWrite>
|
||||
|
|
|
@ -77,9 +77,9 @@
|
|||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>org.apache.iotdb</groupId>
|
||||
<groupId>org.apache.iotdb.tools</groupId>
|
||||
<artifactId>iotdb-tools-thrift</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<version>${iotdb-tools-thrift.version}</version>
|
||||
<classifier>${os.classifier}</classifier>
|
||||
<type>zip</type>
|
||||
<overWrite>true</overWrite>
|
||||
|
|
11
pom.xml
11
pom.xml
|
@ -24,7 +24,7 @@
|
|||
<parent>
|
||||
<groupId>org.apache</groupId>
|
||||
<artifactId>apache</artifactId>
|
||||
<version>23</version>
|
||||
<version>30</version>
|
||||
</parent>
|
||||
<groupId>org.apache.iotdb</groupId>
|
||||
<artifactId>iotdb-parent</artifactId>
|
||||
|
@ -112,6 +112,8 @@
|
|||
we'll stay at 0.14.1.
|
||||
-->
|
||||
<thrift.version>0.14.1</thrift.version>
|
||||
<!-- This is the version of the thrift binary -->
|
||||
<iotdb-tools-thrift.version>0.14.1.0</iotdb-tools-thrift.version>
|
||||
<airline.version>0.8</airline.version>
|
||||
<jackson.version>2.13.5</jackson.version>
|
||||
<disrupter.version>3.4.2</disrupter.version>
|
||||
|
@ -1368,13 +1370,6 @@
|
|||
<module>integration-test</module>
|
||||
</modules>
|
||||
</profile>
|
||||
<!-- Enable the building of the tools (Currently this only adds building of the Thrift module) -->
|
||||
<profile>
|
||||
<id>with-tools</id>
|
||||
<modules>
|
||||
<module>tools</module>
|
||||
</modules>
|
||||
</profile>
|
||||
<!-- Make sure the source assembly has the right name -->
|
||||
<profile>
|
||||
<id>apache-release</id>
|
||||
|
|
183
tools/README.md
183
tools/README.md
|
@ -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.
|
||||
|
||||
-->
|
||||
# Building compile tools
|
||||
|
||||
|
||||
## Requirements
|
||||
* Java 8+
|
||||
* Maven 3.5+
|
||||
* Flex
|
||||
* Bison 2.7+
|
||||
* Boost
|
||||
* OpenSSL 1.0+
|
||||
|
||||
|
||||
### Mac
|
||||
|
||||
- Bison
|
||||
|
||||
Bison 2.3 is preinstalled on OSX, but this version is too low.
|
||||
When building Thrift with Bison 2.3, the following error would pop out:
|
||||
|
||||
|
||||
```invalid directive: '%code'```
|
||||
|
||||
For such case, please update `Bison`:
|
||||
|
||||
```
|
||||
brew install bison
|
||||
brew link bison --force
|
||||
```
|
||||
|
||||
Then, you need to tell the OS where the new bison is.
|
||||
|
||||
For Bash users:
|
||||
```
|
||||
echo 'export PATH="/usr/local/opt/bison/bin:$PATH"' >> ~/.bash_profile
|
||||
```
|
||||
|
||||
For zsh users:
|
||||
```
|
||||
echo 'export PATH="/usr/local/opt/bison/bin:$PATH"' >> ~/.zshrc
|
||||
```
|
||||
|
||||
- Boost
|
||||
|
||||
Please make sure a relative new version of Boost is ready on your machine.
|
||||
If no Boost available, install the latest version of Boost:
|
||||
|
||||
```
|
||||
brew install boost
|
||||
brew link boost
|
||||
```
|
||||
|
||||
|
||||
- OpenSSL
|
||||
|
||||
Make sure the Openssl libraries has been install on your Mac.
|
||||
The default Openssl include file search path is "/usr/local/opt/openssl/include".
|
||||
If Openssl header files can not be found when building Thrift, please add option
|
||||
```-Dopenssl.include.dir=""``` to specify the correct directory on your Mac.
|
||||
|
||||
### Linux
|
||||
|
||||
#### Additional requirements
|
||||
|
||||
* g++
|
||||
|
||||
To install all dependencies, run:
|
||||
|
||||
Debian/Ubuntu:
|
||||
|
||||
```
|
||||
sudo apt-get install gcc g++ bison flex libboost-all-dev
|
||||
```
|
||||
|
||||
CentOS:
|
||||
```
|
||||
yum install gcc g++ bison flex boost-devel
|
||||
```
|
||||
|
||||
### Windows
|
||||
|
||||
Make sure a complete Windows C++ building environment is prepared on your machine.
|
||||
MSVC, MinGW... are supported.
|
||||
|
||||
If you are using MS Visual Studio, remember to install Visual Studio C/C++ IDE and compiler(supporting CMake, Clang, MinGW).
|
||||
|
||||
#### Flex and Bison
|
||||
Windows Flex and Bison could be downloaded from SourceForge: https://sourceforge.net/projects/winflexbison/
|
||||
|
||||
After downloaded, please rename the executables to flex.exe and bison.exe and add them to "PATH" environment variables.
|
||||
|
||||
#### Boost
|
||||
For Boost, please download from the official website: https://www.boost.org/users/download/
|
||||
|
||||
Then build Boost by executing bootstrap.bat and b2.exe.
|
||||
```
|
||||
bootstrap.bat
|
||||
.\b2.exe
|
||||
```
|
||||
|
||||
To help CMake find your Boost libraries on windows, you should set `-Dboost.include.dir=${your boost header folder} -Dboost.library.dir=${your boost lib (stage) folder}`
|
||||
to your mvn build command.
|
||||
|
||||
#### Cmake generator on Windows
|
||||
|
||||
There is a long list of supported Cmake generators on Windows environment.
|
||||
|
||||
|
||||
```
|
||||
Visual Studio 16 2019 = Generates Visual Studio 2019 project files.
|
||||
Use -A option to specify architecture.
|
||||
Visual Studio 15 2017 [arch] = Generates Visual Studio 2017 project files.
|
||||
Optional [arch] can be "Win64" or "ARM".
|
||||
Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
|
||||
Optional [arch] can be "Win64" or "ARM".
|
||||
Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
|
||||
Optional [arch] can be "Win64" or "ARM".
|
||||
Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
|
||||
Optional [arch] can be "Win64" or "ARM".
|
||||
Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
|
||||
Optional [arch] can be "Win64" or "IA64".
|
||||
Visual Studio 9 2008 [arch] = Generates Visual Studio 2008 project files.
|
||||
Optional [arch] can be "Win64" or "IA64".
|
||||
Borland Makefiles = Generates Borland makefiles.
|
||||
* NMake Makefiles = Generates NMake makefiles.
|
||||
NMake Makefiles JOM = Generates JOM makefiles.
|
||||
MSYS Makefiles = Generates MSYS makefiles.
|
||||
MinGW Makefiles = Generates a make file for use with
|
||||
mingw32-make.
|
||||
Unix Makefiles = Generates standard UNIX makefiles.
|
||||
Green Hills MULTI = Generates Green Hills MULTI files
|
||||
(experimental, work-in-progress).
|
||||
Ninja = Generates build.ninja files.
|
||||
Ninja Multi-Config = Generates build-<Config>.ninja files.
|
||||
Watcom WMake = Generates Watcom WMake makefiles.
|
||||
CodeBlocks - MinGW Makefiles = Generates CodeBlocks project files.
|
||||
CodeBlocks - NMake Makefiles = Generates CodeBlocks project files.
|
||||
CodeBlocks - NMake Makefiles = Generates CodeBlocks project fi
|
||||
|
||||
```
|
||||
(the list is gotten by `cmake --help`.)
|
||||
|
||||
When building client-cpp project, use -Dcmake.generator="" option to specify a Cmake generator.
|
||||
E.g., `mvn package -Dcmake.generator="Visual Studio 15 2017 [arch]"`
|
||||
|
||||
|
||||
### FAQ
|
||||
|
||||
#### on Mac
|
||||
|
||||
if you occur some errors when compiling thrift source code, try to downgrade your xcode-commandline from 12 to 11.5
|
||||
|
||||
see https://stackoverflow.com/questions/63592445/ld-unsupported-tapi-file-type-tapi-tbd-in-yaml-file/65518087#65518087
|
||||
|
||||
#### on Windows
|
||||
|
||||
When Building Thrift and downloading packages via "wget", a possible annoying issue may occur with
|
||||
error message looks like:
|
||||
```
|
||||
Failed to delete cached file C:\Users\Administrator\.m2\repository\.cache\download-maven-plugin\index.ser
|
||||
```
|
||||
Possible fix:
|
||||
- Try to delete the ".m2\repository\\.cache\" directory and try again.
|
||||
- Add "\<skipCache>true\</skipCache>" configuration to the download-maven-plugin maven phase that complains this error.
|
|
@ -1,33 +0,0 @@
|
|||
<?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-parent</artifactId>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>iotdb-tools</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<name>IoTDB: Tools</name>
|
||||
<modules>
|
||||
<module>thrift</module>
|
||||
</modules>
|
||||
</project>
|
|
@ -1,312 +0,0 @@
|
|||
<?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-tools</artifactId>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>iotdb-tools-thrift</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<name>IoTDB: Tools: Thrift</name>
|
||||
<description>Local build of the Apache Thrift compiler.</description>
|
||||
<properties>
|
||||
<thrift.with.cpp>ON</thrift.with.cpp>
|
||||
<thrift.with.go>ON</thrift.with.go>
|
||||
<thrift.with.python>ON</thrift.with.python>
|
||||
</properties>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.googlecode.maven-download-plugin</groupId>
|
||||
<artifactId>download-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<!-- Download the sources for building the thrift compiler -->
|
||||
<execution>
|
||||
<id>get-thrift</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>wget</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<url>https://archive.apache.org/dist/thrift/${thrift.version}/thrift-${thrift.version}.tar.gz</url>
|
||||
<unpack>true</unpack>
|
||||
<outputDirectory>${project.build.directory}</outputDirectory>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>com.googlecode.cmake-maven-project</groupId>
|
||||
<artifactId>cmake-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<!-- Uses a CMake generator to generate the build using the build tool of choice -->
|
||||
<execution>
|
||||
<id>cmake-generate</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>generate</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<generator>${cmake.generator}</generator>
|
||||
<sourcePath>${project.build.directory}/thrift-${thrift.version}</sourcePath>
|
||||
<targetPath>${project.build.directory}/build</targetPath>
|
||||
<options>
|
||||
<!-- Disable testing for now -->
|
||||
<option>-DBUILD_TESTING=OFF</option>
|
||||
<!-- Enable and disable the building of code generators for different languages -->
|
||||
<option>-DTHRIFT_COMPILER_AS3=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_C_GLIB=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_CL=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_CPP=${thrift.with.cpp}</option>
|
||||
<option>-DTHRIFT_COMPILER_D=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_DART=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_DELPHI=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_ERL=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_GO=${thrift.with.go}</option>
|
||||
<option>-DTHRIFT_COMPILER_GV=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_HAXE=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_HS=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_HTML=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_JAVA=ON</option>
|
||||
<option>-DTHRIFT_COMPILER_JAVAME=ON</option>
|
||||
<option>-DTHRIFT_COMPILER_JSON=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_LUA=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_NETSTD=ON</option>
|
||||
<option>-DTHRIFT_COMPILER_OCAML=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_PERL=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_PHP=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_PY=${thrift.with.python}</option>
|
||||
<option>-DTHRIFT_COMPILER_RB=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_RS=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_ST=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_SWIFT=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_XML=OFF</option>
|
||||
<option>-DTHRIFT_COMPILER_XSD=OFF</option>
|
||||
<!-- Enable and disable the building of libs for different languages -->
|
||||
<option>-DBUILD_C_GLIB=OFF</option>
|
||||
<option>-DBUILD_CPP=${thrift.with.cpp}</option>
|
||||
<!-- Don't build Java, as the libs are available via Maven -->
|
||||
<option>-DBUILD_JAVA=OFF</option>
|
||||
<option>-DBUILD_NODEJS=OFF</option>
|
||||
<option>-DBUILD_PYTHON=${thrift.with.python}</option>
|
||||
<option>-DBUILD_JAVASCRIPT=OFF</option>
|
||||
<option>-DBUILD_HASKELL=OFF</option>
|
||||
<option>-DWITH_SHARED_LIB=OFF</option>
|
||||
<!-- Generate libthrift.a to compile IoTDB Session -->
|
||||
<option>-DWITH_STATIC_LIB=ON</option>
|
||||
<option>-DCMAKE_POSITION_INDEPENDENT_CODE=ON</option>
|
||||
</options>
|
||||
</configuration>
|
||||
</execution>
|
||||
<!-- Actually executes the build -->
|
||||
<execution>
|
||||
<id>cmake-compile</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>compile</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<config>${cmake.build.type}</config>
|
||||
<!-- The directory where the "generate" step generated the build configuration -->
|
||||
<projectDirectory>${project.build.directory}/build</projectDirectory>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!--
|
||||
Bundle up the needed parts into an archive for this architecture
|
||||
The bundle contains the Thrift executable, the shared libraries and the header-files,
|
||||
which are all needed to build the client
|
||||
-->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-assembly-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>single</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<appendAssemblyId>true</appendAssemblyId>
|
||||
<descriptors>
|
||||
<descriptor>src/main/assembly/thrift.xml</descriptor>
|
||||
</descriptors>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>.os-unix</id>
|
||||
<activation>
|
||||
<os>
|
||||
<family>unix</family>
|
||||
<name>Linux</name>
|
||||
<arch>!aarch64</arch>
|
||||
</os>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.googlecode.cmake-maven-project</groupId>
|
||||
<artifactId>cmake-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<!-- Uses a CMake generator to generate the build using the build tool of choice -->
|
||||
<execution>
|
||||
<id>cmake-generate</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>generate</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<generator>${cmake.generator}</generator>
|
||||
<sourcePath>${project.build.directory}/thrift-${thrift.version}</sourcePath>
|
||||
<targetPath>${project.build.directory}/build</targetPath>
|
||||
<options combine.children="append">
|
||||
<!-- Tell the linker to build statically linked binaries -->
|
||||
<option>-DCMAKE_EXE_LINKER_FLAGS=-static</option>
|
||||
<option>-DZLIB_USE_STATIC_LIBS=ON</option>
|
||||
<option>-DOPENSSL_USE_STATIC_LIBS=ON</option>
|
||||
</options>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>.os-unix-arm</id>
|
||||
<activation>
|
||||
<os>
|
||||
<family>unix</family>
|
||||
<name>Linux</name>
|
||||
<arch>aarch64</arch>
|
||||
</os>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.googlecode.cmake-maven-project</groupId>
|
||||
<artifactId>cmake-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<!-- Uses a CMake generator to generate the build using the build tool of choice -->
|
||||
<execution>
|
||||
<id>cmake-generate</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>generate</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<generator>${cmake.generator}</generator>
|
||||
<sourcePath>${project.build.directory}/thrift-${thrift.version}</sourcePath>
|
||||
<targetPath>${project.build.directory}/build</targetPath>
|
||||
<options combine.children="append">
|
||||
<!-- Tell the linker to build statically linked binaries -->
|
||||
<option>-DCMAKE_EXE_LINKER_FLAGS=-static</option>
|
||||
<option>-DZLIB_USE_STATIC_LIBS=ON</option>
|
||||
<option>-DOPENSSL_USE_STATIC_LIBS=ON</option>
|
||||
</options>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>.os-mac</id>
|
||||
<activation>
|
||||
<os>
|
||||
<family>mac</family>
|
||||
<arch>!aarch64</arch>
|
||||
</os>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.googlecode.cmake-maven-project</groupId>
|
||||
<artifactId>cmake-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<!-- Uses a CMake generator to generate the build using the build tool of choice -->
|
||||
<execution>
|
||||
<id>cmake-generate</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>generate</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<generator>${cmake.generator}</generator>
|
||||
<sourcePath>${project.build.directory}/thrift-${thrift.version}</sourcePath>
|
||||
<targetPath>${project.build.directory}/build</targetPath>
|
||||
<options combine.children="append">
|
||||
<!-- Specify new version Bison path for Mac-OS, as the default version is too old -->
|
||||
<option>-DBISON_EXECUTABLE=/usr/local/opt/bison/bin/bison</option>
|
||||
</options>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>.os-mac-arm</id>
|
||||
<activation>
|
||||
<os>
|
||||
<family>mac</family>
|
||||
<arch>aarch64</arch>
|
||||
</os>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.googlecode.cmake-maven-project</groupId>
|
||||
<artifactId>cmake-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<!-- Uses a CMake generator to generate the build using the build tool of choice -->
|
||||
<execution>
|
||||
<id>cmake-generate</id>
|
||||
<phase>generate-sources</phase>
|
||||
<goals>
|
||||
<goal>generate</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<generator>${cmake.generator}</generator>
|
||||
<sourcePath>${project.build.directory}/thrift-${thrift.version}</sourcePath>
|
||||
<targetPath>${project.build.directory}/build</targetPath>
|
||||
<options combine.children="append">
|
||||
<!-- Specify new version Bison path for Mac-OS, as the default version is too old -->
|
||||
<option>-DBISON_EXECUTABLE=/opt/homebrew/opt/bison/bin/bison</option>
|
||||
</options>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
|
@ -1,64 +0,0 @@
|
|||
<?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.
|
||||
-->
|
||||
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
|
||||
<id>${os.classifier}</id>
|
||||
<formats>
|
||||
<format>zip</format>
|
||||
<format>dir</format>
|
||||
</formats>
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
<fileSets>
|
||||
<!-- Include the executable -->
|
||||
<fileSet>
|
||||
<directory>${project.build.directory}/build/compiler/cpp/bin</directory>
|
||||
<!-- Make the file executable -->
|
||||
<fileMode>0755</fileMode>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
<outputDirectory>bin</outputDirectory>
|
||||
</fileSet>
|
||||
<!-- Include the shared-libraries -->
|
||||
<fileSet>
|
||||
<directory>${project.build.directory}/build</directory>
|
||||
<includes>
|
||||
<include>lib/*.a</include>
|
||||
<include>lib/Release/*.lib</include>
|
||||
</includes>
|
||||
<outputDirectory>/</outputDirectory>
|
||||
</fileSet>
|
||||
<!-- Include the header-files -->
|
||||
<fileSet>
|
||||
<directory>${project.build.directory}/thrift-${thrift.version}/lib/cpp/src</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
<outputDirectory>include</outputDirectory>
|
||||
</fileSet>
|
||||
<!-- Include the config.h -->
|
||||
<fileSet>
|
||||
<directory>${project.build.directory}/build/thrift</directory>
|
||||
<includes>
|
||||
<include>config.h</include>
|
||||
</includes>
|
||||
<outputDirectory>include/thrift</outputDirectory>
|
||||
</fileSet>
|
||||
</fileSets>
|
||||
</assembly>
|
Loading…
Reference in New Issue