Skip to content

Commit e164003

Browse files
authored
Merge pull request #24 from uilianries/hotfix/option-name
Inspect elements
2 parents 1942bca + 8d58e83 commit e164003

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

bincrafters/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# -*- coding: utf-8 -*-
22

3-
__version__ = '0.18.1'
3+
__version__ = '0.18.2'

bincrafters/build_shared.py

+19-3
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
import os
44
import re
55
import platform
6+
from conans.client import conan_api
67
from cpt.packager import ConanMultiPackager
78
from cpt.tools import split_colon_env
89
from cpt.remotes import RemotesManager
910
from bincrafters.build_paths import BINCRAFTERS_REPO_URL
1011

11-
1212
def get_recipe_path(cwd=None):
1313
conanfile = os.getenv("CONAN_CONANFILE", "conanfile.py")
1414
if cwd is None:
@@ -31,15 +31,31 @@ def get_value_from_recipe(search_string, recipe=None):
3131
return result
3232

3333

34+
def inspect_value_from_recipe(attribute, recipe_path):
35+
try:
36+
conan_instance, _, _ = conan_api.Conan.factory()
37+
inspect_result = conan_instance.inspect(path=recipe_path, attributes=[attribute])
38+
return inspect_result.get(attribute)
39+
except:
40+
pass
41+
return None
42+
43+
3444
def get_name_from_recipe(recipe=None):
35-
return get_value_from_recipe(r'''name\s*=\s*["'](\S*)["']''', recipe=recipe).groups()[0]
45+
name = inspect_value_from_recipe(attribute="name", recipe_path=get_recipe_path())
46+
return name or get_value_from_recipe(r'''name\s*=\s*["'](\S*)["']''', recipe=recipe).groups()[0]
3647

3748

3849
def get_version_from_recipe(recipe=None):
39-
return get_value_from_recipe(r'''version\s*=\s*["'](\S*)["']''', recipe=recipe).groups()[0]
50+
version = inspect_value_from_recipe(attribute="version", recipe_path=get_recipe_path())
51+
return version or get_value_from_recipe(r'''version\s*=\s*["'](\S*)["']''', recipe=recipe).groups()[0]
4052

4153

4254
def is_shared(recipe=None):
55+
options = inspect_value_from_recipe(attribute="options", recipe_path=get_recipe_path())
56+
if options:
57+
return "shared" in options
58+
4359
match = get_value_from_recipe(r'''options.*=([\s\S]*?)(?=}|$)''', recipe=recipe)
4460
if match is None:
4561
return False

0 commit comments

Comments
 (0)