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 wavelet_buffer v0.4.0 #13722

Merged
merged 27 commits into from
Dec 9, 2022

Conversation

victor1234
Copy link
Contributor

@victor1234 victor1234 commented Oct 24, 2022

Library name: wavelet_buffer/0.4.0
Description: A universal C++ compression library based on wavelet transformation
License: MPL-2.0
Link: https://github.com/panda-official/WaveletBuffer

I'm one of the library developers. It's a open source project and we want to share it on public conan repo.


  • I've read the guidelines for contributing.
  • I've followed the PEP8 style guides for Python code in the recipes.
  • I've used the latest Conan client version.
  • I've tried at least one configuration locally with the conan-center hook activated.

@CLAassistant
Copy link

CLAassistant commented Oct 24, 2022

CLA assistant check
All committers have signed the CLA.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@victor1234 victor1234 marked this pull request as ready for review October 28, 2022 08:57
settings = "os", "compiler", "build_type", "arch"
options = {"shared": [True, False], "fPIC": [True, False]}

def requirements(self):
Copy link
Contributor

Choose a reason for hiding this comment

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

move requirements after configure please

@SpaceIm
Copy link
Contributor

SpaceIm commented Nov 17, 2022

Upstream CMakeLists downloads SfCompressor during configuration, CCI policies don't allow to download something at build time: https://github.com/panda-official/WaveletBuffer/blob/develop/CMakeLists.txt#L68-L75

@uilianries uilianries added the blocked Affected by an external issue and waiting until it is solved label Nov 29, 2022
@uilianries
Copy link
Member

It requires #13917 first

@prince-chrismc prince-chrismc reopened this Dec 7, 2022
@prince-chrismc prince-chrismc removed the blocked Affected by an external issue and waiting until it is solved label Dec 7, 2022
@prince-chrismc
Copy link
Contributor

The required PR seems to merged so lets see what happens on a new build :)

@conan-center-bot
Copy link
Collaborator

Conan v1 pipeline

All green in build 21 (115c3666700183a9ce9f34ecd8fbc991fed475e7):

  • wavelet_buffer/0.4.0@:
    All packages built successfully! (All logs)

@victor1234
Copy link
Contributor Author

The required PR seems to merged so lets see what happens on a new build :)

What should I do?

Comment on lines +21 to +35
default_options = {
"cimg/*:enable_fftw": False,
"cimg/*:enable_jpeg": False,
"cimg/*:enable_openexr": False,
"cimg/*:enable_png": False,
"cimg/*:enable_tiff": False,
"cimg/*:enable_ffmpeg": False,
"cimg/*:enable_opencv": False,
"shared": False,
"fPIC": True,
}

# Binary configuration
settings = "os", "compiler", "build_type", "arch"
options = {"shared": [True, False], "fPIC": [True, False]}
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
default_options = {
"cimg/*:enable_fftw": False,
"cimg/*:enable_jpeg": False,
"cimg/*:enable_openexr": False,
"cimg/*:enable_png": False,
"cimg/*:enable_tiff": False,
"cimg/*:enable_ffmpeg": False,
"cimg/*:enable_opencv": False,
"shared": False,
"fPIC": True,
}
# Binary configuration
settings = "os", "compiler", "build_type", "arch"
options = {"shared": [True, False], "fPIC": [True, False]}
settings = "os", "arch", "compiler", "build_type"
options = {
"shared": [True, False],
"fPIC": [True, False],
}
default_options = {
"shared": False,
"fPIC": True,
}

@SpaceIm
Copy link
Contributor

SpaceIm commented Dec 9, 2022

Upstream CMakeLists downloads SfCompressor during configuration, CCI policies don't allow to download something at build time: https://github.com/panda-official/WaveletBuffer/blob/develop/CMakeLists.txt#L68-L75

Kindly remind that it should be a no go according to CCI policies.


import os

required_conan_version = ">=1.50"
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
required_conan_version = ">=1.50"
required_conan_version = ">=1.53"

