[DO-1345] fixed windows packages (!16)
Reviewed-on: https://git.avroid.tech/Conan/conan_build/pulls/16 Co-authored-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.team> Co-committed-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.team>
This commit is contained in:
committed by
Aleksandr Vodyanov
parent
3759e1163f
commit
a82e89a1bc
60
recipes/meson/all/conandata.yml
Normal file
60
recipes/meson/all/conandata.yml
Normal file
@@ -0,0 +1,60 @@
|
||||
sources:
|
||||
"1.6.0":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/archive/1.6.0.tar.gz"
|
||||
sha256: "342300656bfdafb6cc09325bdd0fd507366ecaa6be25fa4525f50889adf7c606"
|
||||
"1.5.1":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/archive/1.5.1.tar.gz"
|
||||
sha256: "55f6acd5bf72c14d4aa5a781993633f84a1d117bdf2c2057735902ced9b81390"
|
||||
"1.5.0":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/archive/1.5.0.tar.gz"
|
||||
sha256: "781913826fb6f478eb7d77e1942ab3df39444e4c90e9a3523737e215171db469"
|
||||
"1.4.1":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/archive/1.4.1.tar.gz"
|
||||
sha256: "a7efc72ecb873c5a62031ade1921a7177b67cfdcb2e9410a7ab023f9e8192f4b"
|
||||
"1.4.0":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/archive/1.4.0.tar.gz"
|
||||
sha256: "61382f295378bddcd9bebb3a9a9065b1cbc671fa41b80964ab02726f9a5f3a88"
|
||||
"1.3.2":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/archive/1.3.2.tar.gz"
|
||||
sha256: "683082fb3c5cddf203b21d29bdf4c227e2f7964da5324a15e1a5f7db94322b4b"
|
||||
"1.3.1":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/archive/1.3.1.tar.gz"
|
||||
sha256: "274c121edb859602eb4589d31d8791e980748bb19950fc6f611a21d76dc22cc6"
|
||||
"1.3.0":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/releases/download/1.3.0/meson-1.3.0.tar.gz"
|
||||
sha256: "4ba253ef60e454e23234696119cbafa082a0aead0bd3bbf6991295054795f5dc"
|
||||
"1.2.3":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/releases/download/1.2.3/meson-1.2.3.tar.gz"
|
||||
sha256: "4533a43c34548edd1f63a276a42690fce15bde9409bcf20c4b8fa3d7e4d7cac1"
|
||||
"1.2.2":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/releases/download/1.2.2/meson-1.2.2.tar.gz"
|
||||
sha256: "4a0f04de331fbc7af3b802a844fc8838f4ccd1ded1e792ba4f8f2faf8c5fe4d6"
|
||||
"1.2.1":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/releases/download/1.2.1/meson-1.2.1.tar.gz"
|
||||
sha256: "b1db3a153087549497ee52b1c938d2134e0338214fe14f7efd16fecd57b639f5"
|
||||
"1.2.0":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/archive/1.2.0.tar.gz"
|
||||
sha256: "603489f0aaa6305f806c6cc4a4455a965f22290fc74f65871f589b002110c790"
|
||||
"1.1.1":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/releases/download/1.1.1/meson-1.1.1.tar.gz"
|
||||
sha256: "d04b541f97ca439fb82fab7d0d480988be4bd4e62563a5ca35fadb5400727b1c"
|
||||
# qt requires 1.1.0
|
||||
"1.1.0":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/archive/1.1.0.tar.gz"
|
||||
sha256: "f29a3e14062043d75e82d16f1e41856e6b1ed7a7c016e10c7b13afa7ee6364cc"
|
||||
# wayland-protocols requires 1.0.0
|
||||
"1.0.0":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/releases/download/1.0.0/meson-1.0.0.tar.gz"
|
||||
sha256: "aa50a4ba4557c25e7d48446abfde857957dcdf58385fffbe670ba0e8efacce05"
|
||||
# gtk requires 0.62.2
|
||||
"0.62.2":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/archive/0.62.2.tar.gz"
|
||||
sha256: "97108f4d9bb16bc758c44749bd25ec7d42c6a762961efbed8b7589a2a3551ea6"
|
||||
# gst-plugins-base requires 0.61.2
|
||||
"0.61.2":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/archive/0.61.2.tar.gz"
|
||||
sha256: "33cd555314a94d52acfbb3f6f44d4e61c4ad0bfec7acf4301be7e40bb969b3a8"
|
||||
# gobject-introspection requires 0.59.3
|
||||
"0.59.3":
|
||||
url: "https://nexus.avroid.tech/repository/devops-raw-proxy-github/mesonbuild/meson/archive/0.59.3.tar.gz"
|
||||
sha256: "b2c5bfd5032189a66cf6a32d98ba82d94d7d314577d8efe4d9dc159c4073f282"
|
||||
81
recipes/meson/all/conanfile.py
Normal file
81
recipes/meson/all/conanfile.py
Normal file
@@ -0,0 +1,81 @@
|
||||
import os
|
||||
import textwrap
|
||||
|
||||
from conan import ConanFile, conan_version
|
||||
from conan.tools.files import copy, get, rmdir, save, replace_in_file
|
||||
from conan.tools.layout import basic_layout
|
||||
from conan.tools.scm import Version
|
||||
|
||||
required_conan_version = ">=1.52.0"
|
||||
|
||||
|
||||
class MesonConan(ConanFile):
|
||||
name = "meson"
|
||||
description = "a project to create the best possible next-generation build system"
|
||||
license = "Apache-2.0"
|
||||
url = "https://github.com/conan-io/conan-center-index"
|
||||
homepage = "https://github.com/mesonbuild/meson"
|
||||
topics = ("mesonbuild", "build-system")
|
||||
package_type = "application"
|
||||
no_copy_source = True
|
||||
|
||||
def layout(self):
|
||||
basic_layout(self, src_folder="src")
|
||||
|
||||
# def requirements(self):
|
||||
# if self.conf.get("tools.meson.mesontoolchain:backend", default="ninja", check_type=str) == "ninja":
|
||||
# # Meson requires >=1.8.2 as of 1.5
|
||||
# # https://github.com/mesonbuild/meson/blob/b6b634ad33e5ca9ad4a9d6139dba4244847cc0e8/mesonbuild/backend/ninjabackend.py#L625
|
||||
# self.requires("ninja/[>=1.10.2 <2]")
|
||||
|
||||
def package_id(self):
|
||||
self.info.clear()
|
||||
|
||||
def source(self):
|
||||
get(self, **self.conan_data["sources"][self.version], strip_root=True)
|
||||
|
||||
def package(self):
|
||||
copy(self, "COPYING", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses"))
|
||||
copy(self, "*", src=self.source_folder, dst=os.path.join(self.package_folder, "bin"))
|
||||
rmdir(self, os.path.join(self.package_folder, "bin", "test cases"))
|
||||
|
||||
# create wrapper scripts
|
||||
save(self, os.path.join(self.package_folder, "bin", "meson.cmd"), textwrap.dedent("""\
|
||||
@echo off
|
||||
set PYTHONDONTWRITEBYTECODE=1
|
||||
CALL python %~dp0/meson.py %*
|
||||
"""))
|
||||
save(self, os.path.join(self.package_folder, "bin", "meson"), textwrap.dedent("""\
|
||||
#!/usr/bin/env bash
|
||||
meson_dir=$(dirname "$0")
|
||||
export PYTHONDONTWRITEBYTECODE=1
|
||||
exec "$meson_dir/meson.py" "$@"
|
||||
"""))
|
||||
|
||||
def finalize(self):
|
||||
copy(self, "*", src=self.immutable_package_folder, dst=self.package_folder)
|
||||
replace_in_file(self, os.path.join(self.package_folder, "bin", "meson.cmd"),
|
||||
"set PYTHONDONTWRITEBYTECODE=1",
|
||||
"")
|
||||
|
||||
replace_in_file(self, os.path.join(self.package_folder, "bin", "meson"),
|
||||
"export PYTHONDONTWRITEBYTECODE=1",
|
||||
"")
|
||||
|
||||
@staticmethod
|
||||
def _chmod_plus_x(filename):
|
||||
if os.name == "posix":
|
||||
os.chmod(filename, os.stat(filename).st_mode | 0o111)
|
||||
|
||||
def package_info(self):
|
||||
meson_root = os.path.join(self.package_folder, "bin")
|
||||
self._chmod_plus_x(os.path.join(meson_root, "meson"))
|
||||
self._chmod_plus_x(os.path.join(meson_root, "meson.py"))
|
||||
|
||||
self.cpp_info.builddirs = [os.path.join("bin", "mesonbuild", "cmake", "data")]
|
||||
|
||||
self.cpp_info.includedirs = []
|
||||
self.cpp_info.libdirs = []
|
||||
|
||||
if Version(conan_version).major < 2:
|
||||
self.env_info.PATH.append(meson_root)
|
||||
29
recipes/meson/all/test_package/conanfile.py
Normal file
29
recipes/meson/all/test_package/conanfile.py
Normal file
@@ -0,0 +1,29 @@
|
||||
import os
|
||||
|
||||
from conan import ConanFile
|
||||
from conan.tools.build import can_run
|
||||
from conan.tools.layout import basic_layout
|
||||
from conan.tools.meson import Meson
|
||||
|
||||
|
||||
class TestPackageConan(ConanFile):
|
||||
settings = "os", "arch", "compiler", "build_type"
|
||||
generators = "MesonToolchain", "VirtualBuildEnv", "VirtualRunEnv"
|
||||
test_type = "explicit"
|
||||
|
||||
def build_requirements(self):
|
||||
self.tool_requires(self.tested_reference_str)
|
||||
|
||||
def layout(self):
|
||||
basic_layout(self)
|
||||
|
||||
def build(self):
|
||||
meson = Meson(self)
|
||||
meson.configure()
|
||||
meson.build()
|
||||
|
||||
def test(self):
|
||||
self.run("meson --version")
|
||||
if can_run(self):
|
||||
bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package")
|
||||
self.run(bin_path, env="conanrun")
|
||||
2
recipes/meson/all/test_package/meson.build
Normal file
2
recipes/meson/all/test_package/meson.build
Normal file
@@ -0,0 +1,2 @@
|
||||
project('test_package', 'cpp')
|
||||
executable('test_package', 'test_package.cpp')
|
||||
6
recipes/meson/all/test_package/test_package.cpp
Normal file
6
recipes/meson/all/test_package/test_package.cpp
Normal file
@@ -0,0 +1,6 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
printf("Hello from Meson.\n");
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user