🛠️🐜 Antkeeper superbuild with dependencies included https://antkeeper.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
2.1 KiB

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. from cpt.packager import ConanMultiPackager
  4. import os
  5. if __name__ == "__main__":
  6. login_username = os.getenv("CONAN_LOGIN_USERNAME")
  7. username = os.getenv("CONAN_USERNAME")
  8. tag_version = os.getenv("CONAN_PACKAGE_VERSION", os.getenv("TRAVIS_TAG"))
  9. package_version = tag_version.replace("v", "")
  10. package_name_unset = "SET-CONAN_PACKAGE_NAME-OR-CONAN_REFERENCE"
  11. package_name = os.getenv("CONAN_PACKAGE_NAME", package_name_unset)
  12. reference = "{}/{}".format(package_name, package_version)
  13. channel = os.getenv("CONAN_CHANNEL", "stable")
  14. upload = os.getenv("CONAN_UPLOAD")
  15. stable_branch_pattern = os.getenv("CONAN_STABLE_BRANCH_PATTERN", r"v\d+\.\d+\.\d+.*")
  16. test_folder = os.getenv("CPT_TEST_FOLDER", os.path.join("conan", "test_package"))
  17. upload_only_when_stable = os.getenv("CONAN_UPLOAD_ONLY_WHEN_STABLE", True)
  18. header_only = os.getenv("CONAN_HEADER_ONLY", False)
  19. pure_c = os.getenv("CONAN_PURE_C", False)
  20. disable_shared = os.getenv("CONAN_DISABLE_SHARED_BUILD", "False")
  21. if disable_shared == "True" and package_name == package_name_unset:
  22. raise Exception("CONAN_DISABLE_SHARED_BUILD: True is only supported when you define CONAN_PACKAGE_NAME")
  23. builder = ConanMultiPackager(username=username,
  24. reference=reference,
  25. channel=channel,
  26. login_username=login_username,
  27. upload=upload,
  28. stable_branch_pattern=stable_branch_pattern,
  29. upload_only_when_stable=upload_only_when_stable,
  30. test_folder=test_folder)
  31. if header_only == "False":
  32. builder.add_common_builds(pure_c=pure_c)
  33. else:
  34. builder.add()
  35. filtered_builds = []
  36. for settings, options, env_vars, build_requires, reference in builder.items:
  37. if disable_shared == "False" or not options["{}:shared".format(package_name)]:
  38. filtered_builds.append([settings, options, env_vars, build_requires])
  39. builder.builds = filtered_builds
  40. builder.run()