build(conan): exports_sources replaced with the scm.Git

This commit is contained in:
Mateusz Pusz
2022-05-05 11:53:37 +02:00
parent 6d6bf81003
commit 4adc71db56

View File

@@ -22,8 +22,8 @@
from conan import ConanFile from conan import ConanFile
from conan.tools.cmake import CMakeToolchain, CMakeDeps, CMake from conan.tools.cmake import CMakeToolchain, CMakeDeps, CMake
from conan.tools.files import copy, load, rmdir from conan.tools.files import copy, load, rmdir, update_conandata
from conan.tools.scm import Version from conan.tools.scm import Git, Version
from conans.tools import get_env, check_min_cppstd # TODO replace with new tools for Conan 2.0 from conans.tools import get_env, check_min_cppstd # TODO replace with new tools for Conan 2.0
import os, re import os, re
@@ -62,7 +62,6 @@ class MPUnitsConan(ConanFile):
"build_docs": True "build_docs": True
} }
exports = ["LICENSE.md"] exports = ["LICENSE.md"]
exports_sources = ["docs/*", "src/*", "test/*", "cmake/*", "example/*", "CMakeLists.txt"]
generators = "cmake_paths" generators = "cmake_paths"
@property @property
@@ -140,6 +139,22 @@ class MPUnitsConan(ConanFile):
# # build_docs has sense only in a development or CI build # # build_docs has sense only in a development or CI build
# del self.options.build_docs # del self.options.build_docs
def export(self):
git = Git(self, self.recipe_folder)
scm_url, scm_commit = git.get_url_and_commit()
# stores the current url and commit in conandata.yml
update_conandata(self, {"sources": {"commit": scm_commit, "url": scm_url}})
def layout(self):
self.folders.source = "."
def source(self):
# recovers the saved url and commit from conandata.yml and use them to get sources
git = Git(self)
sources = self.conan_data["sources"]
git.clone(url=sources["url"], target=".")
git.checkout(commit=sources["commit"])
def generate(self): def generate(self):
tc = CMakeToolchain(self) tc = CMakeToolchain(self)
tc.variables["UNITS_DOWNCAST_MODE"] = str(self.options.downcast_mode).upper() tc.variables["UNITS_DOWNCAST_MODE"] = str(self.options.downcast_mode).upper()