recipes/wavelet_buffer/all/conanfile.py Show resolved Hide resolved
Comment on lines +117 to +147
# Dependency options check
cimg = self.dependencies["cimg"]
if cimg.options.enable_fftw:
raise ConanInvalidConfiguration(
f"{self.ref} requires the option 'cimg:enable_fftw=False'"
)
if cimg.options.enable_jpeg:
raise ConanInvalidConfiguration(
f"{self.ref} requires the option 'cimg:enable_jpeg=False'"
)
if cimg.options.enable_openexr:
raise ConanInvalidConfiguration(
f"{self.ref} requires the option 'cimg:enable_openexr=False'"
)
if cimg.options.enable_tiff:
raise ConanInvalidConfiguration(
f"{self.ref} requires the option 'cimg:enable_tiff=False'"
)
if cimg.options.enable_png:
raise ConanInvalidConfiguration(
f"{self.ref} requires the option 'cimg:enable_png=False'"
)
if cimg.options.enable_ffmpeg:
raise ConanInvalidConfiguration(
f"{self.ref} requires the option 'cimg:enable_ffmpeg=False'"
)
if cimg.options.enable_opencv:
raise ConanInvalidConfiguration(
f"{self.ref} requires the option 'cimg:enable_opencv=False'"
)

Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
# Dependency options check
cimg = self.dependencies["cimg"]
if cimg.options.enable_fftw:
raise ConanInvalidConfiguration(
f"{self.ref} requires the option 'cimg:enable_fftw=False'"
)
if cimg.options.enable_jpeg:
raise ConanInvalidConfiguration(
f"{self.ref} requires the option 'cimg:enable_jpeg=False'"
)
if cimg.options.enable_openexr:
raise ConanInvalidConfiguration(
f"{self.ref} requires the option 'cimg:enable_openexr=False'"
)
if cimg.options.enable_tiff:
raise ConanInvalidConfiguration(
f"{self.ref} requires the option 'cimg:enable_tiff=False'"
)
if cimg.options.enable_png:
raise ConanInvalidConfiguration(
f"{self.ref} requires the option 'cimg:enable_png=False'"
)
if cimg.options.enable_ffmpeg:
raise ConanInvalidConfiguration(
f"{self.ref} requires the option 'cimg:enable_ffmpeg=False'"
)
if cimg.options.enable_opencv:
raise ConanInvalidConfiguration(
f"{self.ref} requires the option 'cimg:enable_opencv=False'"
)

Copy link
Contributor

Choose a reason for hiding this comment

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

Not a usage requirement

@conan-center-bot conan-center-bot merged commit a076f03 into conan-io:master Dec 9, 2022
Comment on lines +73 to +110
@property
def _minimum_cpp_standard(self):
return 20

@property
def _minimum_compilers_version(self):
return {
"gcc": "8",
"clang": "12",
"apple-clang": "12",
}

def validate(self):
if self.info.settings.compiler.get_safe("cppstd"):
check_min_cppstd(self, self._minimum_cpp_standard)

# Compiler version check
check_min_vs(self, 192)
if not is_msvc(self):
minimum_version = self._minimum_compilers_version.get(
str(self.info.settings.compiler), False
)
if not minimum_version:
self.output.warn(
"{} recipe lacks information about the {} compiler support.".format(
self.name, self.settings.compiler
)
)
else:
if Version(self.info.settings.compiler.version) < minimum_version:
raise ConanInvalidConfiguration(
"{} requires C++{} support. The current compiler {} {} does not support it.".format(
self.ref,
self._minimum_cpp_standard,
self.settings.compiler,
self.settings.compiler.version,
)
)
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
@property
def _minimum_cpp_standard(self):
return 20
@property
def _minimum_compilers_version(self):
return {
"gcc": "8",
"clang": "12",
"apple-clang": "12",
}
def validate(self):
if self.info.settings.compiler.get_safe("cppstd"):
check_min_cppstd(self, self._minimum_cpp_standard)
# Compiler version check
check_min_vs(self, 192)
if not is_msvc(self):
minimum_version = self._minimum_compilers_version.get(
str(self.info.settings.compiler), False
)
if not minimum_version:
self.output.warn(
"{} recipe lacks information about the {} compiler support.".format(
self.name, self.settings.compiler
)
)
else:
if Version(self.info.settings.compiler.version) < minimum_version:
raise ConanInvalidConfiguration(
"{} requires C++{} support. The current compiler {} {} does not support it.".format(
self.ref,
self._minimum_cpp_standard,
self.settings.compiler,
self.settings.compiler.version,
)
)
@property
def _min_cppstd(self):
return 20
@property
def _minimum_compilers_version(self):
return {
"gcc": "8",
"clang": "12",
"apple-clang": "12",
"Visual Studio": "16",
"msvc": "192",
}
def validate(self):
if self.settings.compiler.get_safe("cppstd"):
check_min_cppstd(self, self._min_cppstd)
minimum_version = self._minimum_compilers_version.get(str(self.settings.compiler))
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."
)

)
)

