-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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/update bx #13866
Add/update bx #13866
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Support msvc dynamic runtime
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Looks like included genie won't run on some CI platforms due to glibc versions, what would be the best way to proceed? Update and use cci genie? |
Move layout to where it should be
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Add minimum compiler checks
This comment has been minimized.
This comment has been minimized.
Add FreeBSD while we're at it
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
I wouldn't mind some pointers as to how to get mingw working as well; I can see CCI doesn't build it, but trying it in proof of conan showed that msys2 wasn't enough to get x86_64-w64-mingw32-g++ to be present (or on the path?) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Did a quick pass -- this is really complicated and I will circle back to send a little more time
It is indeed quite complicated. bimg and bgfx are going to be pretty much the same - mostly identical, really. So we have that to look forward to as well.😅 |
Remove unused attributes Use is_msvc_static_runtime for determining runtime for genie Get_safe fPIC Use "src" for src_folder
This comment has been minimized.
This comment has been minimized.
recipes/bx/all/conanfile.py
Outdated
# Save bx path for convencience | ||
self.bx_path = os.path.join(self.source_folder, self._bx_folder) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This could be a property
@property
def bx_path(self):
return os.path.join(self.source_folder, self._bx_folder)
This would address the linters complaints
# Save bx path for convencience | |
self.bx_path = os.path.join(self.source_folder, self._bx_folder) |
recipes/bx/all/conanfile.py
Outdated
if version < minimal_version[compiler]: | ||
raise ConanInvalidConfiguration("%s requires a compiler that supports at least C++%s" % (self.name, minimal_cpp_standard)) | ||
if self.settings.os == "Windows": | ||
self.lib_ext = "*.lib" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All of these are exclusively need in the package()
so it would be nice to move these 🙏 they make a lot of noise from the linter in the diff view
cmake = CMake(self) | ||
cmake.configure() | ||
cmake.build() | ||
if can_run(self): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should not be required 🤔 is there a reason this was added?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am being picky about the linters because it super difficult to review this very wacky build system custom scripts.
Honestly I have no Idea 🙃
EDIT: I added this to our weekly meeting to get more input for myself
Think I got rid of all the linter complaints now, thanks for the pointers 🥳 |
Thanks for playing along, I'll try to get an answer about the rest so we can keep moving forward :) |
Conan v1 pipelineAll green in build 19 (
|
Sorry for taking a while I finally found this email ( I did not write the PR number in my notes )..... Since this uses a "one off" implementation of a build system, our quality check is the CI is green and the hooks passed. If this will be added to many recipes... it would be worth making it a proper generator and saving it as a python requires... and we can discuss using it within ConanCenter... current this is not allowed because it might give too much power. This Genie build system does not seem worth adding to the main client since it pretty rare but it's very interesting to see |
At the moment this will also be used for bimg and bgfx, for CCI, if that's fine. |
That's totally fine, if you plan to contribute those recipe (and/or updates) just keep that in the back of the mind. We'll cross that bridge when we get there. Great work here 😉 |
* Initial bx (with genie) cci implementation, locally tested * Attempt to fix mingw and osx * Fix arch append again * Requested changes * Fix some linter warnings * Delete fPIC on windows Support msvc dynamic runtime * Fix msvc runtime check * Use genie from conan as a tool require instead of the included one Move layout to where it should be * Add newest version to config.yml too * Add lib dl to linux Add minimum compiler checks * Fix up compiler support (primarily for clang) Add FreeBSD while we're at it * Fix genie compiler call some more * Fix clang project folder names too * Add msys2 for mingw builds * Attempt to fix apple-clang (as it has no special folder on mac due to being the default) * Fix windows path for msys in mingw build * Move path fixing up a bit * Attempt to add required osx/ios system libs (Foundation and Cocoa) * Add apple frameworks hopefully the right way this time * Move stuff to snake_case Remove unused attributes Use is_msvc_static_runtime for determining runtime for genie Get_safe fPIC Use "src" for src_folder * Change stuff to @Property and move lib per-platform prefix and suffix to package Co-authored-by: Raziel Alphadios <raziely@gmail.com>
Specify library name and version: bx/cci.20221022
This is the bx library, a base library used by bimg and bgfx, which are not (yet) on cci. The plan is to bring those over as well.
The previous versions on cci seemed to have used a custom CMake build script. I've opted instead to use the official projrect generator system used upstream, genie, a fork of premake, and then building the generated projects through their suitable conan builders.
Other notes: