[... weeks later ...] Alex, I think that's a great idea, actually! The module you have implemented is not a bad start. I've put it in a JIRA ticket so I don't lose track of it[1].
Also, just so we're clear: I'm not an expert at CMake. I wish I were, it would have made this whole thing much easier. [1] https://issues.apache.org/jira/browse/MESOS-3249 On Wed, Jul 29, 2015 at 2:31 AM, Alex Rukletsov <[email protected]> wrote: > One related thing I have started to work on but have never polished is > FindMesos CMake script. The prototype lives here: > https://github.com/rukletsov/mesos-modules/blob/master/cmake-modules/FindMesos.cmake > > My original idea was to support not only system Mesos, but also custom > builds, so that writers of Mesos Modules can use the script as well. > > Alex, as CMake expert, let me know what you think! > > On Mon, Jul 27, 2015 at 7:48 PM, Alex Clemmer <[email protected]> > wrote: > >> Yes, CMake is currently checking if the -std=c++11 flag exists. CMake >> 3 supports the autotools-style "feature check" style (which would be >> more appropriate on platforms like Windows, anyway) but it's not clear >> how far back we want to support just yet -- right now we support back >> to 2.8. >> >> One thing to consider is that the "default" install of CMake for >> apt-get on recent versions of Ubuntu is v2.8. In general, we'd like to >> have as smooth an install experience as possible for as many platforms >> as we can; I'm willing to be convinced that this isn't worth it, but >> to be safe we've developed with 2.8 in mind, because it's easier to go >> from 2.8 to 3 than the reverse. >> >> On Mon, Jul 27, 2015 at 9:37 AM, James Peach <[email protected]> wrote: >> > >> >> On Jul 23, 2015, at 12:40 PM, Alex Clemmer <[email protected]> >> wrote: >> >> >> >> A fix is up for review here[1]. Thanks again for your feedback, this >> >> is very valuable! >> >> >> >> [1] https://reviews.apache.org/r/36743/ >> > >> > AFAICT this just checks whether the -std=c++11 compiler option is >> accepted. The equivalent autoconf macro checks that various C++11 features >> compile, and people have added more over time ... >> 9eda4331dd23c3646aba1ec710e0dd3190e579ab, >> 623d6a0d0f0eb90be80b7e95c91ece89de513367, >> b930d5ce32b60b7c126844a3ef6ae119d36bc8d0, etc. >> > >> > Am I reading the cmake right? >> > >> >> >> >> On Thu, Jul 23, 2015 at 12:18 PM, Vinod Kone <[email protected]> >> wrote: >> >>> yup. >> >>> >> >>> checking for C++ compiler version... 4.1.2 >> >>> >> >>> checking for C++ compiler vendor... (cached) gnu >> >>> >> >>> configure: error: GCC 4.8 or higher required (found 4.1.2) >> >>> >> >>> [vinod@smfd-atr-11-sr1 build-cmake]$ echo $? >> >>> >> >>> 1 >> >>> >> >>> On Thu, Jul 23, 2015 at 12:17 PM, Alex Clemmer < >> [email protected]> >> >>> wrote: >> >>> >> >>>> We can easily change that to be a FATAL_ERROR or a WARNING. I >> >>>> recommend being at parity with autotools -- am I correct in assuming >> >>>> that it errors out? >> >>>> >> >>>> On Thu, Jul 23, 2015 at 12:12 PM, Vinod Kone <[email protected]> >> wrote: >> >>>>> The one thing I found odd while testing was that some errors when >> running >> >>>>> 'cmake' do not result in a non-zero exit status. >> >>>>> For example, when I tested with an older version of GCC it gave a >> warning >> >>>>> about C++11 not being supported but went ahead otherwise. >> >>>>> >> >>>>> -- Performing Test COMPILER_SUPPORTS_CXX11 - Failed >> >>>>> >> >>>>> *-- >> >>>>> >> >>>> >> Thecompiler/usr/bin/c++doesnotsupportthe`-std=c++11`flag.PleaseuseadifferentC++compiler.* >> >>>>> >> >>>>> -- Looking for include file pthread.h >> >>>>> >> >>>>> -- Looking for include file pthread.h - found >> >>>>> >> >>>>> -- Looking for pthread_create >> >>>>> >> >>>>> -- Looking for pthread_create - not found >> >>>>> >> >>>>> -- Looking for pthread_create in pthreads >> >>>>> >> >>>>> -- Looking for pthread_create in pthreads - not found >> >>>>> >> >>>>> -- Looking for pthread_create in pthread >> >>>>> >> >>>>> -- Looking for pthread_create in pthread - found >> >>>>> >> >>>>> -- Found Threads: TRUE >> >>>>> >> >>>>> -- Found ZLIB: /usr/lib64/libz.so (found version "1.2.3") >> >>>>> >> >>>>> -- Found APR headers: /usr/include/apr-1 >> >>>>> >> >>>>> -- Found APR library: /usr/lib64/libapr-1.so >> >>>>> >> >>>>> -- Found APRUTIL headers: /usr/include/apr-1 >> >>>>> >> >>>>> -- Found APRUTIL library: /usr/lib64/libaprutil-1.so >> >>>>> >> >>>>> -- Found SVN lib: /usr/lib64/libsvn_client-1.so >> >>>>> >> >>>>> -- Found SVN lib: /usr/lib64/libsvn_delta-1.so >> >>>>> >> >>>>> -- Found SVN lib: /usr/lib64/libsvn_diff-1.so >> >>>>> >> >>>>> -- Found SVN lib: /usr/lib64/libsvn_fs-1.so >> >>>>> >> >>>>> -- Found SVN lib: /usr/lib64/libsvn_fs_base-1.so >> >>>>> >> >>>>> >> >>>>> >> >>>>> >> >>>>> On Thu, Jul 23, 2015 at 12:07 PM, Alex Clemmer < >> >>>> [email protected]> >> >>>>> wrote: >> >>>>> >> >>>>>> I've put up a pair of fixes, tested on OS X 10.10. They are here: >> >>>>>> >> >>>>>> (1) https://reviews.apache.org/r/36740/ >> >>>>>> (2) https://reviews.apache.org/r/36741/ >> >>>>>> >> >>>>>> This should resolve the issues, and thanks again for the bug report. >> >>>>>> >> >>>>>> On Thu, Jul 23, 2015 at 3:32 AM, haosdent <[email protected]> >> wrote: >> >>>>>>> Sure, I use OS X 10.10. Seems OS X don't have librt, don't add rt >> when >> >>>>>> the >> >>>>>>> operate system is OSX? >> >>>>>>> >> >>>>>>> On Thu, Jul 23, 2015 at 6:22 PM, Alex Clemmer < >> >>>>>> [email protected]> >> >>>>>>> wrote: >> >>>>>>> >> >>>>>>>> Thanks for reporting the issue! I appreciate it. >> >>>>>>>> >> >>>>>>>> This code is trying to find librt, which provides the POSIX.1b >> >>>>>>>> Realtime Extension (i.e., things like message passing, async I/O, >> >>>>>>>> mmap'd files, etc.). Assuming you're running some flavor of Linux, >> >>>>>>>> this _should_ exist on your system already, and `find_library` is >> the >> >>>>>>>> CMake-standard function to find it, so it is not immediately >> clear to >> >>>>>>>> me what went wrong here. >> >>>>>>>> >> >>>>>>>> Do you mind if I ask what system you are running? >> >>>>>>>> >> >>>>>>>> On Thu, Jul 23, 2015 at 1:16 AM, haosdent <[email protected]> >> >>>> wrote: >> >>>>>>>>> Hi, @Alex Clemmer I try to build it on OS X 10.10 >> >>>>>>>>> >> >>>>>>>>> ``` >> >>>>>>>>> mkdir build-cmake >> >>>>>>>>> cmake .. >> >>>>>>>>> make >> >>>>>>>>> ``` >> >>>>>>>>> >> >>>>>>>>> But have this error: >> >>>>>>>>> ``` >> >>>>>>>>> CMake Error: The following variables are used in this project, >> but >> >>>>>> they >> >>>>>>>> are >> >>>>>>>>> set to NOTFOUND. >> >>>>>>>>> Please set them or make sure they are set and tested correctly in >> >>>> the >> >>>>>>>> CMake >> >>>>>>>>> files: >> >>>>>>>>> LIBRT_LIBRARIES >> >>>>>>>>> linked by target "tests" in directory >> >>>>>>>>> /Users/haosdent/workspace/cpp/mesos/3rdparty/libprocess/src/tests >> >>>>>>>>> >> >>>>>>>>> -- Configuring incomplete, errors occurred! >> >>>>>>>>> ``` >> >>>>>>>>> >> >>>>>>>>> Any steps I wrong here? >> >>>>>>>>> >> >>>>>>>>> On Thu, Jul 23, 2015 at 11:27 AM, Marco Massenzio < >> >>>>>> [email protected]> >> >>>>>>>>> wrote: >> >>>>>>>>> >> >>>>>>>>>> This is really cool! >> >>>>>>>>>> Eclipse CDT is becoming a bit tiresome to use, but JetLabs' >> CLion >> >>>>>> only >> >>>>>>>>>> support cmake, so I definitely have a stake in this working :) >> >>>>>>>>>> >> >>>>>>>>>> Please keep us posted on progress, I'll definitely try and give >> >>>> it a >> >>>>>>>> spin >> >>>>>>>>>> on Ubuntu and OSX. >> >>>>>>>>>> Thanks for doing it! >> >>>>>>>>>> >> >>>>>>>>>> *Marco Massenzio* >> >>>>>>>>>> *Distributed Systems Engineer* >> >>>>>>>>>> >> >>>>>>>>>> On Wed, Jul 22, 2015 at 6:06 PM, Alex Clemmer < >> >>>>>>>> [email protected] >> >>>>>>>>>>> >> >>>>>>>>>> wrote: >> >>>>>>>>>> >> >>>>>>>>>>> On Wed, Jul 22, 2015 at 3:47 PM, Vinod Kone < >> >>>> [email protected]> >> >>>>>>>> wrote: >> >>>>>>>>>>>> This is exciting! Thanks for sharing the progress Alex. >> >>>>>>>>>>>> >> >>>>>>>>>>>> Mind sending us instructions on how to build/test with cmake >> >>>> for >> >>>>>>>> noobs >> >>>>>>>>>>> like >> >>>>>>>>>>>> me? >> >>>>>>>>>>> >> >>>>>>>>>>> Ah, rats, I knew I was forgetting something. >> >>>>>>>>>>> >> >>>>>>>>>>> It actually looks pretty much like the autotools build system: >> >>>>>>>>>>> >> >>>>>>>>>>> 1. Make sure you have all the "normal" system dependencies >> >>>>>> installed >> >>>>>>>>>>> (like APR, etc.) >> >>>>>>>>>>> 2. Make sure you have CMake 2.8 or later installed on your >> >>>> machine. >> >>>>>>>>>>> (On Ubuntu this looks like: `sudo apt-get install cmake`) >> >>>>>>>>>>> 3. Go to the root of your Mesos source tree and do something >> >>>> like >> >>>>>> the >> >>>>>>>>>>> following. Note that you will never have to run bootstrap or >> >>>>>>>>>>> configure, so you should _only_ have to run the following >> >>>> commands. >> >>>>>>>>>>> >> >>>>>>>>>>> mkdir build-cmake >> >>>>>>>>>>> cmake .. >> >>>>>>>>>>> make >> >>>>>>>>>>> >> >>>>>>>>>>> 4. Watch as it builds, and hopefully doesn't explode! >> >>>>>>>>>>> >> >>>>>>>>>>> Finally to run tests, you can do `make test ARGS="-V"`. They >> run >> >>>>>>>>>>> without ANSI colors right now, which is not ideal, but we know >> >>>>>> it's an >> >>>>>>>>>>> issue. >> >>>>>>>>>>> >> >>>>>>>>>>> >> >>>>>>>>>>> -- >> >>>>>>>>>>> Alex >> >>>>>>>>>>> >> >>>>>>>>>>> Theory is the first term in the Taylor series of practice. -- >> >>>>>> Thomas M >> >>>>>>>>>>> Cover (1992) >> >>>>>>>>>>> >> >>>>>>>>>> >> >>>>>>>>> >> >>>>>>>>> >> >>>>>>>>> >> >>>>>>>>> -- >> >>>>>>>>> Best Regards, >> >>>>>>>>> Haosdent Huang >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> -- >> >>>>>>>> Alex >> >>>>>>>> >> >>>>>>>> Theory is the first term in the Taylor series of practice. -- >> Thomas >> >>>> M >> >>>>>>>> Cover (1992) >> >>>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> -- >> >>>>>>> Best Regards, >> >>>>>>> Haosdent Huang >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> -- >> >>>>>> Alex >> >>>>>> >> >>>>>> Theory is the first term in the Taylor series of practice. -- >> Thomas M >> >>>>>> Cover (1992) >> >>>>>> >> >>>> >> >>>> >> >>>> >> >>>> -- >> >>>> Alex >> >>>> >> >>>> Theory is the first term in the Taylor series of practice. -- Thomas M >> >>>> Cover (1992) >> >>>> >> >> >> >> >> >> >> >> -- >> >> Alex >> >> >> >> Theory is the first term in the Taylor series of practice. -- Thomas M >> >> Cover (1992) >> > >> >> >> >> -- >> Alex >> >> Theory is the first term in the Taylor series of practice. -- Thomas M >> Cover (1992) >> > > 1. -- Alex Theory is the first term in the Taylor series of practice. -- Thomas M Cover (1992)
