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
CMake build #35
CMake build #35
Conversation
Regardless of eventual issues in current state, I'd be happy to get feedback on interest for a CMake build. My personal interest for this is that it's lot easier to get into ASL/APL with a real IDE. I don't have XCode access. I'd be happy to see someone testing CMake XCode generator and compare against manually crafted ones present in repository. FYI, I'm also trying this on Windows (MinGW + Qt Creator) and have few code issues, but could build and run adam_smoke test. I might push MinGW specific fixes later. Regards, |
Thanks much for the changes! Sorry for the delay in responding. Will try and test out the Xcode build soon. |
@ilelann I would be interested to help take up the banner on this. I do have access to Xcode and want to leverage what you have already started. One big question I have: How do you specify paths into Boost? I haven't been able to figure it out in an isolated setup, let alone folding the solution into the CMakeLists.txt work you've already done. (For ASL, we generally like to build the necessary Boost sources directly, instead of relaying on installed binaries/headers. For our purposes, then, we put Boost into |
In main CMakeLists I wrote the classical find_package call. |
Let me know how it goes. I might be missing something, but the impression I got was that command was looking for headers and [static|dynamic] libraries, instead of sources. @sean-parent should chime in on this as well, but I would be in favor of a development method that builds the Boost sources as part of the project (or as a subproject dependency) instead of headers and libs. |
You are right, I missed that point. To implement existing sh/bjam workflow (eg. the Boost patch) with CMake I guess one would have to play with ExternalProject. |
I am not so interested in the patching as part of the CMake process for day-to-day work. We can always use the bjam path to confirm the patch does what it's supposed to do. It's the ability to manipulate Boost - to create the patch - that I want to make sure is streamlined. |
I also find it useful for debugging to have the boost IDE projects and I want to make sure we are building boost as static libs (especially true on Mac and Windows where I don't want to add DLL dependencies - less of an issue on Linux). On Mac right now with the CMAKE I'm erroring out on the Boost dependencies and on an OpenSSL dependency (coming in through the sha test code?). I don't have much experience with CMake so I can't really make a recommendation here on how to proceed. I'd also like to reduce our boost dependencies where possible - for example with C++11 we can get rid of the boost_threads dependency. I don't think we can easily get rid of all the boost library dependencies though (and in principal I don't object to depending on Boost - just don't want to do so where there is a standard alternative). |
@sean-parent The SHA test code is pulling in OpenSSL for benchmarking. It should be an optional dependency, but regardless shouldn't be a problem on OS X... not sure what's up with that. Yes, I'm erring out on the Boost stuff, too. It would seem we should make our own Boost sub-projects within the main ASL CMakeLists file, and reference them as dependencies. Looks like I have some learnin' to do. |
Apple has pulled the OpenSSL headers in their latest OS X SDK. So if you are building with El Capitan then that is probably your problem. |
Hello.
To build and run tests with clang/gcc release/debug :
git clone ... && cd adobe_source_libraries && sh cmake_build_all.sh asl_build
It runs all ASL tests OK on my Fedora 22 setup. (GCC 5.1.1, Clang 3.5.0)
Only UT not ported is the "compile-fail" of enum_ops because I don't kwow how to port that to CMake.
Somewhat hidden changes inside the commit :
I tested that bjam clang build still works.
Waiting for comments,
Ivan