Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add boost-multi library #21179

Open
wants to merge 36 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
acd905f
Create conanfile.py
correaa Nov 17, 2023
a511001
Create config,yml
correaa Nov 17, 2023
37966fe
Create conanfile.py
correaa Nov 17, 2023
bc29066
Delete recipes/b-multi/conanfile.py
correaa Nov 17, 2023
4f251a4
Create conandata.yml
correaa Nov 17, 2023
b4ddc23
Merge branch 'conan-io:master' into add_bmulti_library
correaa Nov 17, 2023
8bd7775
Update config.yml
correaa Nov 17, 2023
6d2aaf1
Update conanfile.py remove version
correaa Nov 17, 2023
29e93e3
Delete recipes/b-multi/config,yml
correaa Nov 17, 2023
c7b7da0
Merge branch 'master' into add_bmulti_library
correaa Nov 17, 2023
71e7b36
Update config.yml add new line
correaa Nov 17, 2023
4f774a7
Update conandata.yml add new line
correaa Nov 17, 2023
5279e00
Update config.yml trailing spaces?
correaa Nov 18, 2023
612d1f5
Merge branch 'conan-io:master' into add_bmulti_library
correaa Nov 26, 2023
3950b88
Create test_package.cpp
correaa Nov 26, 2023
662474c
Create conanfile.py
correaa Nov 26, 2023
8070c17
Create CMakeLists.txt
correaa Nov 26, 2023
9de7c0f
Update recipes/b-multi/all/conanfile.py
correaa Nov 27, 2023
3dda8d1
Update recipes/b-multi/all/conanfile.py
correaa Nov 27, 2023
db05e5b
Update recipes/b-multi/all/conanfile.py
correaa Nov 27, 2023
dc92aad
Update recipes/b-multi/all/conanfile.py
correaa Nov 27, 2023
eb3c7bf
Update recipes/b-multi/all/conanfile.py
correaa Nov 27, 2023
66172c1
Update recipes/b-multi/all/conanfile.py
correaa Nov 27, 2023
742ef80
Update recipes/b-multi/all/test_package/CMakeLists.txt
correaa Nov 27, 2023
19cb3c6
Update recipes/b-multi/all/conanfile.py
correaa Nov 27, 2023
07618e4
Update recipes/b-multi/all/test_package/conanfile.py
correaa Nov 27, 2023
a076755
Update recipes/b-multi/all/conanfile.py
correaa Nov 27, 2023
3cac879
Update conanfile.py
correaa Nov 27, 2023
b6d931a
Merge branch 'master' into add_bmulti_library
correaa Nov 27, 2023
808b45f
Update recipes/b-multi/all/test_package/CMakeLists.txt
correaa Nov 27, 2023
147e16d
renamed dirs
correaa Dec 4, 2023
1706b81
changed conanfile project name
correaa Dec 4, 2023
3339f3f
Update recipes/boost-multi/all/conanfile.py
correaa Dec 7, 2023
a5e86b9
Update recipes/boost-multi/all/conanfile.py
correaa Dec 7, 2023
584a850
Add missing iostream to test_package
uilianries Dec 11, 2023
ef57107
Copy license file to package folder
uilianries Dec 11, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions recipes/boost-multi/all/conandata.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
sources:
"0.80.1":
url: https://gitlab.com/correaa/boost-multi/-/archive/v0.80.1/boost-multi-v0.80.1.tar.gz
sha256: 7d1ebee123783e0fadfb58a0f55309148d63295fcb4b9c5442d851e3578cad1e
Comment on lines +2 to +4
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"0.80.1":
url: https://gitlab.com/correaa/boost-multi/-/archive/v0.80.1/boost-multi-v0.80.1.tar.gz
sha256: 7d1ebee123783e0fadfb58a0f55309148d63295fcb4b9c5442d851e3578cad1e
"0.83.0":
url: "https://gitlab.com/correaa/boost-multi/-/archive/v0.83.0/boost-multi-v0.83.0.tar.gz"
sha256: "52324a01e25fd66a32c8bf88f41940ba6364fd218cfab53b7ec5c63115dea1bf"