if is_msvc(self) and self.info.options.shared:
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
if is_msvc(self) and self.info.options.shared:
if is_msvc(self) and self.options.shared:

Comment on lines +5 to +6
from conan.tools.cmake import CMake
from conan.tools.layout import cmake_layout
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
from conan.tools.cmake import CMake
from conan.tools.layout import cmake_layout
from conan.tools.cmake import CMake, cmake_layout

from conan import ConanFile
from conan.tools.cmake import CMakeToolchain, CMakeDeps, CMake, cmake_layout
from conan.tools.files import get, copy, rmdir
from conan.tools.microsoft import check_min_vs, is_msvc
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
from conan.tools.microsoft import check_min_vs, is_msvc
from conan.tools.microsoft import is_msvc

import os


# legacy validation with Conan 1.x
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
# legacy validation with Conan 1.x

from conan.tools.layout import cmake_layout


class HelloTestConan(ConanFile):
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
class HelloTestConan(ConanFile):
class TestPackageConan(ConanFile):

SpaceIm added a commit to SpaceIm/conan-center-index that referenced this pull request Dec 9, 2022
@victor1234
Copy link
Contributor Author

@SpaceIm I missed your posts due unset notifications
Should I recreate PR?

@SpaceIm
Copy link
Contributor

SpaceIm commented Dec 11, 2022

I've opened #14657

conan-center-bot pushed a commit that referenced this pull request Dec 14, 2022
* address reviews in #13722

* add FIXME about SfCompressor downloaded at build time

* bump libjpeg-turbo

* typo

* remove openblas from dependencies

* expose blaze as a public dependency for conan v2

* typo

* allow to select libjpeg implementation & link to libjpeg only

* raise for msvc shared in validate_build()

* add cmake to tool_requires

* move back msvc shared check to validate()
datalogics-robb pushed a commit to datalogics-robb/conan-center-index that referenced this pull request Mar 6, 2023
…-index

* 'develop' of octocat.dlogics.com:datalogics/conan-center-index: (6046 commits)
  cmake: Remove the private tag from the openssl requirement
  (conan-io#14689) doctest: Use self.info.clear() instead of header_only()
  (conan-io#14684) imath: add version 3.1.6
  (conan-io#14679) tgbot: add version 1.5
  (conan-io#14672) luau: add version 0.556
  (conan-io#14673) fast_double_parser: add version 0.7.0
  (conan-io#14664) sqlite_orm: add version 1.8
  (conan-io#14663) magic_enum: add version 0.8.2
  (conan-io#14658) Update changelog 09-December-2022
  (conan-io#14525) Add Boost.LEAF to Conan Center
  (conan-io#13722) Add wavelet_buffer v0.4.0
  (conan-io#14655) etl: add version 20.35.5
  (conan-io#14654) nss 3.86
  (conan-io#14652) flatbuffers: add version 22.12.06
  (conan-io#14427) libxml2: fix CMake vars in CMakeDeps & bump icu
  (conan-io#14626) [googleapis] Use is_msvc to abstract away compiler name setting
  (conan-io#14619) (conan-io#14620) libzip: Use robust github mirror
  (conan-io#14617) pybind11_json: add version 0.2.13
  (conan-io#14476) add libhydrogen/cci.20221115
  (conan-io#13917) cimg: conan v2 support + bump dependencies + disable dependencies by default
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants