wangqr / Aegisub

Win64 nightly builds available at GHA artifact, also at following link:
https://ftp.wangqr.tk/aegisub/
Other
795 stars 49 forks source link

Migrate the dependency management to Conan #9

Open cqjjjzr opened 5 years ago

cqjjjzr commented 5 years ago

Hi.

I'm the author of the time/align function and I found you merged my function. Thanks a lot!

When I wrote the function, I found the dependency management of Aegisub so painful(especially for Windows, since they used Visual Studio to build all dependencies and those .vcxprojs have problems for Visual Studio 2019), so I'm now working on migrating all the dependencies to Conan to avoid manual dependency configuring.

After a little bit of research I found some libraries available on conan-center and bincrafters/public-conan, while others are not ported for Conan so we must write our own Conan recipes for them.

Are you interested in cooperating on this?

Cheers,
Charlie Jiang

wangqr commented 4 years ago

Recently I've get some time to learn Conan. I'm still new to Conan though, so there might be some misunderstanding.

The tutorial seems to suggest that Conan is independent from build system. All needed is a conanfile.py, set generator=cmake_find_package, and conan will create FindXXX.cmake for all the dependencies it installs, and will set CMAKE_MODULE_PATH automatically. There is no modification needed in the CMakeLists.txt

I've also checked your approach, by separating that into DEPENDENCIES_CMAKE_FILE. I guess that will also work, but not sure if that is a common practise.

I plan to make a new release using the current build systems recently. And clean up the build system after the release.

cqjjjzr commented 4 years ago

According to my observation my solution is not a common practice. I can hardly find projects using this approach to manage dependencies and during my teamwork I found some problems in this approach. I'd be grateful if you can come up with a better solution.

Mainly the problem is that manually setting CMake settings is pretty tough for CMake and Conan beginners, and there's some minor problems in certain Conan recipes leading to build failures(specifically, ICU).