0

Trying to create a conan (v2.11) package from a zip archive to store in a gitlab conan registry. However in my conanfile.py I can't seem to copy or access files from the directory where I'm running conan as it appears to have set the current directory to within the .conan2/p/ cache directory structure.

These diagnostics:

def generate(self):
    print(f"Recipe path: {self.recipe_folder}")
    print(f"Source path: {self.source_folder}")
    print(f"Build path: {self.build_folder}")
    print(f"Dest/Package path: {self.package_folder}")
    current_directory = os.getcwd()
    print(f"Current_directory: {current_directory}")

have this output:

mypack/1.7.0@jim/test: Calling generate()
mypack/1.7.0@jim/test: Generators folder: C:\Users\jim\.conan2\p\b\mypack4aacdfed668f5\b
Recipe path: C:\Users\jim\.conan2\p\badl5fe3d4cc2e7b1\e
Source path: C:\Users\jim\.conan2\p\b\badl4aacdfed668f5\b
Build path: C:\Users\jim\.conan2\p\b\badl4aacdfed668f5\b
Dest/Package path: C:\Users\jim\.conan2\p\b\badl4aacdfed668f5\p
Current_directory: C:\Users\jim\.conan2\p\b\badl4aacdfed668f5\b

Here is my conanfile.py:

from conan import ConanFile
from conan.tools.files import copy

class MyPackConan(ConanFile):
    name = "mypack"
    version = "1.7.0"
    exports_sources = "."

    ...

    def build(self):
        self.run("ant package", cwd=self.recipe_folder)

    def package(self):
        copy(self, pattern="dist/*.zip", src=".", dst=self.package_folder, keep_path=False)

    def package_id(self):
        self.info.requires.full_recipe_mode()

I was hoping the export_sources = "." would give me access to the files of interest by copying them to the recipe or source or build directories but that did not happen. Any help greatly appreciated.

3

1 Answer 1

1

. will only match a file with the name . you need a wildcard like * to match all files https://docs.conan.io/2/reference/conanfile/attributes.html#exports-sources

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.