Skip to content

Commit

Permalink
Merge pull request #20 from Ultimaker/CURA-11622_conan_v2
Browse files Browse the repository at this point in the history
Cura 11622 conan v2
  • Loading branch information
wawanbreton authored Dec 4, 2024
2 parents f3efd45 + 62ada1d commit 7c356e6
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 56 deletions.
44 changes: 9 additions & 35 deletions .github/workflows/conan-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,41 +9,15 @@ on:
- 'CMakelists.txt'
- '.github/workflows/conan-package.yml'
- '.github/workflows/requirements*.txt'
branches:
- main
- 'CURA-*'
- 'PP-*'
- 'NP-*'
- '[0-9].[0-9]*'
- '[0-9].[0-9][0-9]*'

jobs:
conan-recipe-version:
uses: ultimaker/cura-workflows/.github/workflows/conan-recipe-version.yml@main
with:
project_name: curaengine_grpc_definitions

conan-package-export:
needs: [ conan-recipe-version ]
uses: ultimaker/cura-workflows/.github/workflows/conan-recipe-export.yml@main
with:
recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }}
recipe_id_latest: ${{ needs.conan-recipe-version.outputs.recipe_id_latest }}
secrets: inherit

conan-package-create-macos:
needs: [ conan-recipe-version, conan-package-export ]
if: ${{ (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || needs.conan-recipe-version.outputs.is_release_branch == 'true')) }}
uses: ultimaker/cura-workflows/.github/workflows/conan-package-create-macos.yml@main
with:
recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }}
secrets: inherit

conan-package-create-windows:
needs: [ conan-recipe-version, conan-package-export ]
if: ${{ (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || needs.conan-recipe-version.outputs.is_release_branch == 'true')) }}
uses: ultimaker/cura-workflows/.github/workflows/conan-package-create-windows.yml@main
with:
recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }}
secrets: inherit

conan-package-create-linux:
needs: [ conan-recipe-version, conan-package-export ]
if: ${{ (github.event_name == 'push' && (github.ref_name == 'main' || github.ref_name == 'master' || needs.conan-recipe-version.outputs.is_release_branch == 'true')) }}
uses: ultimaker/cura-workflows/.github/workflows/conan-package-create-linux.yml@main
with:
recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }}
conan-package:
uses: ultimaker/cura-workflows/.github/workflows/conan-package.yml@main
secrets: inherit
Empty file.
31 changes: 10 additions & 21 deletions conanfile.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Copyright (c) 2023 UltiMaker
# Copyright (c) 2024 UltiMaker
# curaengine_grpc_definitions is released under the terms of the MIT

import os
from pathlib import Path

Expand All @@ -10,9 +11,9 @@
from conan.tools.env import VirtualBuildEnv
from conan.tools.files import copy, update_conandata
from conan.tools.microsoft import check_min_vs, is_msvc_static_runtime, is_msvc
from conan.tools.scm import Version
from conan.tools.scm import Version, Git

required_conan_version = ">=1.58.0 <2.0.0"
required_conan_version = ">=2.7.0"


class CuraEngine_gRPC_DefinitionsConan(ConanFile):
Expand All @@ -39,6 +40,10 @@ def set_version(self):
if not self.version:
self.version = self.conan_data["version"]

def export(self):
git = Git(self)
update_conandata(self, {"version": self.version, "commit": git.get_commit()})

@property
def _min_cppstd(self):
return 20
Expand All @@ -53,9 +58,6 @@ def _compilers_minimum_version(self):
"visual_studio": "17",
}

def export(self):
update_conandata(self, {"version": self.version})

def export_sources(self):
copy(self, "CMakeLists.txt", self.recipe_folder, self.export_sources_folder)
copy(self, "*.proto", self.recipe_folder, self.export_sources_folder)
Expand All @@ -65,17 +67,8 @@ def config_options(self):
del self.options.fPIC

def configure(self):
self.options["boost"].header_only = True

if self.options.shared:
self.options.rm_safe("fPIC")
self.options["grpc"].csharp_plugin = False
self.options["grpc"].node_plugin = False
self.options["grpc"].objective_c_plugin = False
self.options["grpc"].php_plugin = False
self.options["grpc"].python_plugin = False
self.options["grpc"].ruby_plugin = False
self.options["asio-grpc"].local_allocator = "recycling_allocator"

def layout(self):
cmake_layout(self)
Expand All @@ -96,10 +89,7 @@ def layout(self):

def requirements(self):
self.requires("protobuf/3.21.12", transitive_headers = True)
self.requires("boost/1.82.0")
self.requires("asio-grpc/2.6.0")
self.requires("grpc/1.50.1", transitive_headers = True)
self.requires("openssl/3.2.0")
self.requires("asio-grpc/2.9.2")

def validate(self):
# validate the minimum cpp standard supported. For C++ projects only
Expand All @@ -119,12 +109,11 @@ def build_requirements(self):
self.tool_requires("protobuf/3.21.9")

def generate(self):
# BUILD_SHARED_LIBS and POSITION_INDEPENDENT_CODE are automatically parsed when self.options.shared or self.options.fPIC exist
tc = CMakeToolchain(self)
if is_msvc(self):
tc.variables["USE_MSVC_RUNTIME_LIBRARY_DLL"] = not is_msvc_static_runtime(self)
tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0077"] = "NEW"
tc.variables["GRPC_PROTOS"] = ";".join([str(p).replace("\\", "/") for p in Path(self.source_path).rglob("*.proto")])
tc.variables["GRPC_PROTOS"] = ";".join([str(p).replace("\\", "/") for p in Path(self.source_folder).rglob("*.proto")])
tc.generate()

tc = CMakeDeps(self)
Expand Down

0 comments on commit 7c356e6

Please sign in to comment.