I would recommend updating to 0.83.0, so the LICENSE file will be available.

64 changes: 64 additions & 0 deletions recipes/boost-multi/all/conanfile.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
from conan import ConanFile
from conan.tools.files import get, copy
from conan.tools.build import check_min_cppstd
from conan.tools.layout import basic_layout
from conan.tools.scm import Version
from conan.errors import ConanInvalidConfiguration
import os


class MultiConan(ConanFile):
name = "boost-multi"
homepage = "https://gitlab.com/correaa/boost-multi"
description = "Multidimensional array access to contiguous or regularly contiguous memory. (Not an official Boost library)"
topics = (
"array",
"multidimensional",
"library",
)
license = "BSL-1.0"
url = "https://github.com/conan-io/conan-center-index"
package_type = "header-library"
correaa marked this conversation as resolved.
Show resolved Hide resolved
settings = "os", "arch", "compiler", "build_type"
no_copy_source = True

@property
def _min_cppstd(self):
return 17

@property
def _compilers_minimum_version(self):
return {"gcc": "8",
"clang": "7",
"apple-clang": "12",
"Visual Studio": "16",
"msvc": "192"}

def layout(self):
basic_layout(self, src_folder="src")

correaa marked this conversation as resolved.
Show resolved Hide resolved
def package_id(self):
self.info.clear()

def validate(self):
if self.settings.compiler.cppstd:
check_min_cppstd(self, self._min_cppstd)
minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False)
if minimum_version and Version(self.settings.compiler.version) < minimum_version:
raise ConanInvalidConfiguration(
f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support."
)

def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)

def package(self):
copy(self, "LICENSE", self.source_folder, os.path.join(self.package_folder, "licenses"))
copy(self, "*.hpp", os.path.join(self.source_folder, "include"), os.path.join(self.package_folder, "include"))
uilianries marked this conversation as resolved.
Show resolved Hide resolved

def package_info(self):
self.cpp_info.set_property("cmake_file_name", "multi")
self.cpp_info.set_property("cmake_target_name", "multi::multi")

self.cpp_info.bindirs = []
self.cpp_info.libdirs = []
8 changes: 8 additions & 0 deletions recipes/boost-multi/all/test_package/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
cmake_minimum_required(VERSION 3.15)
project(test_package LANGUAGES CXX)

find_package(multi REQUIRED CONFIG)

add_executable(${PROJECT_NAME} test_package.cpp)
target_link_libraries(${PROJECT_NAME} PRIVATE multi::multi)
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17)
26 changes: 26 additions & 0 deletions recipes/boost-multi/all/test_package/conanfile.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from conan import ConanFile
from conan.tools.build import can_run
from conan.tools.cmake import cmake_layout, CMake
import os


class TestPackageConan(ConanFile):
settings = "os", "arch", "compiler", "build_type"
generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv"
test_type = "explicit"

def layout(self):
cmake_layout(self)

def requirements(self):
self.requires(self.tested_reference_str)

def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()

def test(self):
if can_run(self):
bin_path = os.path.join(self.cpp.build.bindir, "test_package")
self.run(bin_path, env="conanrun")
10 changes: 10 additions & 0 deletions recipes/boost-multi/all/test_package/test_package.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#include <iostream>
#include "multi/array.hpp"
uilianries marked this conversation as resolved.
Show resolved Hide resolved

namespace multi = boost::multi;

int main(void) {
multi::array<int, 2> arr({10, 20}, 99);

std::cout << "should print 99: " << arr[2][3] << std::endl;
}
3 changes: 3 additions & 0 deletions recipes/boost-multi/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
versions:
"0.80.1":
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
"0.80.1":
"0.83.0":

folder: all