{"action":"created","issue":{"url":"https://api.github.com/repos/valhalla/valhalla/issues/1251","repository_url":"https://api.github.com/repos/valhalla/valhalla","labels_url":"https://api.github.com/repos/valhalla/valhalla/issues/1251/labels{/name}","comments_url":"https://api.github.com/repos/valhalla/valhalla/issues/1251/comments","events_url":"https://api.github.com/repos/valhalla/valhalla/issues/1251/events","html_url":"https://github.com/valhalla/valhalla/issues/1251","id":320275060,"node_id":"MDU6SXNzdWUzMjAyNzUwNjA=","number":1251,"title":"Port build system to CMake","user":{"login":"TheMarex","id":606968,"node_id":"MDQ6VXNlcjYwNjk2OA==","avatar_url":"https://avatars0.githubusercontent.com/u/606968?v=4","gravatar_id":"","url":"https://api.github.com/users/TheMarex","html_url":"https://github.com/TheMarex","followers_url":"https://api.github.com/users/TheMarex/followers","following_url":"https://api.github.com/users/TheMarex/following{/other_user}","gists_url":"https://api.github.com/users/TheMarex/gists{/gist_id}","starred_url":"https://api.github.com/users/TheMarex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TheMarex/subscriptions","organizations_url":"https://api.github.com/users/TheMarex/orgs","repos_url":"https://api.github.com/users/TheMarex/repos","events_url":"https://api.github.com/users/TheMarex/events{/privacy}","received_events_url":"https://api.github.com/users/TheMarex/received_events","type":"User","site_admin":false},"labels":[{"id":835262301,"node_id":"MDU6TGFiZWw4MzUyNjIzMDE=","url":"https://api.github.com/repos/valhalla/valhalla/labels/cleanup","name":"cleanup","color":"e87487","default":false},{"id":313657469,"node_id":"MDU6TGFiZWwzMTM2NTc0Njk=","url":"https://api.github.com/repos/valhalla/valhalla/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2018-05-04T13:27:54Z","updated_at":"2018-06-26T10:39:47Z","closed_at":"2018-05-24T11:24:36Z","author_association":"COLLABORATOR","body":"The GNU build system is more than antique by now and should be replaced by something that supports cross-platform out-of-tree builds. The industry standard for modern C++ code bases is to use CMake which is supported on all major and minor operating systems, and actively maintained.\r\n\r\nLooking at the code base there is already an attempt for porting to CMake, but it seems incomplete? It looks like it uses some CMake anti-patterns like hard coding file paths: [here](https://github.com/valhalla/valhalla/blob/master/CMakeLists.txt#L194-L327). CMake has a good mechanism for this that basically allows you to use regular expressions for this ([example](https://github.com/Project-OSRM/osrm-backend/blob/master/CMakeLists.txt#L139-L149)).\r\n\r\nThe port to CMake is especially important since it supports good toolchain for building on ARM, which is important for offline."},"comment":{"url":"https://api.github.com/repos/valhalla/valhalla/issues/comments/400262670","html_url":"https://github.com/valhalla/valhalla/issues/1251#issuecomment-400262670","issue_url":"https://api.github.com/repos/valhalla/valhalla/issues/1251","id":400262670,"node_id":"MDEyOklzc3VlQ29tbWVudDQwMDI2MjY3MA==","user":{"login":"mloskot","id":80741,"node_id":"MDQ6VXNlcjgwNzQx","avatar_url":"https://avatars2.githubusercontent.com/u/80741?v=4","gravatar_id":"","url":"https://api.github.com/users/mloskot","html_url":"https://github.com/mloskot","followers_url":"https://api.github.com/users/mloskot/followers","following_url":"https://api.github.com/users/mloskot/following{/other_user}","gists_url":"https://api.github.com/users/mloskot/gists{/gist_id}","starred_url":"https://api.github.com/users/mloskot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mloskot/subscriptions","organizations_url":"https://api.github.com/users/mloskot/orgs","repos_url":"https://api.github.com/users/mloskot/repos","events_url":"https://api.github.com/users/mloskot/events{/privacy}","received_events_url":"https://api.github.com/users/mloskot/received_events","type":"User","site_admin":false},"created_at":"2018-06-26T10:39:47Z","updated_at":"2018-06-26T10:39:47Z","author_association":"CONTRIBUTOR","body":"This may be relevant for Valhalla setup (and perhaps OSRM too)\r\n\r\nCMake 3.12 has got improved globbing, https://cmake.org/cmake/help/v3.12/release/3.12.html that \r\n\r\n> The file(GLOB) and file(GLOB_RECURSE) commands learned a new flag CONFIGURE_DEPENDS\r\n> which enables expression of build system dependency on globbed directory’s contents.\r\n\r\nThis clears one of the modern CMake points against `GLOB`-ing for source files, so `cmake --build .` can now check if any `GLOB`-ed files have been added/removed.\r\n"}}
{"actor":{"display_login":"mloskot"}}