{"action":"created","issue":{"url":"https://api.github.com/repos/European-XFEL/karabo-bridge-cpp/issues/19","repository_url":"https://api.github.com/repos/European-XFEL/karabo-bridge-cpp","labels_url":"https://api.github.com/repos/European-XFEL/karabo-bridge-cpp/issues/19/labels{/name}","comments_url":"https://api.github.com/repos/European-XFEL/karabo-bridge-cpp/issues/19/comments","events_url":"https://api.github.com/repos/European-XFEL/karabo-bridge-cpp/issues/19/events","html_url":"https://github.com/European-XFEL/karabo-bridge-cpp/pull/19","id":384787071,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMzOTA0Njgz","number":19,"title":"New autogen","user":{"login":"zhujun98","id":17694065,"node_id":"MDQ6VXNlcjE3Njk0MDY1","avatar_url":"https://avatars3.githubusercontent.com/u/17694065?v=4","gravatar_id":"","url":"https://api.github.com/users/zhujun98","html_url":"https://github.com/zhujun98","followers_url":"https://api.github.com/users/zhujun98/followers","following_url":"https://api.github.com/users/zhujun98/following{/other_user}","gists_url":"https://api.github.com/users/zhujun98/gists{/gist_id}","starred_url":"https://api.github.com/users/zhujun98/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zhujun98/subscriptions","organizations_url":"https://api.github.com/users/zhujun98/orgs","repos_url":"https://api.github.com/users/zhujun98/repos","events_url":"https://api.github.com/users/zhujun98/events{/privacy}","received_events_url":"https://api.github.com/users/zhujun98/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-11-27T13:09:01Z","updated_at":"2018-11-28T19:10:28Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/European-XFEL/karabo-bridge-cpp/pulls/19","html_url":"https://github.com/European-XFEL/karabo-bridge-cpp/pull/19","diff_url":"https://github.com/European-XFEL/karabo-bridge-cpp/pull/19.diff","patch_url":"https://github.com/European-XFEL/karabo-bridge-cpp/pull/19.patch"},"body":"Further restructure the project and made a new script to ease build, install and test\r\n\r\n```sh\r\nshow_usage()\r\n{\r\n    echo -e \"\\nUsage ./autogen.sh option [destination]\"\r\n    echo -e \"\\nValid options are:\"\r\n    echo -e \" - download: download the dependencies;\"\r\n    echo -e \" - build: build the library;\"\r\n    echo -e \" - test: build and run unit test;\"\r\n    echo -e \" - integration_test: build and run integration test (only client);\"\r\n    echo -e \" - install: build and install to the destination folder, default to \"${HOME}/share\";\"\r\n    echo -e \" - clean: remove the build directory and downloaded dependencies.\\n\"\r\n}\r\n```\r\nOnly coding style was modified in the main code (the struct visitor is also hidden from the user). \r\n\r\nPlease review! Thank you! After this merge, I will tag it as 0.2.0? (to be consistent with the Python one)"},"comment":{"url":"https://api.github.com/repos/European-XFEL/karabo-bridge-cpp/issues/comments/442567881","html_url":"https://github.com/European-XFEL/karabo-bridge-cpp/pull/19#issuecomment-442567881","issue_url":"https://api.github.com/repos/European-XFEL/karabo-bridge-cpp/issues/19","id":442567881,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0MjU2Nzg4MQ==","user":{"login":"zhujun98","id":17694065,"node_id":"MDQ6VXNlcjE3Njk0MDY1","avatar_url":"https://avatars3.githubusercontent.com/u/17694065?v=4","gravatar_id":"","url":"https://api.github.com/users/zhujun98","html_url":"https://github.com/zhujun98","followers_url":"https://api.github.com/users/zhujun98/followers","following_url":"https://api.github.com/users/zhujun98/following{/other_user}","gists_url":"https://api.github.com/users/zhujun98/gists{/gist_id}","starred_url":"https://api.github.com/users/zhujun98/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zhujun98/subscriptions","organizations_url":"https://api.github.com/users/zhujun98/orgs","repos_url":"https://api.github.com/users/zhujun98/repos","events_url":"https://api.github.com/users/zhujun98/events{/privacy}","received_events_url":"https://api.github.com/users/zhujun98/received_events","type":"User","site_admin":false},"created_at":"2018-11-28T19:10:28Z","updated_at":"2018-11-28T19:10:28Z","author_association":"COLLABORATOR","body":"In principle, we can include the header files from cppzmq and msgpack in our project. But Hans does not like the idea.\r\n\r\nAnother option would be add submodules. Then the user will always clone the master repo of the dependencies. (I have not used any advanced options of submodules , so I have no ideal whether it is possible to choose tag)\r\n\r\nThe most tricky part is the zeromq (in c) library. It is required to be installed. In our clusters, the user needs to appoint the location since it is not allowed to be installed in the system folders like '/usr/local/lib'. And we need to link it when building. Also, since it is not in the system folder, the normal cmake way of find package does not work.\r\n\r\nFor experienced users like Lutz, they do not need any instructions as long as they know which libraries are required. However, I have been asked several time by other people who have trouble in building their projects with the cpp client: whether it is a header only libraries or a library that people can install and only link to it.  Unfortunately, neither is the case.\r\n\r\nThe bash script is simply a convenient tool. It automatically download and put all header files and libraries in a folder, and the user can have all the header files and libraries in 4 lines of CMakeLists as I showed in the example\r\n```\r\nset(INSTALL_PATH \"$ENV{HOME}/share\")\r\nset(zmq_LIBRARY \"${INSTALL_PATH}/zeromq/lib/libzmq.so\")\r\ninclude_directories(${INSTALL_PATH}/zeromq/include)\r\ninclude_directories(${INSTALL_PATH}/include)\r\n```\r\nMoreover, it is tedious to download the three dependencies separately and install them. \r\n\r\nIn a word, the user can feel free to do whatever they like as I have specified the versions of dependencies. If they do not know how to do it or are too lazy, they can simply user the bash script. The build system is still cmake and make, the script is only used to modify the cmake options."}}
{"actor":{"display_login":"zhujun98"}}