forked from eclipse-velocitas/vehicle-app-cpp-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
conanfile.py
81 lines (68 loc) · 3.22 KB
/
conanfile.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# Copyright (c) 2022 Robert Bosch GmbH
#
# This program and the accompanying materials are made available under the
# terms of the Apache License, Version 2.0 which is available at
# https://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.
#
# SPDX-License-Identifier: Apache-2.0
from conans import ConanFile, tools
from conan.tools.cmake import CMakeToolchain, CMake, cmake_layout
import subprocess
class VehicleAppCppSdkConan(ConanFile):
name = "vehicle-app-sdk"
version = "0.1"
license = "Apache-2.0"
url = "https://github.com/eclipse-velocitas/vehicle-app-cpp-sdk"
description = "The Vehicle App SDK for c++ allows to create Vehicle Apps from the Velocitas development model in the c++ programming language."
requires = "openssl/1.1.1q", "libcurl/7.84.0", "nlohmann_json/3.11.2", "paho-mqtt-cpp/1.2.0", "grpc/1.48.0", "protobuf/3.21.4", "cpr/1.9.0", "fmt/9.1.0", "zlib/1.2.13"
build_requires = "protobuf/3.21.4"
generators = "cmake"
author = "Robert Bosch GmbH"
scm = {
"type": "git", # Use "type": "svn", if local repo is managed using SVN
"subfolder": "vehicle-app-sdk",
"url": "https://github.com/eclipse-velocitas/vehicle-app-cpp-sdk",
"revision": "main"
}
# Binary configuration
settings = "os", "compiler", "build_type", "arch"
options = {"shared": [True, False], "fPIC": [True, False]}
default_options = {"shared": False, "fPIC": True}
# Sources are located in the same place as this recipe, copy them to the recipe
exports_sources = "build.sh", "build/conanbuildinfo.cmake", "CMakeLists.txt", "sdk/*", "examples/*", "conanfile.py", ".conan/profiles/*"
def config_options(self):
if self.settings.os == "Linux":
del self.options.fPIC
def layout(self):
cmake_layout(self, src_folder="sdk")
def generate(self):
#tc = CMakeToolchain(self)
# tc.generate()
# commented out since we rely on our build script to set up cmake
pass
def build(self):
build_type = self.settings.get_safe(
"build_type", default="Release").lower()
option = "-r" if build_type == "release" else "-d"
subprocess.call(
f"cd ../.. && ./build.sh {option} --no-examples", shell=True)
def package(self):
subprocess.call("pwd", shell=True)
self.copy("*.h", src="../sdk/include", dst="include", keep_path=True)
self.copy("*.h", src="../build/gens", dst="include", keep_path=True)
self.copy("*.a", src="../build/lib", dst="lib", keep_path=False)
def package_info(self):
self.cpp_info.includedirs = ["include"]
self.cpp_info.libdirs = ["lib"]
self.cpp_info.bindirs = ["bin"]
self.cpp_info.libs = ["vehicle-app-sdk",
"vehicle-app-sdk-generated-grpc"]
def imports(self):
self.copy("license*", src=".", dst="./licenses",
folder=True, ignore_case=True)